§
    `ÉÝjÏg  ã                  ót  — U d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZmZ ddlmZmZmZmZmZmZmZ ddlmZ dd	lmZmZ dd
lmZmZ ddlmZ ddl m!Z! ddl"m#Z#m$Z$ ddl%m&Z& ddlm'Z' erddl(m)Z) ddl*m+Z+ ddl,m-Z- e.e/e0e/ef         f         Z1de2d<   	 e.e/e1f         Z3de2d<   	  eddd¦  «        Z4	 dEdFd#„Z5dGd%„Z6	 	 dHdId*„Z7dJd/„Z8dKd2„Z9	 dLdMd5„Z:dNd:„Z; G d;„ d<ee4         ¦  «        Z< G d=„ d>e<d         ¦  «        Z= G d?„ d@e<d         ¦  «        Z> G dA„ dBe&¦  «        Z? G dC„ dDe&¦  «        Z@dS )Oa<  
Load setuptools configuration from ``setup.cfg`` files.

**API will be made private in the future**

To read project metadata, consider using
``build.util.project_wheel_metadata`` (https://pypi.org/project/build/).
For simple scenarios, you can also try parsing the file directly
with the help of ``configparser``.
é    )ÚannotationsN)Ú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    FÚfilepathr   Úfind_othersÚboolÚignore_option_errorsÚreturnÚdictc                ó”   — ddl m}  |¦   «         }|r|                     ¦   «         ng }t          || ||¦  «        }t	          |¦  «        S )a,  Read given configuration file and returns options from it as a dict.

    :param str|unicode filepath: Path to configuration file
        to get options from.

    :param bool find_others: Whether to search for other configuration files
        which could be on in various places.

    :param bool ignore_option_errors: Whether to silently ignore
        options, values of which could not be resolved (e.g. due to exceptions
        in directives such as file:, attr:, etc.).
        If False exceptions are propagated as expected.

    :rtype: dict
    r   r   )Úsetuptools.distr   Úfind_config_filesÚ_applyÚconfiguration_to_dict)r$   r%   r'   r   ÚdistÚ	filenamesÚhandlerss          úb/home/spazio/cosmos_universe_media/venv/lib/python3.11/site-packages/setuptools/config/setupcfg.pyÚread_configurationr3   2   s^   € ð$ -Ð,Ð,Ð,Ð,Ð,àˆ<‰>Œ>€DØ,7Ð?�×&Ò&Ñ(Ô(Ð(¸R€IÝ�d˜H iÐ1EÑFÔF€HÝ  Ñ*Ô*Ð*ó    r/   c                óN   — t          | |¦  «         |                      ¦   «          | S )z`Apply the configuration from a ``setup.cfg`` file into an existing
    distribution object.
    )r-   Ú_finalize_requires)r/   r$   s     r2   Úapply_configurationr7   L   s+   € õ ˆ4�ÑÔÐØ×ÒÑÔÐØ€Kr4   © Úother_filesúIterable[StrPath]ú2tuple[ConfigMetadataHandler, ConfigOptionsHandler]c                óf  — ddl m} t          j                             |¦  «        }t          j                             |¦  «        st          d|› d�¦  «        ‚t          j        ¦   «         }t          j        t          j         	                    |¦  «        ¦  «         g |¢|‘}	 | 
                    | t          t          t                   |¦  «        ¬¦  «         t          | | j        |¬¦  «        }|                      ¦   «          t          j        |¦  «         n# t          j        |¦  «         w xY w|S )zHRead configuration from ``filepath`` and applies to the ``dist`` object.r   )Ú_DistributionzConfiguration file z does not exist.)r0   )r'   )r+   r=   ÚosÚpathÚabspathÚisfiler   ÚgetcwdÚchdirÚdirnameÚparse_config_filesr   ÚlistÚstrÚparse_configurationÚcommand_optionsÚ_finalize_license_files)r/   r$   r9   r'   r=   Úcurrent_directoryr0   r1   s           r2   r-   r-   U   s"  € ð .Ð-Ð-Ð-Ð-Ð-åŒw�Š˜xÑ(Ô(€HåŒ7�>Š>˜(Ñ#Ô#ð JÝÐH¨hÐHÐHÐHÑIÔIÐIåœ	™œÐÝ„H�RŒW�_Š_˜XÑ&Ô&Ñ'Ô'Ð'Ø(�+Ð(˜xÐ(€Ið$à×(Ò(¨½½dÅ3¼iÈÑ9SÔ9SÐ(ÑTÔTÐTÝ&Ø�$Ô&Ð=Qð
