Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
setupcfg.cpython-313.pyc310 linesDownload Raw Back to __pycache__
1�

2��jGh���%SrSSKJr SSKrSSKrSSKrSSKJr SSKJ	r	 SSK3JrJr SSKJ
r
Jr SSKJrJrJrJrJrJrJr SS	KJr SS4KJrJr SSKJrJr SS
K J!r! SSK"J#r# SSK$J%r%J&r& SSK'J(r( SSK J)r) \(aSSK*J+r+ SSK,J-r- SSK.J/r/ \0\1\2\1\44r3S\4S'\0\1\34r5S\4S'\"SSS5r6S-S.Sjjr7S/Sjr8S0S1Sjjr9S2Sjr:S3S jr;S4S5S!jjr<S6S"jr="S#S$\\65r>"S%S&\>S5r?"S'S(\>S5r@"S)S*\(5rA"S+S,\(5rBg)7a<5Load setuptools configuration from ``setup.cfg`` files.6 7**API will be made private in the future**8 9To read project metadata, consider using10``build.util.project_wheel_metadata`` (https://pypi.org/project/build/).11For simple scenarios, you can also try parsing the file directly12with the help of ``configparser``.13�)�annotationsN)�abstractmethod)�defaultdict)�Iterable�Iterator)�partial�wraps)�
TYPE_CHECKING�Any�Callable�ClassVar�Generic�TypeVar�cast)�default_environment)�InvalidRequirement�Requirement)�InvalidVersion�Version�)�_static)�StrPath)�	FileError�OptionError)�SetuptoolsDeprecationWarning�)�expand)�	TypeAlias��Distribution)�DistributionMetadatar�SingleCommandOptions�AllCommandOptions�Targetr r!c�|�SSKJn U"5nU(aUR5O/n[X@XR5n[	U5$)aRead given configuration file and returns options from it as a dict.14 15:param str|unicode filepath: Path to configuration file16    to get options from.17 18:param bool find_others: Whether to search for other configuration files19    which could be on in various places.20 21:param bool ignore_option_errors: Whether to silently ignore22    options, values of which could not be resolved (e.g. due to exceptions23    in directives such as file:, attr:, etc.).24    If False exceptions are propagated as expected.25 26:rtype: dict27rr)�setuptools.distr �find_config_files�_apply�configuration_to_dict)�filepath�find_others�ignore_option_errorsr �dist�	filenames�handlerss       �`D:\code\apps\devtools\python\user_packages\Python313\site-packages\setuptools/config/setupcfg.py�read_configurationr13s7��$-��>�D�,7��&�&�(�R�I��d�i�F�H� ��*�*�c�<�[X5 UR5 U$)zXApply the configuration from a ``setup.cfg`` file into an existing28distribution object.29)r(�_finalize_requires)r-r*s  r0�apply_configurationr5Ms���4�������Kr2c�H�SSKJn [RR	U5n[RRU5(d[
SUS35e[R"5n[R"[RRU55 /UQUPnURU[[[U5S9 [XRUS9nUR!5 [R"U5 U$![R"U5 f=f)zHRead configuration from ``filepath`` and applies to the ``dist`` object.r)�
_DistributionzConfiguration file z does not exist.)r.)r,)r&r7�os�path�abspath�isfiler�getcwd�chdir�dirname�parse_config_filesr�list�str�parse_configuration�command_options�_finalize_license_files)r-r*�other_filesr,r7�current_directoryr.r/s        r0r(r(Vs���.��w�w���x�(�H�
�7�7�>�>�(�#�#��-�h�Z�7G�H�I�I��	�	����H�H�R�W�W�_�_�X�
&�'�(�+�(�x�(�I�$��(�(���d�3�i��9S�(�T�&��&�&�=Q�30��	
�$�$�&�31���"�#��O��	���"�#�s
�(A	D	�	D!c�h�SU3n[R"[X5n[XU5nU"5$)z�32Given a target object and option key, get that option from33the target object, either through a get_{key} method or34from an attribute directly.35�get_)�	functoolsr�getattr)�36target_obj�key�getter_name�by_attribute�getters     r0�_get_optionrPus4�����,�K��$�$�W�j�>�L�
�Z�l�
;�F��8�Or2c��[[5nUH=nURH*n[URU5nXAUR37U'M, M? U$)z�Returns configuration data gathered by given handlers as a dict.38 39:param Iterable[ConfigHandler] handlers: Handlers list,40    usually from parse_configuration()41 42:rtype: dict43)r�dict�set_optionsrPrK�section_prefix)r/�config_dict�handler�option�values     r0r)r)�sU��$�D�)�K����)�)�F��� 2� 2�F�;�E�:?��.�.�/��7�*��44�r2c	���[R"U5n[UUUU5nUR5 UR(dURUl[URUUUURUR5nUR5 URRURUR5 SSS5 XT4$!,(df   WW4$=f)a�Performs additional parsing of configuration options45for a distribution.46 47Returns a list of used option handlers.48 49:param Distribution distribution:50:param dict command_options:51:param bool ignore_option_errors: Whether to silently ignore52    options, values of which could not be resolved (e.g. due to exceptions53    in directives such as file:, attr:, etc.).54    If False exceptions are propagated as expected.55:rtype: list56N)57r�EnsurePackagesDiscovered�ConfigOptionsHandler�parse�package_dir�ConfigMetadataHandler�metadata�src_root�_referenced_files�update)�distributionrCr,�ensure_discovered�options�metas      r0rBrB�s���$58�	(�	(��	6�:K�&��� ��	59��	�
�
���'�'�'.�':�':�L�$�$��!�!�� ���$�$��!�!�
60��	
�61�62���&�&�-�-��%�%�t�'=�'=�	63�+647�2�=��3657�	6�2��=��s�B/C�66C"c�x^�SU;d[T5S:wag[5R5n[TS5nURU;a[67R
UTSS9 gg![aGn[U4SjU55(a#[68RUTSS9n[U5UeSnAgSnAff=f)a=Because users sometimes misinterpret this configuration:69 70[options.extras_require]71foo = bar;python_version<"4"72 73It looks like one requirement with an environment marker74but because there is no newline, it's parsed as two requirements75with a semicolon as separator.76 77Therefore, if:78    * input string does not contain a newline AND79    * parsed result contains two requirements AND80    * parsing of the two parts from the result ("<first>;<second>")81    leads in a valid Requirement with a valid marker82a UserWarning is shown to inform the user about the possible problem.83�84rNr)�field�reqc3�L># �UHnTSRU5v� M g7f)rN��85startswith)�.0�marker�parseds  �r0�	<genexpr>�8_warn_accidental_env_marker_misconfig.<locals>.<genexpr>�s#����B�'��v�a�y�#�#�F�+�+�'�s�!$)86�len�87marker_env�keysr�name�_AmbiguousMarker�emitr�any�message)�label�88orig_valuerp�markersrj�ex�msgs  `    r0�%_warn_accidental_env_marker_misconfigr��s����"�z��S��[�A�-���l���!�G�2��&��)�$���8�8�w���!�!��6�!�9�!�=����2��B�'�B�B�B�"�*�*��F�1�I�*�F�C�$�S�)�r�1�C��2�s�5A(�(89B9�2=B4�4B9c�:�\rSrSr%SrS\S'0rS\S'SSjr\SSj5r	\90\SS	j55rSS91jr
\SSj5r\S5r\S
5r\S5rSSjrSSjr\S5r\S5r\S Sj5rSSjrSSjrSrSrg)!�
ConfigHandler��z1Handles metadata supplied in configuration files.rArTzClassVar[dict[str, str]]�aliasesc��X0lXl[URU55Ul/UlX@l[["5Ul	g�N)92r,rKrR�_section_options�sectionsrSrd�setrAra)�selfrKrer,rds     r0�__init__�ConfigHandler.__init__�sG��%9�!�",���T�2�2�7�;�<��
�&(���!2��!$�S�����	r2c#�# �UR5HAup#URUR5upEnU(aM,URS5U4v� MC g7f)N�.)�items�	partitionrT�lstrip)�clsre�	full_namerX�pre�_seprvs       r0r��ConfigHandler._section_optionssN���!(�
�
���I�'�1�1�#�2D�2D�E�O�C�t����+�+�c�"�E�)�)�	!0�s�AAc�F�[URRS35e)�.Metadata item name to parser function mapping.z must provide .parsers property)�NotImplementedError�	__class__�__name__)r�s r0�parsers�ConfigHandler.parserss'��"��~�~�&�&�'�'F�G�93�	94r2c���URnURRX5n[X15nU(agURRUS5"U5n[R"URU5n[USU3U5nU"U5 URRU5 g![an[U5UeSnAff=f![4UR-a gf=f)Nc��U$r��)�xs r0�<lambda>�+ConfigHandler.__setitem__.<locals>.<lambda>(s��Qr2�set_)rKr��getrJ�AttributeError�KeyErrorr��	Exceptionr,rIr�__setattr__rS�append)	r��option_namerXrK�
current_value�erp�
simple_setter�setters	         r0�__setitem__�ConfigHandler.__setitem__s����_�_�95��l�l�&�&�{�@��	/�#�J�<�M���	��\�\�%�%�k�;�?��F�F�"�)�)�*�*@�*@�+�N�
���t�K�=�%9�=�I���v��������,��!�	/��;�'�Q�.��	/���|�d�7�7�7�	��	�s(�B5�#C�596C�?C�C�C.�-C.c���[U[5(aU$SU;aUR5nOURU5nUVs/sH)o3R	5(dMUR	5PM+ sn$s snf)z�Represents value as a list.97 98Value is split either by separator (defaults to comma) or by lines.99 100:param value:101:param separator: List items separator character.102:rtype: list103rh)�104isinstancer@�105splitlines�split�strip)r�rX�	separator�chunks    r0�_parse_list�ConfigHandler._parse_list2s_���e�T�"�"��L��5�=��$�$�&�E��K�K�	�*�E�+0�B�5�%�K�K�M�
����
�5�B�B��Bs�A7� A7c���Sn0nURU5HJnURU5upVnXb:wa[SU35eUR5X5R5'ML U$)z8Represents value as a dict.106 107:param value:108:rtype: dict109�=z&Unable to parse option value to dict: )r�r�rr�)r�rXr��result�linerL�sep�vals        r0�_parse_dict�ConfigHandler._parse_dictFsg���	����O�O�E�*�D� �N�N�9�5�M�C�c���!�$J�5�'�"R�S�S�"%�)�)�+�F�9�9�;��	+��
r2c�,�UR5nUS;$)z9Represents value as boolean.110 111:param value:112:rtype: bool113)�1�true�yes)�lower�r�rXs  r0�_parse_bool�ConfigHandler._parse_boolWs�����
���,�,�,r2c�^�U4SjnU$)z�Returns a parser function to make sure field inputs114are not files.115 116Parses a value after getting the key so error messages are117more informative.118 119:param key:120:rtype: callable121c�~>�SnURU5(a[STS35e[R"U5$)N�file:z"Only strings are accepted for the z field, files are not accepted)rm�122ValueErrorr�Str)rX�exclude_directiverLs  �r0�parser�3ConfigHandler._exclude_files_parser.<locals>.parsermsJ��� '����� 1�2�2� �8���>-�-����;�;�u�%�%r2r�)r�rLr�s ` r0�_exclude_files_parser�#ConfigHandler._exclude_files_parseras���	&��
r2c��Sn[U[5(dU$URU5(d[R"U5$U[U5SnUR
S5Vs/sHoUR5PM nnURRU5 [R"[R"Xb55$s snf)aRepresents value as a string, allowing including text123from nearest files using `file:` directive.124 125Directive is sandboxed and won't reach anything outside126directory with setup.py.127 128Examples:129    file: README.rst, CHANGELOG.md, src/file.txt130 131:param str value:132:rtype: str133r�N�,)r�rArmrr�rsr�r�rarbr�134read_files)r�rX�root_dir�include_directive�specr9�	filepathss       r0�_parse_file�ConfigHandler._parse_filexs���$���%��%�%��L���� 1�2�2��;�;�u�%�%��S�*�+�-�.��.2�j�j��o�>�o�d�Z�Z�\�o�	�>����%�%�i�0��{�{�6�,�,�Y�A�B�B��?s�'Cc���SnURU5(d[R"U5$URUS5nUR	UR135R5 [R"XRU5$)z�Represents value as a module attribute.136 137Examples:138    attr: package.attr139    attr: package.module.attr140 141:param str value:142:rtype: str143zattr:�)	rmrr��replacerbrdr]r�	read_attr)r�rXr]r��attr_directive�	attr_descs      r0�_parse_attr�ConfigHandler._parse_attr�sh��!������/�/��;�;�u�%�%��M�M�.�"�5�	�	���4�1�1�=�=�>����	��A�Ar2c�^�U4SjnU$)z�Returns parser function to represents value as a list.144 145Parses a value applying given methods one after another.146 147:param parse_methods:148:rtype: callable149c�.>�UnTHnU"U5nM
 U$r�r�)rXrp�method�
parse_methodss   �r0r\�1ConfigHandler._get_parser_compound.<locals>.parse�s"����F�'������(��Mr2r�)r�r�r\s ` r0�_get_parser_compound�"ConfigHandler._get_parser_compound�s���	��r2c�V�0nUR5HunupVU"XF5X4'M U$)z�Parses section options into a dictionary.150 151Applies a given parser to each option in a section.152 153:param dict section_options:154:param callable values_parser: function with 2 args corresponding to key, value155:rtype: dict156)r�)r��section_options�
values_parserrXrL�_r�s       r0�_parse_section_to_dict_with_key�-ConfigHandler._parse_section_to_dict_with_key�s3����,�2�2�4�M�C��!�&�s�0�E�J�5��r2Nc�F^�T(aU4SjOSnURX5$)z�Parses section options into a dictionary.157 158Optionally applies a given parser to each value.159 160:param dict section_options:161:param callable values_parser: function with 1 arg corresponding to option value162:rtype: dict163c�>�T"U5$r�r�)r��vr�s  �r0r��6ConfigHandler._parse_section_to_dict.<locals>.<lambda>�s164���}�Q�/r2c��U$r�r�)r�r�s  r0r�r��s��UVr2)r�)r�r�r�r�s  ` r0�_parse_section_to_dict�$ConfigHandler._parse_section_to_dict�s!���5B�/����2�2�?�K�Kr2c��UR5H/unup4[R"[5 X@U'SSS5 M1 g!,(df   MC=f)zAParses configuration file section.165 166:param dict section_options:167N)r��168contextlib�suppressr�)r�r�rvr�rXs     r0�
parse_section�ConfigHandler.parse_section�sB��169!0� 5� 5� 7��D�*�1��$�$�X�.�"�T�170�/�.�!8�.�.�s�A�171A	c���URR5HZupSnU(aSU3n[USU3RSS5S5nUc[	SUR172SUS35eU"U5 M\ g)	zDParses configuration file items from one173or more related sections.174 175r�r�r�r��__Nz*Unsupported distribution option section: [�])r�r�rJr�rrT)r��section_namer��method_postfix�section_parser_methods     r0r\�ConfigHandler.parse�s���176.2�]�]�-@�-@�-B�)�L��N��#$�\�N�!3��5<����/�0�8�8��d�C��	6�!�%�,�!���+�+�,�A�l�^�1�>���177
"�/�2�%.Cr2c�8^^^�[T5UUU4Sj5nU$)z�this function will wrap around parameters that are deprecated178 179:param msg: deprecation message180:param func: function to be wrapped around181c�h>�TRSS5 [R"ST40TD6 T"U0UD6$)N�182stacklevelrz Deprecated config in `setup.cfg`)�183setdefault�_DeprecatedConfigrx)�args�kwargs�func�kwrs  ���r0�config_handler�@ConfigHandler._deprecated_config_handler.<locals>.config_handlers7����M�M�,��*��"�"�#E�s�Q�b�Q���(��(�(r2)r	)r�r
rrrs ``` r0�_deprecated_config_handler�(ConfigHandler._deprecated_config_handler�s#���184�t��	)�185�	)�186�r2)rardr,r�rSrK)rKr$rer#rd�expand.EnsurePackagesDiscovered�return�None)rer#rz*Iterator[tuple[str, SingleCommandOptions]]�rzdict[str, Callable]�rr)r�)r��StrPath | None)r�rr�)r��187__module__�__qualname__�__firstlineno__�__doc__�__annotations__r�r��classmethodr��propertyrr�r�r�r�r�r�r�r�r�r�r�r�r\r�__static_attributes__r�r2r0r�r��s=��;����188)+�G�
%�*�����#��189;��190�
�"�*�'�*�	3�*��*���191���192�-�4�C��C�&���� �-��-�����,C�6B�(����&�����193L��194L�#�3�2
r2r�c�^�\rSrSrSrSSSSS.rSrS	\R4SU4S195jjjr	\196SSj5rSrS
r
U=r$)r^i197r_�url�description�classifiers�	platforms)�	home_page�summary�198classifier�platformFNc�>>�[TU]XX45 XPlX`lgr�)�superr�r]r�)r�rKrer,rdr]r�r�s       �r0r��ConfigMetadataHandler.__init__s ���	����.B�V�&�� �
r2c�N�URUR[R5nURUR[R1995n[
URURS9nURn0S[R_S[R_S[R_S[R_SU_SU_SU_S	U_S200URX15_SU"S5_SU_S
U_SU_S[R_SUR_S[R_SU_$)r��r��author�author_email�201maintainer�maintainer_emailr%�keywords�provides�	obsoletesr$�license�
license_filesr#�long_description�long_description_content_type�versionr"�project_urls)r�r�r�Listr��Dictrr�r�r�r��_parse_version)r��parse_list_static�parse_dict_static�202parse_file�exclude_files_parsers     r0r��ConfigMetadataHandler.parsers'sg��!�5�5�d�6F�6F����U�� �5�5�d�6F�6F����U���T�-�-��
�
�F�203�#�9�9��204��g�k�k�205��G�K�K�206�
�'�+�+�207�
����	208�209
�*�210�
�)�
211�
�)�212�
�*�213�
�4�4�4�Z�S�214�
�+�I�6�215�
�.�216�
�:�217�
�218�219�
,�W�[�[�220�
�t�*�*�221� 
�7�;�;�!222�"
�-�#223�	224r2c�:�URXR5nX!:waUR5n[U5 U$[R"URXRUR55$![an[SUSU35UeSnAff=f)z;Parses `version` option value.225 226:param value:227:rtype: str228 229zVersion loaded from z does not comply with PEP 440: N)230r�r�r�rrrrr:r�r])r�rXr:r�s    r0r>�$ConfigMetadataHandler._parse_versionCs����"�"�5�-�-�8�����m�m�o�G�
��� ��N��~�~�d�.�.�u�6F�6F��
�
�V�W�W��"�
�!�*�5�'�2,�,3�9�6�����
�s�A9�9231B�B�B�r]r�)rKr!rer#r,�boolrdrr]zdict | Noner�rrrr)r�rrrrTr��strict_moder8�curdirr�rr�r>r �
__classcell__�r�s@r0r^r^232s�����N�� �#��	�G��K��$(�#%�9�9�!�(�!�#�!�#�	!�233;�!�!�
!�!�!�234�!�!��235��236�6X�Xr2r^c��^�\rSrSrSrSU4Sjjr\S5rSrSSjr	\237SSj5rSrS	r
S238rSSjrSrSS
jrSSjrSSjrSSjrSrU=r$)r[i]rec�V>�[TU]XX45 URUl0Ulgr�)r+r�r`r�r])r�rKrer,rdr�s     �r0r��ConfigOptionsHandler.__init__`s*���	����.B�V�"�+�+��
�+-��r2c�"�URUSS9$)N�;)r�)r�r�s  r0�_parse_list_semicolon�*ConfigOptionsHandler._parse_list_semicolonks�����u���4�4r2c�4�URXRS9$)Nr.)r�r�)r�rXs  r0�_parse_file_in_root�(ConfigOptionsHandler._parse_file_in_rootos������
�
��>�>r2c��URURU55n[XU5 [R"SU55$)Nc3�T# �UHoRS5(aMUv� M  g7f)�#Nrl)rnr�s  r0rq�@ConfigOptionsHandler._parse_requirements_list.<locals>.<genexpr>xs���P�V�T�?�?�3�;O�D�D�V�s�(�	()rQrTr�rr<)r�r{rXrps    r0�_parse_requirements_list�-ConfigOptionsHandler._parse_requirements_listrs>���+�+�D�,D�,D�U�,K�L��-�e�F�C��|�|�P�V�P�P�Pr2c� �URnURnURnUUURUUUUR	US5[URS5URURURU[RUS.$)r�zeThe namespace_packages parameter is deprecated, consider using implicit namespaces instead (PEP 420).�install_requires)�zip_safe�include_package_datar]�scripts�eager_resources�dependency_links�namespace_packagesr]�setup_requires�packages�entry_points�239py_modules�python_requires�cmdclass)r�r��_parse_cmdclassr�rrrZrQ�_parse_packagesrTr�SpecifierSet)r��240parse_list�241parse_bool�parse_cmdclasss    r0r��ConfigOptionsHandler.parsers{s����%�%�242��%�%�243��-�-��#�$.��+�+�!�)� *�"&�"A�"A��H�#�!(��-�-�/A�!�#�8�8��,�,� �4�4�$�&�3�3�&�+244�	245r2c��URRn[R"UR	U5X R2465$r�)rdr]rrir�r�)r�rXr]s   r0rj�$ConfigOptionsHandler._parse_cmdclass�s3���,�,�8�8�����t�/�/��6��]�]�S�Sr2c�,�SS/nUR5nX2;aURU5$URURR	S055nURX2S:HURURS9 [R"S0UD6$)z<Parses `packages` option value.247 248:param value:249:rtype: list250zfind:zfind_namespace:z
packages.findr)�251namespacesr��fill_package_dirr�)252r�r��parse_section_packages__findr�r�rbr�r]r�
find_packages)r�rX�find_directives�
trimmed_value�find_kwargss     r0rk�$ConfigOptionsHandler._parse_packages�s���#�$5�6�����
�
��/��#�#�E�*�*��7�7��M�M���o�r�2�253��	���%��);�;��]�]�!�-�-�	�	254��#�#�2�k�2�2r2c���URXR5n/SQnUR5VVs0sHupEXC;dMU(dMXE_M nnnURS5nUbUSUS'U$s snnf)z�Parses `packages.find` configuration file section.255 256To be used in conjunction with _parse_packages().257 258:param dict section_options:259)�where�include�excluder}r)r�r�r�r�)r�r��section_data�260valid_keys�kr�rzr}s        r0rv�1ConfigOptionsHandler.parse_section_packages__find�s{���2�2�?�DT�DT�U��4�261�(4�(:�(:�(<�V�(<�����t�TU�t�q�t�(<��V�����(����#(��8�K�� ����
Ws�A2�A2�A2c�B�URXR5nX S'g)zPParses `entry_points` configuration file section.262 263:param dict section_options:264rfN)r�r��r�r�rps   r0�parse_section_entry_points�/ConfigOptionsHandler.parse_section_entry_points�s"��265�,�,�_�>N�>N�O��%�^�r2c�d�URXR5n[R"U5$r�)r�r�r�canonic_package_data)r�r��package_datas   r0�_parse_package_data�(ConfigOptionsHandler._parse_package_data�s)���2�2�?�DT�DT�U���*�*�<�8�8r2c�,�URU5US'g)zPParses `package_data` configuration file section.266 267:param dict section_options:268r�N�r��r�r�s  r0�parse_section_package_data�/ConfigOptionsHandler.parse_section_package_data�s��269 $�7�7��H��^�r2c�,�URU5US'g)zXParses `exclude_package_data` configuration file section.270 271:param dict section_options:272�exclude_package_dataNr�r�s  r0�"parse_section_exclude_package_data�7ConfigOptionsHandler.parse_section_exclude_package_data�s��273(,�'?�'?��'P��
#�$r2c�d^�TRUU4Sj5n[R"U5TS'g)zRParses `extras_require` configuration file section.274 275:param dict section_options:276c�0>�TRSUS3U5$)Nzextras_require[r)rZ)r�r�r�s  �r0r��CConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>�s����6�6����1�7M�q�Qr2�extras_requireN)r�rr=r�s`  r0�parse_section_extras_require�1ConfigOptionsHandler.parse_section_extras_require�s1���277�5�5��Q�278��279")���f�!5��
�r2c��URXR5n[R"X R5US'g)zNParses `data_files` configuration file section.280 281:param dict section_options:282�283data_filesN)r�r�r�canonic_data_filesr�r�s   r0�parse_section_data_files�-ConfigOptionsHandler.parse_section_data_files�s3��284�,�,�_�>N�>N�O��#�6�6�v�}�}�M��\�r2rF)285rKr rer#r,rGrdrrr)r{rArXrArr)r�rrrrTr�rrQrTrZrr�rjrkrvr�r�r�r�r�r�r rJrKs@r0r[r[]s�����N�	.� �	.�#�	.�#�		.�286;�	.�287�
	.��5��5�?�Q��288��289�<T�3�2�$&�9�I�Q�2906�N�Nr2r[c�0�\rSrSrSrSrSr\S5rSr	g)rwi�zAmbiguous requirement marker.z�291    One of the parsed requirements in `{field}` looks like a valid environment marker:292 293        {req!r}294 295    Please make sure that the configuration file is correct.296    You can use dangling lines to avoid this problem.297    z'userguide/declarative_config.html#opt-2c�j�SUR3nURURURX!S9$)Nz%https://setuptools.pypa.io/en/latest/)�see_url�format_args)�	_SEE_DOCS�_format�_SUMMARY�_DETAILS)r�r�docss   r0rz�_AmbiguousMarker.messages/��6�s�}�}�o�F���{�{�3�<�<����t�{�T�Tr2r�N)298r�rrrr�r�r�rrzr r�r2r0rwrw�s+��.�H��H�:�I��U��Ur2rwc��\rSrSrSrSrg)r299i
z!userguide/declarative_config.htmlr�N)r�rrrr�r r�r2r0r300r301
s��3�Ir2r302)FF)r*rr+rGr,rGrrR)r-r r*rrr )r�F)303r-r r*rrEzIterable[StrPath]r,rGr�2tuple[ConfigMetadataHandler, ConfigOptionsHandler])rKz#Distribution | DistributionMetadatarLrA)r/zKIterable[ConfigHandler[Distribution] | ConfigHandler[DistributionMetadata]]rrR)F)rcr rCr#r,rGrr�)r{rAr|rArpr@)Cr�304__future__rr�rIr8�abcr�collectionsr�collections.abcrrrr	�typingr305rrr
rrr�packaging.markersrrt�packaging.requirementsrr�packaging.versionrrr�r�_pathr�errorsrr�warningsrr�typing_extensionsrr&r �distutils.distr!rRrA�tupler"rr#r$r1r5r(rPr)rBr�r�r^r[rwr306r�r2r0�<module>r�s���	�#���	��#�.�$�Q�Q�Q�?�B�5���+�3���+�,�3�"&�s�E�#�s�(�O�';�"<��i�<��307 $�C�)=�$=�>��9�>��	��>�+A�	B��PU�+��+�$(�+�HL�+�	�+�4�&(�!&�	�308����#���	�3098��>	����310�	�2"'�+��+�&�+��+�8�	+�\2�@b�G�F�O�b�J	PX�M�*@�A�PX�fYN�=��8�YN�xU�3�U�(4�4�4r2
codekingpro/portable-devtools · Team Ai