Your IP : 3.15.18.136


Current Path : /opt/alt/python313/lib/python3.13/site-packages/setuptools/__pycache__/
Upload File :
Current File : //opt/alt/python313/lib/python3.13/site-packages/setuptools/__pycache__/dist.cpython-313.pyc

�

D\LgU���J�S/rSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSK	J
r
 SSKJr SSK
JrJrJr SSKrSSKrSSKrSSKrSSKrSSKJr SSKJrJr SS	KJr SS
KJr SSK J!r!J"r" SS
K#J$r$ SSK%J&r&J'r' SSK(J)r)J*r* SSK+J,r, SSK-J.r. SSK-J/r/ SSK-J0r0 SSK-J1r2 SSK3J4r4 SSK5J6r6J7r7 SSK8J9r9 SSK:J;r; SSK<J=r=J>r> \?\@4rASrBSrCSrDSrESrFSrGS rHS!rIS"rJS#rKS$rLS%rMS&rNS'rO\;"\R�R�5rR"S(S\R5rQ"S)S*\>5rSg)+�Distribution�N)�suppress)�iglob)�Path)�List�Optional�Set)�DEBUG)�DistutilsOptionError�DistutilsSetupError)�translate_longopt)�	strtobool�)�	partition�unique_everseen)�
OrderedSet)�
InvalidMarker�Marker)�InvalidSpecifier�SpecifierSet)�Version)�
_entry_points)�_normalization)�_reqs)�command)�metadata)�setupcfg�
pyprojecttoml)�ConfigDiscovery)�
get_unpatched)�InformationOnly�SetuptoolsDeprecationWarningc���[R"USSS9nUR(aeg![[[
[4an[U<SU<S35UeSnAff=f)N)�value�name�groupz/ must be importable 'module:attrs' string (got �))r�
EntryPoint�extras�	TypeError�
ValueError�AttributeError�AssertionErrorr)�dist�attrr$�ep�es     ڈ/builddir/build/BUILDROOT/alt-python313-setuptools-69.0.2-1.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/setuptools/dist.py�check_importabler3-sZ���
�
 �
 �u�4�t�
D���9�9��}�9���z�>�>�B��!�FJ�E�R�
��	���s�),�A�A�Ac���[U[[45(deSRU5U:wdeg![[
[[4an[U<SU<S35UeSnAff=f)z"Verify that value is a string list�z  must be a list of strings (got r'N)	�
isinstance�list�tuple�joinr*r+r,r-r�r.r/r$r1s    r2�assert_string_listr;7sg��	��%�$���/�/�/�/��w�w�u�~��&�&�&���z�>�>�B��!�7;�U�C�
��	���s�47�A*�A%�%A*c�.�Un[XU5 UH�nURU5(d[SSU--5eURS5upVnU(a&XS;a![R
R
SUU5 [R"SSSS9 M� g	)
z(Verify that namespace packages are validz1Distribution contains no modules or packages for znamespace package %r�.z^WARNING: %r is declared as a package namespace, but %r is not: please correct this in setup.pyz/The namespace_packages parameter is deprecated.z<Please replace its usage with implicit namespaces (PEP 420).z3references/keywords.html#keyword-namespace-packages)�see_docsN)	r;�has_contents_forr�
rpartition�	distutils�log�warnr"�emit)r.r/r$�ns_packages�nsp�parent�sep�childs        r2�	check_nsprJEs����K��t�;�/����$�$�S�)�)�%�C�(�3�.�/��
�!�^�^�C�0���U��f�/��M�M���;���	
�	%�)�)�=�J�J�	
��c��[[R"[UR	555 g![
[[4an[S5UeSnAff=f)z+Verify that extras_require mapping is validz�'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.N)	r7�	itertools�starmap�_check_extra�itemsr*r+r,rr:s    r2�check_extrasrQbsP����Y�
�
�|�U�[�[�]�
;�<���z�>�2��!�
&�
��		���s�25�A�
A�Ac���URS5up#n[U5 [	[
R"U55 g![a SUSU<S3n[U5Sef=f)N�:zInvalid environment marker: z (r')r�
_check_markerrrr7r�parse)�extra�reqsr%rH�marker�msgs      r2rOrOnsg������,��D�v�1��f��	����T�	����1�,�V�H�B�u�i�q�A��!�#�&�D�0�1�s�A�!A"c�J�U(dg[U5nUR5 g�N)r�evaluate)rX�ms  r2rTrTxs�����v��A��J�J�LrKc�V�[U5U:waSn[URXS95eg)z)Verify that value is True, False, 0, or 1z0{attr!r} must be a boolean value (got {value!r}))r/r$N)�boolr�format)r.r/r$�tmpls    r2�assert_boolrbs.���E�{�e��A��!�$�+�+�4�+�"E�F�F�rKc�^�U(d[RUS35 g[US35e)Nz is ignored.z is invalid.)�DistDeprecationWarningrDr�r.r/r$s   r2�invalid_unless_falserf�s/����#�#�t�f�L�$9�:��
���l�3�
4�4rKc��[[R"U55 [U[[
45(a[
S5eg![[4a nSn[URXS95UeSnAff=f)z9Verify that install_requires is a valid requirements listzUnordered types are not allowedzm{attr!r} must be a string or list of strings containing valid project/version requirement specifiers; {error}�r/�errorN)
r7rrUr6�dict�setr*r+rr`�r.r/r$riras     r2�check_requirementsrm�sw��	R��U�[�[��
� ��e�d�C�[�)�)��=�>�>�*���z�"�R�
O�	
�"�$�+�+�4�+�"E�F�E�Q��R�s�AA�A8�A3�3A8c��[U5 g![[4a nSn[UR	XS95UeSnAff=f)z.Verify that value is a valid version specifierzF{attr!r} must be a string containing valid version specifiers; {error}rhN)rrr,rr`rls     r2�check_specifierro�sI��R��U����n�-�R�W�	
�"�$�+�+�4�+�"E�F�E�Q��	R�s��>�9�>c�n�[R"U5 g![an[U5UeSnAff=f)z)Verify that entry_points map is parseableN)r�load�	Exceptionrr:s    r2�check_entry_pointsrs�s2��,����5�!���,�!�!�$�!�+��,�s��
4�/�4c�D�[U[5(d[S5eg)Nztest_suite must be a string)r6�strrres   r2�check_test_suiterv�s ���e�S�!�!�!�"?�@�@�"rKc�*�[U[5(d[SRU55eUR	5HPup4[U[
5(d[SRX55e[
USRU5U5 MR g)z@Verify that value is a dictionary of package names to glob listszT{!r} must be a dictionary mapping package names to lists of string wildcard patternsz,keys of {!r} dict must be strings (got {!r})zvalues of {!r} dictN)r6rjrr`rPrur;)r.r/r$�k�vs     r2�check_package_datarz�s����e�T�"�"�!�
'�'-�v�d�|�
�	
����
����!�S�!�!�%�>�E�E�d�N��
�	�4�!6�!=�!=�d�!C�Q�G�rKc��UHAn[R"SU5(aM![RR	SU5 MC g)Nz\w+(\.\w+)*z[WARNING: %r not a valid package name; please use only .-separated package names in setup.py)�re�matchrArBrC)r.r/r$�pkgnames    r2�check_packagesr�s7�����x�x���0�0��M�M���8��
�rKc�P^�\rSrSrSrS\\SS\\S.rSr	Sr
S.S	jrS
rSr
\S5rS
rSrSr\S5rS.SjrSrSrSrS.SjrSrS/SjrSrSr\S5rSrSrSr Sr!Sr"S r#S!r$S"r%S#r&S$r'S%r(S&r)S'r*S(r+S)r,S*r-S+r.U4S,jr/S-r0U=r1$)0r��a�
Distribution with support for tests and package data

This is an enhanced version of 'distutils.dist.Distribution' that
effectively adds the following new optional keyword arguments to 'setup()':

 'install_requires' -- a string or sequence of strings specifying project
    versions that the distribution requires when installed, in the format
    used by 'pkg_resources.require()'.  They will be installed
    automatically when the package is installed.  If you wish to use
    packages that are not available in PyPI, or want to give your users an
    alternate download location, you can add a 'find_links' option to the
    '[easy_install]' section of your project's 'setup.cfg' file, and then
    setuptools will scan the listed web pages for links that satisfy the
    requirements.

 'extras_require' -- a dictionary mapping names of optional "extras" to the
    additional requirement(s) that using those extras incurs. For example,
    this::

        extras_require = dict(reST = ["docutils>=0.3", "reSTedit"])

    indicates that the distribution can optionally provide an extra
    capability called "reST", but it can only be used if docutils and
    reSTedit are installed.  If the user installs your package using
    EasyInstall and requests one of your extras, the corresponding
    additional requirements will be installed if needed.

 'test_suite' -- the name of a test suite to run for the 'test' command.
    If the user runs 'python setup.py test', the package will be installed,
    and the named test suite will be run.  The format is the same as
    would be used on a 'unittest.py' command line.  That is, it is the
    dotted name of an object to import and call to generate a test suite.

 'package_data' -- a dictionary mapping package names to lists of filenames
    or globs to use to find data files contained in the named packages.
    If the dictionary has filenames or globs listed under '""' (the empty
    string), those names will be searched for in every package, in addition
    to any names for the specific package.  Data files found using these
    names/globs will be installed along with the package, in the same
    location as the package.  Note that globs are allowed to reference
    the contents of non-package subdirectories, as long as you use '/' as
    a path separator.  (Globs are automatically converted to
    platform-specific paths at runtime.)

In addition to these new keywords, this class also has several new methods
for manipulating the distribution's contents.  For example, the 'include()'
and 'exclude()' methods can be thought of as in-place add and subtract
commands that add or remove packages, modules, extensions, and so on from
the distribution.
c��gr[�r�rKr2�<lambda>�Distribution.<lambda>s��rKc��gr[r�r�rKr2r�r�s��rKc��gr[r�r�rKr2r�r�	s��rK)�long_description_content_type�project_urls�provides_extras�license_file�
license_files�install_requires�extras_requireNc��U(aSU;dSU;ag[R"[US55R5n[	[
R5 [
R"U5nUbCURS5(d-[R"[US55Ul
X0lSSS5 g!,(df   g=f)Nr%�versionzPKG-INFO)r�	safe_nameru�lowerrr�PackageNotFoundError�distribution�	read_text�safe_version�_version�
_patched_dist)�self�attrsr%r.s    r2�patch_missing_pkg_info�#Distribution.patch_missing_pkg_infos���
��e�+�y��/E���'�'��E�&�M�(:�;�A�A�C��
�h�3�3�
4��(�(��.�D������z�(B�(B� .� ;� ;�C��i�@P�<Q� R��
�%)�"�	5�
4�
4�s
�AC�
Cc�2�[US5nU(d0UlU=(d 0n/UlURSS5UlURU5 URS/5UlURS/5Ul[R"SS9H(n[U5RURS5 M* [UR5nUSS1-nUR5VVs0sHupVXT;dMXV_M nnn[ R#X5 [5Ul['U5UlUR+U5 UR-URR.5URlUR15 gs snnf)	N�package_data�src_root�dependency_links�setup_requires�distutils.setup_keywords�r&r�r�)�hasattrr��
dist_files�popr�r�r�r�r�entry_points�vars�
setdefaultr%rk�_DISTUTILS_UNSUPPORTED_METADATArP�
_Distribution�__init__�_referenced_filesr�set_defaults�_set_metadata_defaults�_normalize_versionr��_finalize_requires)r�r��have_package_datar0�
metadata_onlyrxry�
dist_attrss        r2r��Distribution.__init__sQ��#�D�.�9�� � "�D����������	�	�*�d�3��
��#�#�E�*� %�	�	�*<�b� A���#�i�i�(8�"�=����'�'�.H�I�B���J�!�!�"�'�'�4�0�J��D�@�@�A�
��,�.>�?�?�
�',�{�{�}�O�}�t�q��8N�d�a�d�}�
�O����t�0�
,/�5���+�D�1����#�#�E�*� $� 7� 7��
�
�8M�8M� N��
�
�����!��Ps�2
F�Fc���S1n[UR5Vs1sHn[URUS5cMUiM! nnX-
nU(aSU3n[U5egs snf)Nr%z&Required package metadata is missing: )r�r�getattrr)r��required�key�provided�missingrYs      r2�_validate_metadata�Distribution._validate_metadata=sr���8���D�M�M�*�
�*���t�}�}�c�4�0�
�*�	�
�
�%���:�7�)�D�C�%�c�*�*���
s
�A�Ac	��URR5H=up#[UR5R	X!RX#"555 M? g)z�
Fill-in missing metadata fields not supported by distutils.
Some fields may have been set by other tools (e.g. pbr).
Those fields (vars(self.metadata)) take precedence to
supplied attrs.
N)r�rPr�rr��get)r�r��option�defaults    r2r��#Distribution._set_metadata_defaultsJsD�� $�C�C�I�I�K�O�F������*�*�6�9�9�V�W�Y�3O�P� LrKc��SSKJn [U[R5(a[U5nO[X5(dUcU$[[
U55nX:wa[R"SUSUS35 U$U$)Nr)�sicz
Normalizing 'z' to '�')	r5r�r6�numbers�Numberrurr!rD)r�r��
normalizeds   r2r��Distribution._normalize_versionTsp����g�w�~�~�.�.��'�l�G�
��
%�
%����N����)�*�
�� �� � �=��	��
�|�1�!M�N����rKc���[USS5(aURURlUR5 URURlUR
URlUR
(adUR
R
5HEnURS5SnU(dM URRRU5 MG gg)zh
Set `metadata.python_requires` and fix environment markers
in `install_requires` and `extras_require`.
�python_requiresNrSr)
r�r�r�_normalize_requiresr�r��keys�splitr��add)r�rVs  r2r��Distribution._finalize_requiresds���
�4�*�D�1�1�,0�,@�,@�D�M�M�)�� � �"�)-�)>�)>��
�
�&�'+�':�':��
�
�$�����,�,�1�1�3�����C�(��+���5��M�M�1�1�5�5�e�<�	4�rKc��[USS5=(d /n[USS5=(d 0n[[[[R
"U555UlUR5VVs0sH<up4U[[[[R
"U=(d /555_M> snnUlgs snnf)zAMake sure requirement-related attributes exist and are normalizedr�Nr�)	r�r7�maprurrUr�rPr�)r�r�r�rxrys     r2r�� Distribution._normalize_requiresws���"�4�);�T�B�H�b�� ��'7��>�D�"�� $�S��e�k�k�:J�.K�%L� M���@N�@T�@T�@V�
�@V���A�t�C��U�[�[���b�1�2�3�3�@V�
����
s�2AB>c� �URRnU(aUO/nURRnU(aX2;aURU5 UcUcSn[	[UR
U555URlg)z<Compute names of all license files which should be included.N)zLICEN[CS]E*zCOPYING*zNOTICE*zAUTHORS*)rr�r��appendr7r�_expand_patterns)r�r��patternsr�s    r2�_finalize_license_files�$Distribution._finalize_license_files�st��-1�]�]�-H�-H�
�/<�m�"��&*�m�m�&@�&@���L�8��O�O�L�)�� �\�%9�J�H�&*��D�1�1�(�;�<�'
��
�
�#rKc��SU5$)z�
>>> list(Distribution._expand_patterns(['LICENSE']))
['LICENSE']
>>> list(Distribution._expand_patterns(['setup.cfg', 'LIC*']))
['setup.cfg', 'LICENSE']
c3��# �UH`n[[U55HEnURS5(aM[RRU5(dMAUv� MG Mb g7f)�~N)�sortedr�endswith�os�path�isfile)�.0�patternr�s   r2�	<genexpr>�0Distribution._expand_patterns.<locals>.<genexpr>�sR���
�#���u�W�~�.���=�=��%�
�+-�'�'�.�.��*>�
�D�.�
�#�s�0A)�"A)�
A)r�)r�s r2r��Distribution._expand_patterns�s��
�#�
�	
rKc
�p�SSKJn [R[R:Xa/O/SQn[U5nUcUR
5n[(aURS5 U"5n[Ul
UH�n[USS9n[(a)URSR"S0[5D65 URU5 SSS5 UR5HsnUR!U5nUR#U5n	UHHn
U
S	:XdX�;aMUR%Xz5nUR'X�5n
UR)X�5n
X[4X�'MJ Mu UR+5 M� S
UR,;agUR,S
R/5Hbun
up�UR0R%U
5n
U
(a[3U5(+nOU
S;a[3U5n[5X
=(d U
U5 Md g!,(df   GN?=f![6an[9U5UeSnAff=f)
z�
Adapted from distutils.dist.Distribution.parse_config_files,
this method provides the same functionality in subtly-improved
ways.
r)�ConfigParser)
zinstall-basezinstall-platbasezinstall-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptszinstall-data�prefixzexec-prefix�home�user�rootNz"Distribution.parse_config_files():�utf-8��encodingz  reading {filename}�__name__�global)�verbose�dry_runr�)�configparserr��sysr��base_prefix�	frozenset�find_config_filesr
�announceru�optionxform�openr`�locals�	read_file�sections�options�get_option_dictr��warn_dash_deprecation�make_option_lowercaser��command_optionsrP�negative_optr�setattrr+r)r��	filenamesr��ignore_options�parser�filename�reader�sectionr��opt_dict�opt�val�src�aliasr1s               r2�_parse_config_files� Distribution._parse_config_files�s���	.�
�z�z�S�_�_�,�
��	�(#�>�2�����.�.�0�I��5��M�M�>�?���� ���!�H��h��1�V��5��M�M�"8�"?�"?�"K�&�(�"K�L�� � ��(�2�"�?�?�,�� �.�.��1���/�/��8��"�C��j�(�C�,A� � �*�*�W�2�C��4�4�S�B�C��4�4�S�B�C�%-�O�H�M�#�	-�
�O�O��)"�,�4�/�/�/��
 $�3�3�H�=�C�C�E�O�C��#��%�%�)�)�#�.�E��#�C�.�(���.�.���n��
5���l�s�C�0� F�72�1��H�
5�*�1�-�1�4��
5�s%�
AH�.H�
H	�
H5�$H0�0H5c�X�US;aU$URSS5n[[R"[R
RUR555nURS5(d
US:waX$;aU$SU;a [R"SSU<SU<S	3S
SS9 U$)
N)zoptions.extras_requirezoptions.data_files�-�_r�rzInvalid dash-separated optionsz)
                Usage of dash-separated zZ will not be supported in future
                versions. Please use the underscore name z instead.
                �!userguide/declarative_config.html�i��	��r>�due_date)�replacer7rM�chainrAr�__all__�_setuptools_commands�
startswithr"rD)r�r
r�underscore_opt�commandss     r2r�"Distribution.warn_dash_deprecation�s����
�
��J����S�#�.����O�O��!�!�)�)��)�)�+�
�
���"�"�9�-�-��:�%��'�!�!��#�:�(�-�-�0�)�),��0:�:H�9K�L��=�&�	
��rKc��[R"S5RR$![Ra /s$f=f)N�
setuptools)rr�r��namesr�)r�s r2r�!Distribution._setuptools_commandss>��	��(�(��6�C�C�I�I�I���,�,�	��I�	�s�),�A�Ac
��US:wdUR5(aU$UR5n[R"SSU<SU<SU<S3SSS	9 U$)
NrzInvalid uppercase configurationz$
            Usage of uppercase key z in zL will not be supported in
            future versions. Please use lowercase z instead.
            rrr)�islowerr�r"rD)r�r
r�
lowercase_opts    r2r�"Distribution.make_option_lowercasesk���j� �C�K�K�M�M��J��	�	��
�$�)�)�-�$�$'�7�$�w�k�:3�3@�2C�D
�
�9�"�		
��rKc
�,�UR5nUcURU5n[(aURSU-5 UR	5H�unupV[(aURSU<SU<SU<S35 UR
Vs/sHn[
U5PM nnURn	[U[5n
XI;a&U
(a[XU[U5(+5 M�XH;aU
(a[X[U55 M�[X5(a[XU5 M�[SU<SU<S	U<S
35e gs snf![a /nN�f=f![a 0n	N�f=f![an[U5UeSnAff=f)a�
Set the options for 'command_obj' from 'option_dict'.  Basically
this means copying elements of a dictionary ('option_dict') to
attributes of an instance ('command').

'command_obj' must be a Command instance.  If 'option_dict' is not
supplied, uses the standard option dictionary for this command
(from 'self.command_options').

(Adopted from distutils.dist.Distribution._set_command_options)
Nz#  setting options for '%s' command:z    z = z (from r'z	error in z: command 'z' has no such option 'r�)�get_command_namerr
r�rP�boolean_optionsr
r,rr6rurrr�rr+)r��command_obj�option_dict�command_namer��sourcer$�o�	bool_opts�neg_opt�	is_stringr1s            r2�_set_command_options�!Distribution._set_command_options-si��#�3�3�5�����.�.�|�<�K��5��M�M�?�,�N�O�'2�'8�'8�':�#�F�O�V��u��
�
����O�P�
�;F�;V�;V�W�;V�a�.�q�1�;V�	�W�
�%�2�2��
5�&�u�c�2�	��$���K���i��>N�:N�O��(�Y��K��5�1A�B��[�1�1��K��7�.�!�<��9���+(;��X��!�
��	�
��"�
���
�� �
5�*�1�-�1�4��
5�s`�E�E�(E�+E&�89E8�3!E8�E8�4E8�E�E#�"E#�&E5�4E5�8
F�F�Fc���/n[UR=(d [RS5nUb,[	SU5n[US5n[US5nX4$UR
5(aU/nX4$)z/Add default file and split between INI and TOMLzpyproject.tomlc�2�[U5RS:H$)Nz.toml)r�suffix)�fs r2r��8Distribution._get_project_config_files.<locals>.<lambda>`s���Q����'�(ArKrr)rr�r��curdirrr7�exists)r�r�	tomlfiles�standard_project_metadata�partss     r2�_get_project_config_files�&Distribution._get_project_config_files[s|���	�$(����)C�"�)�)�EU�$V�!�� ��A�9�M�E��U�1�X��I��U�1�X��I��#�#�'�
-�
-�
/�
/�2�3�I��#�#rKc��URU5up4URUS9 [R"XRUS9 UHn[
R"XU5 M UR5 UR5 g)zHParses configuration files from various levels
and loads configuration.
)r)�ignore_option_errorsN)	rCrr�parse_configurationrr�apply_configurationr�r�)r�rrF�inifilesr@r	s      r2�parse_config_files�Distribution.parse_config_filesgsy��#�<�<�Y�G���� � �8� �4��$�$��&�&�=Q�	
�"�H��-�-�d�>R�S�"�	
���!��$�$�&rKc��SSKJn U"X5$)zResolve pre-setup requirementsr)�_fetch_build_eggs)�	installerrM)r��requiresrMs   r2�fetch_build_eggs�Distribution.fetch_build_eggsxs��0� ��0�0rKc���SnSn[R"US9n[R"URU5n[SU5n[
XRS9HnU"U5 M
 g)z�
Allow plugins to apply arbitrary operations to the
distribution. Each hook may optionally define a 'order'
to influence the order of execution. Smaller numbers
go first and the default is 0.
z(setuptools.finalize_distribution_optionsc��[USS5$)N�orderr)r�)�hooks r2�by_order�/Distribution.finalize_options.<locals>.by_order�s���4��!�,�,rKr�c�"�UR5$r[)rq)r1s r2r��/Distribution.finalize_options.<locals>.<lambda>�s
��q�v�v�xrK)r�N)rr�rM�filterfalse�_removedr�r�)r�r&rV�defined�filtered�loadedr0s       r2�finalize_options�Distribution.finalize_options~sY��;��	-��'�'�e�4���(�(�����@���'��2����.�B��t�H�/rKc�&�S1nURU;$)z�
When removing an entry point, if metadata is loaded
from an older version of Setuptools, that removed
entry point will attempt to be loaded and will fail.
See #2765 for more details.
�
2to3_doctests)r%)r0�removeds  r2r[�Distribution._removed�s��
�
���w�w�'�!�!rKc��[R"SS9H?n[XRS5nUcMUR	5"XRU5 MA g)Nr�r�)rr�r�r%rq)r�r0r$s   r2�_finalize_setup_keywords�%Distribution._finalize_setup_keywords�sC���'�'�.H�I�B��D�'�'�4�0�E�� ����	�$����/�JrKc��SSKJn [RR	[R
S5n[RR
U5(d�[R"U5 URU5 [RR	US5n[US5nURS5 URS5 URS5 SSS5 U$U$!,(df   U$=f)	Nr)�windows_supportz.eggsz
README.txt�wzcThis directory contains eggs that were downloaded by setuptools to build, test, and run plug-ins.

zAThis directory caches those eggs to prevent repeated downloads.

z/However, it is safe to delete this directory.

)r5rir�r�r9r>r?�mkdir�	hide_filer��write)r�ri�
egg_cache_dir�readme_txt_filenamer<s     r2�get_egg_cache_dir�Distribution.get_egg_cache_dir�s���%������R�Y�Y��8�
��w�w�~�~�m�,�,��H�H�]�#��%�%�m�4�"$�'�'�,�,�}�l�"K���)�3�/�1����J�����.�����K�L�0���}��0�/���s�,4C,�,
C;c��SSKJn U"X5$)z Fetch an egg needed for buildingr)�fetch_build_egg)rNrs)r��reqrss   r2rs�Distribution.fetch_build_egg�s��.��t�)�)rKc���XR;aURU$[R"SUS9nUH$nUR5=URU'nUs $ [RX5$)z(Pluggable version of get_command_class()�distutils.commands)r&r%)�cmdclassrr�rqr��get_command_class)r�r�epsr0rxs     r2ry�Distribution.get_command_class�si���m�m�#��=�=��)�)��#�#�*>�W�M���B�02���	�9�D�M�M�'�"�X��O��!�2�2�4�A�ArKc���[R"SS9HGnURUR;dMUR	5nX RUR'MI [
R
U5$�Nrwr�)rr�r%rxrqr��print_commands�r�r0rxs   r2r~�Distribution.print_commands�sW���'�'�.B�C�B��w�w�d�m�m�+��7�7�9��)1�
�
�b�g�g�&�D��+�+�D�1�1rKc���[R"SS9HGnURUR;dMUR	5nX RUR'MI [
R
U5$r})rr�r%rxrqr��get_command_listrs   r2r��Distribution.get_command_list�sW���'�'�.B�C�B��w�w�d�m�m�+��7�7�9��)1�
�
�b�g�g�&�D��-�-�d�3�3rKc��UR5H7up#[USU-S5nU(a
U"U5 M&URX#5 M9 g)a�Add items to distribution that are named in keyword arguments

For example, 'dist.include(py_modules=["x"])' would add 'x' to
the distribution's 'py_modules' attribute, if it was not already
there.

Currently, this method only supports inclusion for attributes that are
lists or tuples.  If you need to add support for adding to other
attributes in this or a subclass, you can add an '_include_X' method,
where 'X' is the name of the attribute.  The method will be called with
the value passed to 'include()'.  So, 'dist.include(foo={"bar":"baz"})'
will try to call 'dist._include_foo({"bar":"baz"})', which can then
handle whatever special inclusion logic is needed.
�	_include_N)rPr��
_include_misc)r�r�rxry�includes     r2r��Distribution.include�s@���K�K�M�D�A��d�K�!�O�T�:�G����
��"�"�1�(�"rKc�>�US-nUR(a@URVs/sH$o3U:wdM
URU5(aM"UPM& snUlUR(a@URVs/sH$o3U:wdM
URU5(aM"UPM& snUlUR(aVURVs/sH9nURU:wdMURRU5(aM7UPM; snUlggs snfs snfs snf)z9Remove packages, modules, and extensions in named packager=N)�packagesr �
py_modules�ext_modulesr%�r��package�pfx�ps    r2�exclude_package�Distribution.exclude_package�s�����m���=�=��=�=��(�a��L�����c�AR��=��D�M��?�?��?�?��*�a�7�l��1�<�<�PS�CT��?��D�O�����)�)� �)�A��6�6�W�$��-.�V�V�->�->�s�-C��)� �D������
��
 s4�D�D�	D�6D�D�D�D�D�Dc�v�US-nUR5H nX1:XdURU5(dM  g g)z<Return true if 'exclude_package(package)' would do somethingr=TN)�iter_distribution_namesr r�s    r2r?�Distribution.has_contents_fors6����m���-�-�/�A��|�q�|�|�C�0�0��0rKc	�Z�[U[5(d[U<SU<S35e[X5nUb#[U[5(d[US-5eU(a$[XUVs/sHoUU;dM
UPM sn5 gg![an[SU-5UeSnAff=fs snf)zAHandle 'exclude()' for list/tuple attrs without a special handlerz#: setting must be a list or tuple (r'� %s: No such distribution settingN�4: this setting cannot be changed via include/exclude�r6�sequencerr�r,r)r�r%r$�oldr1�items      r2�
_exclude_misc�Distribution._exclude_misc
s����%��*�*�%�>B�E�J��
�	X��$�%�C��?�:�c�8�#<�#<�%��M�M��
���D�#� K�#�$�U�9J��#� K�L���
�	X�%�&H�4�&O�P�VW�W��	X��!Ls#�B�,B(�8B(�
B%�B � B%c�j�[U[5(d[U<SU<S35e[X5nUc
[XU5 g[U[5(d[US-5eUVs/sHoUU;dM
UPM nn[XX6-5 g![an[SU-5UeSnAff=fs snf)zAHandle 'include()' for list/tuple attrs without a special handlerz: setting must be a list (r'r�Nr�r�)r�r%r$r�r1r��news       r2r��Distribution._include_miscs����%��*�*�%�4�QV�&W�X�X�	X��$�%�C��;��D��&��C��*�*�%��M�M��
�%*�=�E�D��_�4�E�C�=��D��	�*���	X�%�&H�4�&O�P�VW�W��	X��>s#�B�,B0�8B0�
B-�B(�(B-c��UR5H7up#[USU-S5nU(a
U"U5 M&URX#5 M9 g)aRemove items from distribution that are named in keyword arguments

For example, 'dist.exclude(py_modules=["x"])' would remove 'x' from
the distribution's 'py_modules' attribute.  Excluding packages uses
the 'exclude_package()' method, so all of the package's contained
packages, modules, and extensions are also excluded.

Currently, this method only supports exclusion from attributes that are
lists or tuples.  If you need to add support for excluding from other
attributes in this or a subclass, you can add an '_exclude_X' method,
where 'X' is the name of the attribute.  The method will be called with
the value passed to 'exclude()'.  So, 'dist.exclude(foo={"bar":"baz"})'
will try to call 'dist._exclude_foo({"bar":"baz"})', which can then
handle whatever special exclusion logic is needed.
�	_exclude_N)rPr�r�)r�r�rxry�excludes     r2r��Distribution.exclude1s@�� �K�K�M�D�A��d�K�!�O�T�:�G����
��"�"�1�(�"rKc��[U[5(d[SU<S35e[[	UR
U55 g)Nz+packages: setting must be a list or tuple (r')r6r�rr7r�r�)r�r�s  r2�_exclude_packages�Distribution._exclude_packagesHs9���(�H�-�-�%�DL�N��
�	
�S��%�%�x�
0�1rKc��URRUlURRUlUSnURS5nX4;a-XCupVXC	SSKnURUS5USS&USnX4;aM-[RXU5nURU5n	[U	SS5(aSU4URU5S'Ub/$U$)Nr�aliasesTr�command_consumes_arguments�command line�args)
�	__class__�global_optionsrr�shlexr�r��_parse_command_optsryr�)
r�rr�rr�rrr��nargs�	cmd_classs
          r2r�� Distribution._parse_command_optsOs���"�n�n�;�;��� �N�N�7�7����q�'���&�&�y�1��� � �)�J�C�� ���{�{�5�$�/�D��!�H��1�g�G�
� ��1�1�$��E���*�*�7�3�	��9�:�D�A�A�5C�U�4K�D� � ��)�&�1�� ��	��rKc	���0nURR5H�up#UR5H�unupVUS:waMURSS5nUS:XavURU5nURR5nUR
[US055 UR5Hup�X�:XdMU	nSn O [S5eUS:XaSnXaRU05U'M� M� U$)	a@Return a '{cmd: {opt:val}}' map of all command-line options

Option names are all long, but do not include the leading '--', and
contain dashes rather than underscores.  If the option doesn't take
an argument (e.g. '--quiet'), the 'val' is 'None'.

Note that options provided by config files are intentionally excluded.
r�rrrrNzShouldn't be able to get herer)
rrPr�get_command_objr�copy�updater�r-r�)r��d�cmd�optsr
rr�cmdobjr5�neg�poss           r2�get_cmdline_options� Distribution.get_cmdline_optionsjs���
���-�-�3�3�5�I�C�#'�:�:�<���Z�c��.�(���k�k�#�s�+���!�8�!�1�1�#�6�F�"�/�/�4�4�6�G��N�N�7�6�>�2�#F�G�$+�M�M�O����:�"%�C�"&�C�!�	%4�-�-L�M�M��A�X��C�-0���S�"�%�c�*�+$0�6�0�rKc#�N# �UR=(d SHnUv� M	 UR=(d SHnUv� M	 UR=(d SHHn[U[5(aUupEOUR
nUR
S5(aUSSnUv� MJ g7f)z@Yield all packages, modules, and extension names in distributionr��moduleNi����)r�r�r�r6r8r%r�)r��pkgr��extr%�	buildinfos      r2r��$Distribution.iter_distribution_names�s�����=�=�&�B�&�C��I�'��o�o�+��+�F��L�,��#�#�)�r�)�C��#�u�%�%�"%���i��x�x���}�}�X�&�&��C�R�y���J�*�s�B#B%c�D�SSKnUR(a[RX5$[	UR
[R5(d[RX5$UR
RR5S;a[RX5$UR
RnUR
RSS9 [RX5UR
RUS9 $!UR
RUS9 f=f)z�If there were any non-global "display-only" options
(--help-commands or the metadata display options) on the command
line, display the requested info and return true; else return
false.
rN)r��utf8r�r�)r��
help_commandsr��handle_display_optionsr6�stdout�io�
TextIOWrapperr�r��reconfigure)r��option_orderr�r�s    r2r��#Distribution.handle_display_options�s���	���� �7�7��K�K��#�*�*�b�&6�&6�7�7� �7�7��K�K��:�:���$�$�&�*;�;� �7�7��K�K��:�:�&�&���
�
�����0�	6� �7�7��K��J�J�"�"�H�"�5��C�J�J�"�"�H�"�5�s�D�Dc�D>�UR5 [TU]	U5 gr[)r��super�run_command)r�rr�s  �r2r��Distribution.run_command�s�������	���G�$rK)r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r[)NF)2r��
__module__�__qualname__�__firstlineno__�__doc__rjrr7r�r�r�r�r�r��staticmethodr�r�r�r�r�rrrrr7rCrJrPr_r[rfrprsryr~r�r�r�r?r�r�r�r�r�r�r�r�r��__static_attributes__�
__classcell__)r�s@r2rr�s"���1�h*6��%�$�%� ��'�#��M�*�"�>+�Q��
��
�=�&
�
�&�
��
�M5�^ �D��$,5�\
$�'�"1��$�"��"�0��**�
B�2�4�)�,�*�M�"+�&)�.2��6$�L�$6�8%�%rKc��\rSrSrSrSrg)rdi�znClass for warning about deprecations in dist in
setuptools. Not ignored by default, unlike DeprecationWarning.r�N)r�r�r�r�r�r�r�rKr2rdrd�s��FrKrd)Trr�rMr�r�r|r��
contextlibr�globr�pathlibr�typingrrr	�
distutils.cmdrA�distutils.command�distutils.core�distutils.dist�
distutils.log�distutils.debugr
�distutils.errorsrr�distutils.fancy_getoptr
�distutils.utilr�extern.more_itertoolsrr�extern.ordered_setr�extern.packaging.markersrr�extern.packaging.specifiersrr�extern.packaging.versionrr5rrrrr�
_importlibr�configrr�	discoveryr�monkeyr �warningsr!r"r8r7r�r3r;rJrQrOrTrbrfrmrorsrvrzr�corerr�rdr�rKr2�<module>r�s����
��
���	�	�
����&�&������!�F�4�$�=�*�;�G�-����� �+�&�!�C��$�;����
�:	���G�5�R�R�,�A�
H���i�n�n�9�9�:�
�s%�=�s%�lF�9�FrK

?>