ñ 
ô 
ˆð 	×$Ò$Ñ&Ô&Ð&å
ŒÐ"Ñ#Ô#Ð#Ð#ø�ŒÐ"Ñ#Ô#Ð#Ð#øøøà€Os   Â#A D ÄD.Ú
target_objú#Distribution | DistributionMetadataÚkeyrG   c                óx   — d|› �}t          j        t          | |¦  «        }t          | ||¦  «        } |¦   «         S )z 
    Given a target object and option key, get that option from
    the target object, either through a get_{key} method or
    from an attribute directly.
    Úget_)Ú	functoolsr   Úgetattr)rL   rN   Úgetter_nameÚby_attributeÚgetters        r2   Ú_get_optionrV   t   s?   € ð ˜�,�,€KÝÔ$¥W¨j¸#Ñ>Ô>€LÝ�Z ¨lÑ;Ô;€FØˆ6‰8Œ8€Or4   r1   úKIterable[ConfigHandler[Distribution] | ConfigHandler[DistributionMetadata]]c                ó–   — t          t          ¦  «        }| D ]1}|j        D ]'}t          |j        |¦  «        }|||j                 |<   Œ(Œ2|S )z¿Returns configuration data gathered by given handlers as a dict.

    :param Iterable[ConfigHandler] handlers: Handlers list,
        usually from parse_configuration()

    :rtype: dict
    )r   r)   Úset_optionsrV   rL   Úsection_prefix)r1   Úconfig_dictÚhandlerÚoptionÚvalues        r2   r.   r.   €   sk   € õ $¥DÑ)Ô)€Kàð @ð @ˆØÔ)ð 	@ð 	@ˆFÝ Ô 2°FÑ;Ô;ˆEØ:?ˆK˜Ô.Ô/°Ñ7Ð7ð	@ð Ðr4   ÚdistributionrI   c           	     óŒ  — t          j        | ¦  «        5 }t          | |||¦  «        }|                     ¦   «          | j        s|j        | _        t          | j        |||| j        | j        ¦  «        }|                     ¦   «          | j         	                    |j        |j        ¦  «         ddd¦  «         n# 1 swxY w Y   ||fS )aÒ  Performs additional parsing of configuration options
    for a distribution.

    Returns a list of used option handlers.

    :param Distribution distribution:
    :param dict command_options:
    :param bool ignore_option_errors: Whether to silently ignore
        options, values of which could not be resolved (e.g. due to exceptions
        in directives such as file:, attr:, etc.).
        If False exceptions are propagated as expected.
    :rtype: list
    N)
r   ÚEnsurePackagesDiscoveredÚConfigOptionsHandlerÚparseÚpackage_dirÚConfigMetadataHandlerÚmetadataÚsrc_rootÚ_referenced_filesÚupdate)r_   rI   r'   Úensure_discoveredÚoptionsÚmetas         r2   rH   rH   –   s  € õ$ 
Ô	(¨Ñ	6Ô	6ð 
Ð:KÝ&ØØØ Øñ	
ô 
ˆð 	�Š‰ŒˆØÔ'ð 	;Ø'.Ô':ˆLÔ$å$ØÔ!ØØ ØØÔ$ØÔ!ñ
ô 
ˆð 	�
Š
‰ŒˆØÔ&×-Ò-ØÔ% tÔ'=ñ	
ô 	
ð 	
ð+
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð2 �ˆ=Ðs   •BB7Â7B;Â>B;ÚlabelÚ
orig_valueÚparsedrF   c                óÊ  ‡— d|v st          ‰¦  «        dk    rdS t          ¦   «                              ¦   «         }	 t          ‰d         ¦  «        }|j        |v r$t
                               | ‰d         ¬¦  «         dS dS # t          $ rX}t          ˆfd„|D ¦   «         ¦  «        r2t
           	                    | ‰d         ¬¦  «        }t          |¦  «        |‚Y d}~dS d}~ww xY w)am  Because users sometimes misinterpret this configuration:

    [options.extras_require]
    foo = bar;python_version<"4"

    It looks like one requirement with an environment marker
    but because there is no newline, it's parsed as two requirements
    with a semicolon as separator.

    Therefore, if:
        * input string does not contain a newline AND
        * parsed result contains two requirements AND
        * parsing of the two parts from the result ("<first>;<second>")
        leads in a valid Requirement with a valid marker
    a UserWarning is shown to inform the user about the possible problem.
    Ú
