ROOTPLOIT
Server: Apache
System: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User: ws67150586 (67150586)
PHP: 8.3.36
Disabled: NONE
Upload Files
File: //kunden/kunden/kunden/lib/python3/dist-packages/wheel/__pycache__/_metadata.cpython-313.pyc
�

��g,��:�SrSSKJr SSKrSSKrSSKrSSKrSSKrSSK	J
r
JrJr SSK
Jr SSKJr SSKJr SSKJr SS	jr\R,SS
j5r\R1\5SSj5rSSjrSS
jrSSjrSSjrSSjrSSjr SSjr!g)z2
Tools for converting old- to new-style metadata.
�)�annotationsN)�	Generator�Iterable�Iterator)�Message)�Parser)�Literal)�Requirementc�@�U=(a URS5(+$)N�#)�
startswith)�strs �1/usr/lib/python3/dist-packages/wheel/_metadata.py�	_nonblankrs���*�s�~�~�c�*�*�*�c�\�[RR[[U55$)aQ
Yield valid lines of a string or iterable.
>>> list(yield_lines(''))
[]
>>> list(yield_lines(['foo', 'bar']))
['foo', 'bar']
>>> list(yield_lines('foo\nbar'))
['foo', 'bar']
>>> list(yield_lines('\nfoo\n#bar\nbaz #comment'))
['foo', 'baz #comment']
>>> list(yield_lines(['foo\nbar', 'baz', 'bing\n\n\n']))
['foo', 'bar', 'baz', 'bing']
)�	itertools�chain�
from_iterable�map�yield_lines)�iterables rrrs ���?�?�(�(��[�(�)C�D�Drc�n�[[[[RUR555$�N)�filterrrr�strip�
splitlines)�texts r�_r*s!���)�S����D�O�O�,=�>�?�?rc#�(# �Sn/n[U5HvnURS5(aLURS5(a*U(dU(aX4v� USSR5n/nMY[	SU5eURU5 Mx X4v� g7f)a^Split a string or iterable thereof into (section, content) pairs
Each ``section`` is a stripped version of the section header ("[section]")
and each ``content`` is a list of stripped lines excluding blank lines and
comment-only lines.  If there are any such lines before the first section
header, they're returned in a first ``section`` of ``None``.
N�[�]����zInvalid section heading)rr
�endswithr�
ValueError�append)�s�section�content�lines    r�split_sectionsr,/s�����G��G��A����?�?�3����}�}�S�!�!��g�!�*�*��q��*�*�*�,���� �!:�D�A�A��N�N�4� ���
��s�BBc�N�[R"SSU5R5$)z�Convert an arbitrary string to a standard 'extra' name
Any runs of non-alphanumeric characters are replaced with a single '_',
and the result is always lowercased.
z[^A-Za-z0-9.-]+r)�re�sub�lower)�extras r�
safe_extrar2Js!��
�6�6�#�S�%�0�6�6�8�8rc�2�[R"SSU5$)z�Convert an arbitrary string to a standard distribution name
Any runs of non-alphanumeric/. characters are replaced with a single '-'.
z[^A-Za-z0-9.]+�-)r.r/)�names r�	safe_namer6Rs���6�6�"�C��.�.rc��UR(aSUR-$/nURH+nURURUR-5 M- U(aSSR[
U55-$g)zFReturn the version specifier for a requirement in PEP 345/566 fashion.z @ � �,�)�url�	specifierr'�operator�version�join�sorted)�requirement�
requires_dist�specs   r�requires_to_requires_distrDYsi������{���&�&�!�M��%�%�����T�]�]�T�\�\�9�:�&���S�X�X�f�]�3�4�4�4�rc#��# �UHnn[U5n[U5nSR[SUR555nU(aSUS3n[UR5U-U-v� Mp g7f)z=Yield Requires-Dist: strings for parsed requirements strings.r9c3�8# �UHn[U5v� M g7fr)r2)�.0�es  r�	<genexpr>�'convert_requirements.<locals>.<genexpr>ms��� R�8Q�1��A���8Q�s�r!r"N)r
rDr?r@�extrasr6r5)�requirements�req�parsed_requirementrCrKs     r�convert_requirementsrOhsq�����(��-��(�);�<�����&� R�8J�8Q�8Q� R�R�S�������]�F��*�/�/�0�6�9�D�@�@��s�A6A8c#�`# �UR5H�upSnU=(d SnSU;aURSS5up[U5nU(aSU4v� U(aSU-S-nUSUS3-
nU(aS	U-n[U5Hn[	[XC-55nS
U4v� M! M� g7f)a
Convert requirements from a setup()-style dictionary to
('Requires-Dist', 'requirement') and ('Provides-Extra', 'extra') tuples.

extras_require is a dictionary of {extra: [requirements]} as passed to setup(),
using the empty extra {'': [requirements]} to hold install_requires.
r:�:r#�Provides-Extra�(z) and z
extra == '�'z ; �
Requires-DistN)�items�splitr2rOrr
)�extras_requirer1�depends�	condition�new_req�
canonical_reqs      r�generate_requirementsr]ts����)�.�.�0����	������%�<�$�{�{�3��2��E��5�!���"�E�)�)���)�O�h�6�	��:�e�W�A�.�.�I���	�)�I�+�G�4�G���G�,?� @�A�M�!�=�0�0�5�!1�s�B,B.c
�<�[USS9n[5RU5nSSS5 WRSS5 US	US	[R
R
US5n[R
RU5(ar[USS9nUR5nSSS5 [[W5S	S
9nUH5up�[X�05H up�X�4UR5;dMX�U
'M" M7 USnU(arUSR5n
SR
U
S
R5[R "SR
U
SS55S45nUR#U5 US	U$!,(df   GN]=f!,(df   N�=f)zF
Convert .egg-info directory with PKG-INFO to the Metadata 2.1 format
zutf-8)�encodingNzMetadata-Versionz2.1rRrUzrequires.txtc��US=(d S$)Nrr:�)�xs r�<lambda>�%pkginfo_to_metadata.<locals>.<lambda>�s��Q�q�T�Z�UW�Zr)�key�Description�
rr#)�openr�parse�replace_header�os�pathr?�exists�readr@r,r]rVr�lstrip�textwrap�dedent�set_payload)�
egg_info_path�pkginfo_path�headers�pkg_info�
requires_path�
requires_file�requires�parsed_requirementsr1�reqsre�value�description�description_lines�dedented_descriptions               r�pkginfo_to_metadatar��sw��
�l�W�	-���8�>�>�'�*��
.�
���.��6��!�"���!��G�G�L�L���?�M�	�w�w�~�~�m�$�$�
�-�'�
2�m�$�)�)�+�H�3�%�^�H�%=�CW�X��.�K�E�3�U�M�B�
���<�x�~�~�'7�7�$)�S�M�C�/�
�=�)�K��$�]�3�>�>�@��#�y�y�"�!�$�+�+�-�����	�	�*;�A�B�*?� @�A��
� 
��	���1�2��]�#��O�C
.�	-��3�
2�s�E;�F
�;
F
�
F)rr�returnzbool | Literal[''])rz
Iterable[str]r��
Iterator[str])rrr�r�)r(zstr | Iterator[str]r�z3Generator[tuple[str | None, list[str]], None, None])r1rr�r)r5rr�r)rAr
r�r)rLz	list[str]r�r�)rXzdict[str | None, list[str]]r�zIterator[tuple[str, str]])rsrrtrr�r)"�__doc__�
__future__r�	functoolsr�os.pathrkr.rp�collections.abcrrr�
email.messager�email.parserr�typingr	�packaging.requirementsr
r�singledispatchr�registerrrr,r2r6rDrOr]r�rarr�<module>r�s����#����	��9�9�!���.�+����E��E�"
���c��@��@����8��69�/��	A�1�/�1��1�>%r