r   Nr   )ÚfieldÚreqc              3  óN   •K  — | ]}‰d                                |¦  «        V — Œ dS )r   N©Ú
startswith)Ú.0Úmarkerro   s     €r2   ú	<genexpr>z8_warn_accidental_env_marker_misconfig.<locals>.<genexpr>ß   s5   øè è € ÐBÐB°ˆv�aŒy×#Ò# FÑ+Ô+ÐBÐBÐBÐBÐBÐBr4   )
ÚlenÚ
marker_envÚkeysr   ÚnameÚ_AmbiguousMarkerÚemitr   ÚanyÚmessage)rm   rn   ro   Úmarkersrs   ÚexÚmsgs     `    r2   Ú%_warn_accidental_env_marker_misconfigr…   Ä   s  ø€ ð" ˆzÐÐ�S ™[œ[¨AÒ-Ð-Øˆå‰lŒl×ÒÑ!Ô!€Gð2Ý˜& œ)Ñ$Ô$ˆØŒ8�wÐÐÝ×!Ò!¨°6¸!´9Ð!Ñ=Ô=Ð=Ð=Ð=ð Ðøåð 2ð 2ð 2ÝÐBÐBÐBÐB¸'ÐBÑBÔBÑBÔBð 	2Ý"×*Ò*°¸FÀ1¼IÐ*ÑFÔFˆCÝ$ SÑ)Ô)¨rÐ1ð	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøøð2øøøs   ¼A B  Â 
C"Â
ACÃC"c                  ó2  — e Zd ZU dZded<   	 i Zded<   	 d$d„Zed%d„¦   «         Ze	d„ ¦   «         Z
d&d„Zed'd„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd(d„Zd)d„Zed„ ¦   «         Zed„ ¦   «         Zed*d „¦   «         Zd&d!„Zd&d"„Zd#„ ZdS )+ÚConfigHandlerz1Handles metadata supplied in configuration files.rG   rZ   zClassVar[dict[str, str]]ÚaliasesrL   r#   rk   r"   rj   úexpand.EnsurePackagesDiscoveredr(   ÚNonec                óÈ   — || _         || _        t          |                      |¦  «        ¦  «        | _        g | _        || _        t          t                   ¦   «         | _	        d S ©N)
r'   rL   r)   Ú_section_optionsÚsectionsrY   rj   ÚsetrG   rh   )ÚselfrL   rk   r'   rj   s        r2   Ú__init__zConfigHandler.__init__ô   sZ   € ð %9ˆÔ!Ø",ˆŒÝ˜T×2Ò2°7Ñ;Ô;Ñ<Ô<ˆŒØ&(ˆÔØ!2ˆÔÝ!$¥S¤¡¤ˆÔð	ð 	r4   ú*Iterator[tuple[str, SingleCommandOptions]]c              #  ó²   K  — |                      ¦   «         D ]?\  }}|                     | j        ¦  «        \  }}}|rŒ&|                     d¦  «        |fV — Œ@d S )Nú.)ÚitemsÚ	partitionrZ   Úlstrip)Úclsrk   Ú	full_namer^   ÚpreÚ_sepr}   s          r2   r�   zConfigHandler._section_options  su   è è € ð !(§¢¡¤ð 	*ð 	*ÑˆI�uØ'×1Ò1°#Ô2DÑEÔE‰OˆC��tØð ØØ—+’+˜cÑ"Ô" EÐ)Ð)Ð)Ð)Ð)ð		*ð 	*r4   c                ó:   — t          | j        j        › d�¦  «        ‚)ú.Metadata item name to parser function mapping.z must provide .parsers property)ÚNotImplementedErrorÚ	__class__Ú__name__)r�   s    r2   ÚparserszConfigHandler.parsers  s'   € õ "ØŒ~Ô&ÐGÐGÐGñ
ô 
ð 	
r4   c                óâ  — | j         }| j                             ||¦  «        }	 t          ||¦  «        }n"# t          $ r}t          |¦  «        |‚d }~ww xY w|rd S 	  | j                             |d„ ¦  «        |¦  «        }n# t          f| j        z  $ r Y d S w xY wt          j
        |j        |¦  «        }t          |d|› �|¦  «        } ||¦  «         | j                             |¦  «         d S )Nc                ó   — | S rŒ   r8   )Úxs    r2   ú<lambda>z+ConfigHandler.__setitem__.<locals>.<lambda>&  s   € ¸Q€ r4   Úset_)rL   rˆ   ÚgetrR   ÚAttributeErrorÚKeyErrorr¡   Ú	Exceptionr'   rQ   r   Ú__setattr__rY   Úappend)	r�   Úoption_namer^   rL   Úcurrent_valueÚero   Úsimple_setterÚsetters	            r2   Ú__setitem__zConfigHandler.__setitem__  s'  € Ø”_ˆ
ð ”l×&Ò& {°KÑ@Ô@ˆð	/Ý# J°Ñ<Ô<ˆMˆMøÝð 	/ð 	/ð 	/Ý˜;Ñ'Ô'¨QÐ.øøøøð	/øøøð ð 	àˆFð	Ø?�T”\×%Ò% k°;°;Ñ?Ô?ÀÑFÔFˆFˆFøÝˆ|˜dÔ7Ñ7ð 	ð 	ð 	ØˆFˆFð	øøøõ "Ô)¨*Ô*@À+ÑNÔNˆÝ˜Ð%9¨KÐ%9Ð%9¸=ÑIÔIˆØˆˆv‰ŒˆàÔ×Ò Ñ,Ô,Ð,Ð,Ð,s&   ¤5 µ
A¿AÁAÁ%B ÂBÂBÚ,c                ó¤   — t          |t          ¦  «        r|S d|v r|                     ¦   «         }n|                     |¦  «        }d„ |D ¦   «         S )z×Represents value as a list.

        Value is split either by separator (defaults to comma) or by lines.

        :param value:
        :param separator: List items separator character.
        :rtype: list
        rq   c                ó^   — g | ]*}|                      ¦   «         ¯|                      ¦   «         ‘Œ+S r8   ©Ústrip)rw   Úchunks     r2   ú
<listcomp>z-ConfigHandler._parse_list.<locals>.<listcomp>B  s-   € ÐBÐBÐB %°E·K²K±M´MÐB�—’‘”ÐBÐBÐBr4   )Ú
isinstancerF   Ú
splitlinesÚsplit)r˜   r^   Ú	separators      r2   Ú_parse_listzConfigHandler._parse_list0  s\   € õ �e�TÑ"Ô"ð 	ØˆLà�5ˆ=ˆ=Ø×$Ò$Ñ&Ô&ˆEˆEà—K’K 	Ñ*Ô*ˆEàBÐB¨5ÐBÑBÔBÐBr4   c                óò   — d}i }|                       |¦  «        D ]\}|                     |¦  «        \  }}}||k    rt          d|› �¦  «        ‚|                     ¦   «         ||                     ¦   «         <   Œ]|S )zPRepresents value as a dict.

        :param value:
        :rtype: dict
        Ú=z&Unable to parse option value to dict: )r¾   r–   r   r·   )r˜   r^   r½   ÚresultÚlinerN   ÚsepÚvals           r2   Ú_parse_dictzConfigHandler._parse_dictD  s„   € ð ˆ	ØˆØ—O’O EÑ*Ô*ð 	.ð 	.ˆDØ ŸNšN¨9Ñ5Ô5‰MˆC��cØ�iÒÐÝ!Ð"RÈ5Ð"RÐ"RÑSÔSÐSØ"%§)¢)¡+¤+ˆF�3—9’9‘;”;ÑÐàˆr4   c                ó2   — |                      ¦   «         }|dv S )zQRepresents value as boolean.

        :param value:
        :rtype: bool
        )Ú1ÚtrueÚyes)Úlower©r˜   r^   s     r2   Ú_parse_boolzConfigHandler._parse_boolU  s   € ð —’‘”ˆØÐ,Ð,Ð,r4   c                ó   ‡— ˆfd„}|S )zßReturns a parser function to make sure field inputs
        are not files.

        Parses a value after getting the key so error messages are
        more informative.

        :param key:
        :rtype: callable
        c                ó€   •— d}|                       |¦  «        rt          d‰› d�¦  «        ‚t          j        | ¦  «        S )Núfile:z"Only strings are accepted for the z field, files are not accepted)rv   Ú
ValueErrorr   ÚStr)r^   Úexclude_directiverN   s     €r2   Úparserz3ConfigHandler._exclude_files_parser.<locals>.parserk  sZ   ø€ Ø 'ÐØ×ÒÐ 1Ñ2Ô2ð Ý ð-¸ð -ð -ð -ñô ð õ ”;˜uÑ%Ô%Ð%r4   r8   )r˜   rN   rÓ   s    ` r2   Ú_exclude_files_parserz#ConfigHandler._exclude_files_parser_  s#   ø€ ð	&ð 	&ð 	&ð 	&ð 	&ð ˆr4   Úroot_dirúStrPath | Nonec                ót  — d}t          |t          ¦  «        s|S |                     |¦  «        st          j        |¦  «        S |t          |¦  «        d…         }d„ |                     d¦  «        D ¦   «         }| j                             |¦  «         t          j        t          j
        ||¦  «        ¦  «        S )aO  Represents value as a string, allowing including text
        from nearest files using `file:` directive.

        Directive is sandboxed and won't reach anything outside
        directory with setup.py.

        Examples:
            file: README.rst, CHANGELOG.md, src/file.txt

        :param str value:
        :rtype: str
        rÏ   Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r8   r¶   )rw   r?   s     r2   r¹   z-ConfigHandler._parse_file.<locals>.<listcomp>Œ  s    € Ð>Ð>Ð> d�T—Z’Z‘\”\Ð>Ð>Ð>r4   r³   )rº   rG   rv   r   rÑ   rz   r¼   rh   ri   r   Ú
read_files)r�   r^   rÕ   Úinclude_directiveÚspecÚ	filepathss         r2   Ú_parse_filezConfigHandler._parse_filev  s²   € ð $Ðå˜%¥Ñ%Ô%ð 	ØˆLà×ÒÐ 1Ñ2Ô2ð 	&Ý”;˜uÑ%Ô%Ð%à•SÐ*Ñ+Ô+Ð-Ð-Ô.ˆØ>Ð>¨d¯jªj¸©o¬oÐ>Ñ>Ô>ˆ	ØÔ×%Ò% iÑ0Ô0Ð0åŒ{�6Ô,¨Y¸ÑAÔAÑBÔBÐBr4   r   c                óî   — d}|                      |¦  «        st          j        |¦  «        S |                     |d¦  «        }|                     | j        j        ¦  «         t          j        |||¦  «        S )z·Represents value as a module attribute.

        Examples:
            attr: package.attr
            attr: package.module.attr

        :param str value:
        :rtype: str
        zattr:Ú )	rv   r   rÑ   Úreplaceri   rj   rd   r   Ú	read_attr)r�   r^   rd   rÕ   Úattr_directiveÚ	attr_descs         r2   Ú_parse_attrzConfigHandler._parse_attr‘  ss   € ð !ˆØ×Ò Ñ/Ô/ð 	&Ý”;˜uÑ%Ô%Ð%à—M’M .°"Ñ5Ô5ˆ	ð 	×Ò˜4Ô1Ô=Ñ>Ô>Ð>ÝÔ 	¨;¸ÑAÔAÐAr4   c                ó   ‡— ˆfd„}|S )z¹Returns parser function to represents value as a list.

        Parses a value applying given methods one after another.

        :param parse_methods:
        :rtype: callable
        c                ó,   •— | }‰D ]} ||¦  «        }Œ|S rŒ   r8   )r^   ro   ÚmethodÚparse_methodss      €r2   rc   z1ConfigHandler._get_parser_compound.<locals>.parse¯  s+   ø€ ØˆFà'ð (ð (�Ø˜ ™œ��àˆMr4   r8   )r˜   rè   rc   s    ` r2   Ú_get_parser_compoundz"ConfigHandler._get_parser_compound¥  s#   ø€ ð	ð 	ð 	ð 	ð 	ð ˆr4   c                ób   — i }|                      ¦   «         D ]\  }\  }} |||¦  «        ||<   Œ|S )a  Parses section options into a dictionary.

        Applies a given parser to each option in a section.

        :param dict section_options:
        :param callable values_parser: function with 2 args corresponding to key, value
        :rtype: dict
        )r•   )r˜   Úsection_optionsÚvalues_parserr^   rN   Ú_rÄ   s          r2   Ú_parse_section_to_dict_with_keyz-ConfigHandler._parse_section_to_dict_with_key¹  sH   € ð ˆØ,×2Ò2Ñ4Ô4ð 	1ð 	1‰MˆC‘�!�SØ&˜ s¨CÑ0Ô0ˆE�#‰JˆJØˆr4   Nc                óD   ‡— ‰rˆfd„nd„ }|                       ||¦  «        S )a   Parses section options into a dictionary.

        Optionally applies a given parser to each value.

        :param dict section_options:
        :param callable values_parser: function with 1 arg corresponding to option value
        :rtype: dict
        c                ó   •—  ‰|¦  «        S rŒ   r8   )rí   Úvrì   s     €r2   r¥   z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ò  s   ø€ ˜}˜}¨QÑ/Ô/€ r4   c                ó   — |S rŒ   r8   )rí   rñ   s     r2   r¥   z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ò  s   € ÐUV€ r4   )rî   )r˜   rë   rì   rÓ   s     ` r2   Ú_parse_section_to_dictz$ConfigHandler._parse_section_to_dictÈ  s7   ø€ ð 5BÐWÐ/Ð/Ð/Ð/Ð/ÈÈˆØ×2Ò2°?ÀFÑKÔKÐKr4   c                ó¬   — |                      ¦   «         D ]>\  }\  }}t          j        t          ¦  «        5  || |<   ddd¦  «         n# 1 swxY w Y   Œ?dS )zQParses configuration file section.

        :param dict section_options:
        N)r•   Ú
contextlibÚsuppressr©   )r�   rë   r}   rí   r^   s        r2   Úparse_sectionzConfigHandler.parse_sectionÕ  s¢   € ð
 !0× 5Ò 5Ñ 7Ô 7ð 	#ð 	#ÑˆD‘*�1�eÝÔ$¥XÑ.Ô.ð #ð #à"��T‘
ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #øð	#ð 	#s   ¶AÁA	ÁA	c                óö   — | j                              ¦   «         D ]^\  }}d}|rd|› �}t          | d|› �                     dd¦  «        d¦  «        }|€t	          d| j        › d|› d�¦  «        ‚ ||¦  «         Œ_dS )	zTParses configuration file items from one
        or more related sections.

        rß   rí   r÷   r”   Ú__Nz*Unsupported distribution option section: [ú])rŽ   r•   rR   rà   r   rZ   )r�   Úsection_namerë   Úmethod_postfixÚsection_parser_methods        r2   rc   zConfigHandler.parseß  sÒ   € ð
 .2¬]×-@Ò-@Ñ-BÔ-Bð 	3ð 	3Ñ)ˆL˜/ØˆNØð 4Ø!3 \Ð!3Ð!3�å5<Øà0 Ð0Ð0×8Ò8¸¸dÑCÔCØñ	6ô 6Ð!ð %Ð,Ý!ð>ØÔ+ð>ð >Ø.:ð>ð >ð >ñô ð ð
 "Ð! /Ñ2Ô2Ð2Ð2ð%	3ð 	3r4   c                óD   ‡‡‡— t          ‰¦  «        ˆˆˆfd„¦   «         }|S )z¢this function will wrap around parameters that are deprecated

        :param msg: deprecation message
        :param func: function to be wrapped around
        c                 óf   •— ‰                      dd¦  «         t          j        d‰fi ‰¤Ž  ‰| i |¤ŽS )NÚ
stacklevelr   z Deprecated config in `setup.cfg`)Ú
setdefaultÚ_DeprecatedConfigr   )ÚargsÚkwargsÚfuncÚkwr„   s     €€€r2   Úconfig_handlerz@ConfigHandler._deprecated_config_handler.<locals>.config_handlerÿ  sH   ø€ à�MŠM˜,¨Ñ*Ô*Ð*ÝÔ"Ð#EÀsÐQÐQÈbÐQÐQÐQØ�4˜Ð( Ð(Ð(Ð(r4   )r   )r�   r  r„   r  r  s    ``` r2   Ú_deprecated_config_handlerz(ConfigHandler._deprecated_config_handlerø  sB   øøø€ õ 
ˆt‰Œð	)ð 	)ð 	)ð 	)ð 	)ð 	)ñ 
Œð	)ð
 Ðr4   )rL   r#   rk   r"   rj   r‰   r(   rŠ   )rk   r"   r(   r’   ©r(   rŠ   )r³   )rÕ   rÖ   )rÕ   r   rŒ   )r    Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__rˆ   r‘   Úclassmethodr�   Úpropertyr¡   r²   r¾   rÅ   rÌ   rÔ   rÝ   rä   ré   rî   ró   r÷   rc   r  r8   r4   r2   r‡   r‡   ä   sÞ  € € € € € € Ø;Ð;àÐÐÑðð
 )+€GÐ*Ð*Ð*Ñ*ððð ð ð ð" ð*ð *ð *ñ „[ð*ð ð
ð 
ñ „Xð
ð-ð -ð -ð -ð4 ðCð Cð Cñ „[ðCð& ðð ñ „[ðð  ð-ð -ñ „[ð-ð ðð ñ „[ðð,Cð Cð Cð Cð6Bð Bð Bð Bð( ðð ñ „[ðð& ðð ñ „[ðð ð
Lð 
Lð 
Lñ „[ð
Lð#ð #ð #ð #ð3ð 3ð 3ð 3ð2ð ð ð ð r4   r‡   c                  ód   ‡ — e Zd ZdZdddddœZdZ	 dej        fdˆ fd„Ze	d„ ¦   «         Z
d„ Zˆ xZS )re   rf   ÚurlÚdescriptionÚclassifiersÚ	platforms)Ú	home_pageÚsummaryÚ
classifierÚplatformFNrL   r    rk   r"   r'   r&   rj   r‰   rd   údict | NonerÕ   rÖ   r(   rŠ   c                ól   •— t          ¦   «                              ||||¦  «         || _        || _        d S rŒ   )Úsuperr‘   rd   rÕ   )r�   rL   rk   r'   rj   rd   rÕ   rŸ   s          €r2   r‘   zConfigMetadataHandler.__init__  s8   ø€ õ 	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ&ˆÔØ ˆŒˆˆr4   c                ó   — |                       | j        t          j        ¦  «        }|                       | j        t          j        ¦  «        }t          | j        | j        ¬¦  «        }| j	        }i dt          j
        “dt          j
        “dt          j
        “dt          j
        “d|“d|“d|“d	|“d
|                       ||¦  «        “d |d¦  «        “d|“d|“d|“dt          j
        “d| j        “dt          j
        “d|“S )r�   ©rÕ   ÚauthorÚauthor_emailÚ
maintainerÚmaintainer_emailr  ÚkeywordsÚprovidesÚ	obsoletesr  ÚlicenseÚlicense_filesr  Úlong_descriptionÚlong_description_content_typeÚversionr  Úproject_urls)ré   r¾   r   ÚListrÅ   ÚDictr   rÝ   rÕ   rÔ   rÑ   Ú_parse_version)r�   Úparse_list_staticÚparse_dict_staticÚ
parse_fileÚexclude_files_parsers        r2   r¡   zConfigMetadataHandler.parsers%  s^  € ð !×5Ò5°dÔ6FÍÌÑUÔUÐØ ×5Ò5°dÔ6FÍÌÑUÔUÐÝ˜TÔ-¸¼ÐFÑFÔFˆ
Ø#Ô9Ðð
Ø•g”kð
à�GœKð
ð �'œ+ð
ð ¥¤ð	
ð
 Ð*ð
ð Ð)ð
ð Ð)ð
ð Ð*ð
ð ˜4×4Ò4°ZÐARÑSÔSð
ð Ð+Ð+¨IÑ6Ô6ð
ð Ð.ð
ð ˜:ð
ð  
ð
ð ,­W¬[ð
ð �tÔ*ð
ð  •7”;ð!
ð" Ð-ð#
ð 	
r4   c                óH  — |                       || j        ¦  «        }||k    rO|                     ¦   «         }	 t          |¦  «         n(# t          $ r}t          d|› d|› �¦  «        |‚d}~ww xY w|S t          j        |                      || j	        | j        ¦  «        ¦  «        S )zSParses `version` option value.

        :param value:
        :rtype: str

        zVersion loaded from z does not comply with PEP 440: N)
rÝ   rÕ   r·   r   r   r   r   r)  rä   rd   )r�   r^   r)  r¯   s       r2   r-  z$ConfigMetadataHandler._parse_versionA  sË   € ð ×"Ò" 5¨$¬-Ñ8Ô8ˆà�eÒÐØ—m’m‘o”oˆGðÝ˜Ñ Ô Ð Ð øÝ!ð ð ð Ý!ð6¨5ð 6ð 6Ø,3ð6ð 6ñô ð ðøøøøðøøøð ˆNåŒ~˜d×.Ò.¨u°dÔ6FÈÌÑVÔVÑWÔWÐWs   ·A Á
A,ÁA'Á'A,)rL   r    rk   r"   r'   r&   rj   r‰   rd   r  rÕ   rÖ   r(   rŠ   )r    r
  r  rZ   rˆ   Ústrict_moder>   Úcurdirr‘   r  r¡   r-  Ú__classcell__©rŸ   s   @r2   re   re     s¨   ø€ € € € € Ø€Nð Ø Ø#Øð	ð €Gð €Kðð $(Ø#%¤9ð!ð !ð !ð !ð !ð !ð !ð ð
ð 
ñ „Xð
ð6Xð Xð Xð Xð Xð Xð Xr4   re   c                  óž   ‡ — e Zd ZdZdˆ fd„Zed„ ¦   «         Zd„ Zdd„Ze	d„ ¦   «         Z
d„ Zd„ Zd„ Zdd„Zd„ Zdd„Zdd„Zdd„Zdd„Zˆ xZS )rb   rk   rL   r   r"   r'   r&   rj   r‰   r(   rŠ   c                óv   •— t          ¦   «                              ||||¦  «         |j        | _        i | _        d S rŒ   )r  r‘   rg   rÕ   rd   )r�   rL   rk   r'   rj   rŸ   s        €r2   r‘   zConfigOptionsHandler.__init__^  s=   ø€ õ 	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ"Ô+ˆŒØ+-ˆÔÐÐr4   c                ó0   — |                       |d¬¦  «        S )Nú;)r½   )r¾   rË   s     r2   Ú_parse_list_semicolonz*ConfigOptionsHandler._parse_list_semicoloni  s   € à�Š˜u°ˆÑ4Ô4Ð4r4   c                ó:   — |                       || j        ¬¦  «        S )Nr  )rÝ   rÕ   )r�   r^   s     r2   Ú_parse_file_in_rootz(ConfigOptionsHandler._parse_file_in_rootm  s   € Ø×Ò °´ÐÑ>Ô>Ð>r4   rm   rG   r^   c                ó°   — |                       |                      |¦  «        ¦  «        }t          |||¦  «         t          j        d„ |D ¦   «         ¦  «        S )Nc              3  óD   K  — | ]}|                      d ¦  «        °|V — ŒdS )ú#Nru   )rw   rÂ   s     r2   ry   z@ConfigOptionsHandler._parse_requirements_list.<locals>.<genexpr>v  s3   è è € ÐPÐP T¸4¿?º?È3Ñ;OÔ;OÐP˜DÐPÐPÐPÐPÐPÐPr4   )r;  r=  r…   r   r+  )r�   rm   r^   ro   s       r2   Ú_parse_requirements_listz-ConfigOptionsHandler._parse_requirements_listp  sV   € à×+Ò+¨D×,DÒ,DÀUÑ,KÔ,KÑLÔLˆÝ-¨e°U¸FÑCÔCÐCõ Œ|ÐPÐP¨VÐPÑPÔPÑPÔPÐPr4   c                óØ   — | j         }| j        }| j        }||| j        ||||                      |d¦  «        t          | j        d¦  «        | j        | j        | j	        |t          j        |dœS )r�   zeThe namespace_packages parameter is deprecated, consider using implicit namespaces instead (PEP 420).Úinstall_requires)Úzip_safeÚinclude_package_datard   ÚscriptsÚeager_resourcesÚdependency_linksÚnamespace_packagesrC  Úsetup_requiresÚpackagesÚentry_pointsÚ
py_modulesÚpython_requiresÚcmdclass)r¾   rÌ   Ú_parse_cmdclassrÅ   r  r   rA  r;  Ú_parse_packagesr=  r   ÚSpecifierSet)r�   Ú
parse_listÚ
parse_boolÚparse_cmdclasss       r2   r¡   zConfigOptionsHandler.parsersy  s–   € ð Ô%ˆ
ØÔ%ˆ
ØÔ-ˆð #Ø$.ØÔ+Ø!Ø)Ø *Ø"&×"AÒ"AØðHñ#ô #õ !(ØÔ-Ð/Añ!ô !ð #Ô8ØÔ,Ø Ô4Ø$Ý&Ô3Ø&ð+
ð 
ð 	
r4   c                óv   — | j         j        }t          j        |                      |¦  «        || j        ¦  «        S rŒ   )rj   rd   r   rO  rÅ   rÕ   )r�   r^   rd   s      r2   rP  z$ConfigOptionsHandler._parse_cmdclass˜  s1   € ØÔ,Ô8ˆÝŒ˜t×/Ò/°Ñ6Ô6¸ÀTÄ]ÑSÔSÐSr4   c                ó:  — ddg}|                      ¦   «         }||vr|                      |¦  «        S |                      | j                             di ¦  «        ¦  «        }|                     ||d         k    | j        | j        ¬¦  «         t          j	        di |¤ŽS )zTParses `packages` option value.

        :param value:
        :rtype: list
        zfind:zfind_namespace:zpackages.findr   )Ú
namespacesrÕ   Úfill_package_dirr8   )
r·   r¾   Úparse_section_packages__findrŽ   r§   ri   rÕ   rd   r   Úfind_packages)r�   r^   Úfind_directivesÚtrimmed_valueÚfind_kwargss        r2   rQ  z$ConfigOptionsHandler._parse_packagesœ  s·   € ð #Ð$5Ð6ˆØŸš™œˆà Ð/Ð/Ø×#Ò# EÑ*Ô*Ð*ð ×7Ò7ØŒM×Ò˜o¨rÑ2Ô2ñ
ô 
ˆð 	×ÒØ%¨¸Ô);Ò;Ø”]Ø!Ô-ð 	ñ 	
ô 	
ð 	
õ Ô#Ð2Ð2 kÐ2Ð2Ð2r4   c                óÊ   ‡— |                       || j        ¦  «        }g d¢Šˆfd„|                     ¦   «         D ¦   «         }|                     d¦  «        }|�|d         |d<   |S )zœParses `packages.find` configuration file section.

        To be used in conjunction with _parse_packages().

        :param dict section_options:
        )ÚwhereÚincludeÚexcludec                ó(   •— i | ]\  }}|‰v ¯	|¯||“ŒS r8   r8   )rw   Úkrñ   Ú
valid_keyss      €r2   ú
<dictcomp>zEConfigOptionsHandler.parse_section_packages__find.<locals>.<dictcomp>¿  s)   ø€ ÐVÐVÐV¡  1ÀÀZÀÀÐTUÀ�q˜!ÀÀÀr4   r`  Nr   )ró   r¾   r•   r§   )r�   rë   Úsection_datar^  r`  re  s        @r2   rZ  z1ConfigOptionsHandler.parse_section_packages__findµ  sx   ø€ ð ×2Ò2°?ÀDÔDTÑUÔUˆà4Ð4Ð4ˆ
ØVÐVÐVÐV¨×(:Ò(:Ñ(<Ô(<ÐVÑVÔVˆà—’ Ñ(Ô(ˆØÐØ#(¨¤8ˆK˜Ñ àÐr4   c                óF   — |                       || j        ¦  «        }|| d<   dS )z`Parses `entry_points` configuration file section.

        :param dict section_options:
        rL  N)ró   r¾   ©r�   rë   ro   s      r2   Úparse_section_entry_pointsz/ConfigOptionsHandler.parse_section_entry_pointsÇ  s,   € ð
 ×,Ò,¨_¸dÔ>NÑOÔOˆØ%ˆˆ^ÑÐÐr4   c                ó`   — |                       || j        ¦  «        }t          j        |¦  «        S rŒ   )ró   r¾   r   Úcanonic_package_data)r�   rë   Úpackage_datas      r2   Ú_parse_package_dataz(ConfigOptionsHandler._parse_package_dataÏ  s+   € Ø×2Ò2°?ÀDÔDTÑUÔUˆÝÔ*¨<Ñ8Ô8Ð8r4   c                ó6   — |                       |¦  «        | d<   dS )z`Parses `package_data` configuration file section.

        :param dict section_options:
        rm  N©rn  ©r�   rë   s     r2   Úparse_section_package_dataz/ConfigOptionsHandler.parse_section_package_dataÓ  s"   € ð
  $×7Ò7¸ÑHÔHˆˆ^ÑÐÐr4   c                ó6   — |                       |¦  «        | d<   dS )zhParses `exclude_package_data` configuration file section.

        :param dict section_options:
        Úexclude_package_dataNrp  rq  s     r2   Ú"parse_section_exclude_package_dataz7ConfigOptionsHandler.parse_section_exclude_package_dataÚ  s#   € ð
 (,×'?Ò'?ÀÑ'PÔ'PˆÐ#Ñ$Ð$Ð$r4   c                óh   ‡ — ‰                       |ˆ fd„¦  «        }t          j        |¦  «        ‰ d<   dS )zbParses `extras_require` configuration file section.

        :param dict section_options:
        c                ó8   •— ‰                      d| › d�|¦  «        S )Nzextras_require[rú   )rA  )rd  rñ   r�   s     €r2   r¥   zCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>è  s#   ø€ ˜×6Ò6Ð7MÈÐ7MÐ7MÐ7MÈqÑQÔQ€ r4   Úextras_requireN)rî   r   r,  ri  s   `  r2   Úparse_section_extras_requirez1ConfigOptionsHandler.parse_section_extras_requireá  sF   ø€ ð
 ×5Ò5ØØQÐQÐQÐQñ
ô 
ˆõ
 ")¤¨fÑ!5Ô!5ˆÐÑÐÐr4   c                óv   — |                       || j        ¦  «        }t          j        || j        ¦  «        | d<   dS )z^Parses `data_files` configuration file section.

        :param dict section_options:
        Ú
data_filesN)ró   r¾   r   Úcanonic_data_filesrÕ   ri  s      r2   Úparse_section_data_filesz-ConfigOptionsHandler.parse_section_data_filesî  s;   € ð
 ×,Ò,¨_¸dÔ>NÑOÔOˆÝ#Ô6°v¸t¼}ÑMÔMˆˆ\ÑÐÐr4   )
rL   r   rk   r"   r'   r&   rj   r‰   r(   rŠ   )rm   rG   r^   rG   r	  )r    r
  r  rZ   r‘   r  r;  r=  rA  r  r¡   rP  rQ  rZ  rj  rn  rr  ru  ry  r}  r5  r6  s   @r2   rb   rb   [  sR  ø€ € € € € Ø€Nð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð ð5ð 5ñ „[ð5ð?ð ?ð ?ðQð Qð Qð Qð ð
ð 
ñ „Xð
ð<Tð Tð Tð3ð 3ð 3ð2ð ð ð$&ð &ð &ð &ð9ð 9ð 9ðIð Ið Ið IðQð Qð Qð Qð
6ð 
6ð 
6ð 
6ðNð Nð Nð Nð Nð Nð Nð Nr4   rb   c                  ó0   — e Zd ZdZdZdZed„ ¦   «         ZdS )r~   zAmbiguous requirement marker.zá
    One of the parsed requirements in `{field}` looks like a valid environment marker:

        {req!r}

    Please make sure that the configuration file is correct.
    You can use dangling lines to avoid this problem.
    z'userguide/declarative_config.html#opt-2c                ó\   — d| j         › �}|                      | j        | j        ||¬¦  «        S )Nz%https://setuptools.pypa.io/en/latest/)Úsee_urlÚformat_args)Ú	_SEE_DOCSÚ_formatÚ_SUMMARYÚ_DETAILS)r˜   r  Údocss      r2   r�   z_AmbiguousMarker.message  s0   € àF°s´}ÐFÐFˆØ�{Š{˜3œ<¨¬¸tÐQSˆ{ÑTÔTÐTr4   N)r    r
  r  r„  r…  r‚  r  r�   r8   r4   r2   r~   r~   ÷  sG   € € € € € Ø.€Hð€Hð :€Ið ðUð Uñ „[ðUð Uð Ur4   r~   c                  ó   — e Zd ZdZdS )r  z!userguide/declarative_config.htmlN)r    r
  r  r‚  r8   r4   r2   r  r    s   € € € € € Ø3€I€I€Ir4   r  )FF)r$   r   r%   r&   r'   r&   r(   r)   )r/   r   r$   r   r(   r   )r8   F)
r/   r   r$   r   r9   r:   r'   r&   r(   r;   )rL   rM   rN   rG   )r1   rW   r(   r)   )F)r_   r   rI   r"   r'   r&   r(   r;   )rm   rG   rn   rG   ro   rF   )Ar  Ú
__future__r   rõ   rQ   r>   Úcollectionsr   Úcollections.abcr   r   r   r   Útypingr	   r
   r   r   r   r   r   Úpackaging.markersr   r{   Úpackaging.requirementsr   r   Úpackaging.versionr   r   rß   r   Ú_pathr   Úerrorsr   r   Úwarningsr   r   Útyping_extensionsr   r+   r   Údistutils.distr    r)   rG   Útupler!   r  r"   r#   r3   r7   r-   rV   r.   rH   r…   r‡   re   rb   r~   r  r8   r4   r2   ú<module>r•     sÑ  ðð	ð 	ð 	ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ Qà ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð àð 4Ø+Ð+Ð+Ð+Ð+Ð+à,Ð,Ð,Ð,Ð,Ð,à3Ð3Ð3Ð3Ð3Ð3à"& s¨E°#°s°(¬OÐ';Ô"<Ð Ð <Ð <Ð <Ñ <ðð
  $ CÐ)=Ð$=Ô>Ð Ð >Ð >Ð >Ñ >Ø Ø	ˆ�˜>Ð+AÑ	BÔ	B€ð PUð+ð +ð +ð +ð +ð4ð ð ð ð &(Ø!&ð	ð ð ð ð ð>	ð 	ð 	ð 	ðð ð ð ð2 "'ð+ð +ð +ð +ð +ð\2ð 2ð 2ð 2ð@að að að að a�G˜F”Oñ aô að aðH	PXð PXð PXð PXð PX˜MÐ*@ÔAñ PXô PXð PXðfYNð YNð YNð YNð YN˜=¨Ô8ñ YNô YNð YNðxUð Uð Uð Uð UÐ3ñ Uô Uð Uð(4ð 4ð 4ð 4ð 4Ð4ñ 4ô 4ð 4ð 4ð 4r4   