§
    Á³gæc  ã                   ó´  — d Z ddlZddlZddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZmZmZmZmZmZmZmZmZmZmZ ddlmZ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$ e
rddl%m&Z& ddl'm(Z( ee)ej*        f         Z+ededef         f         Z,	 ede,f         Z- eded         ¬¦  «        Z.	 	 d4de+de/fd„Z0ddde+ddfd„Z1	 	 d5ddde+dee+         de2ded         f
d„Z3d e.d!e)fd"„Z4d#ed         de/fd$„Z5	 d6d%dd&e-ded'         fd(„Z6d)e)d*e)d+e7fd,„Z8 G d-„ d.ee.         ¦  «        Z9 G d/„ d0e9d1         ¦  «        Z: G d2„ d3e9d         ¦  «        Z;dS )7ze
Load setuptools configuration from ``setup.cfg`` files.

**API will be made private in the future**
é    N)Údefaultdict)Úpartial©Úwraps)ÚTYPE_CHECKINGÚCallableÚAnyÚDictÚGenericÚIterableÚListÚOptionalÚSetÚTupleÚTypeVarÚUnion)ÚDistutilsOptionErrorÚDistutilsFileError)ÚRequirementÚInvalidRequirement)ÚVersionÚInvalidVersion)ÚSpecifierSet)ÚSetuptoolsDeprecationWarningé   )Úexpand©ÚDistribution)ÚDistributionMetadataÚstrÚTarget)r   r   )ÚboundFÚfilepathÚreturnc                 ó”   — 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#   Úfind_othersÚignore_option_errorsr   ÚdistÚ	filenamesÚhandlerss          úX/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/setuptools/config/setupcfg.pyÚread_configurationr0   (   s^   € ð( -Ð,Ð,Ð,Ð,Ð,àˆ<‰>Œ>€DØ,7Ð?�×&Ò&Ñ(Ô(Ð(¸R€IÝ�d˜H iÐ1EÑFÔF€HÝ  Ñ*Ô*Ð*ó    r,   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     r/   Úapply_configurationr4   D   s+   € õ ˆ4�ÑÔÐØ×ÒÑÔÐØ€Kr1   © Úother_filesr+   )ÚConfigHandler.c                 ó(  — ddl m} t          j                             |¦  «        }t          j                             |¦  «        st          d|z  ¦  «        ‚t          j        ¦   «         }t          j        t          j         	                    |¦  «        ¦  «         g |¢|‘}	 | 
                    | |¬¦  «         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 %s does not exist.)r-   )r+   )r&   r9   ÚosÚpathÚabspathÚisfiler   ÚgetcwdÚchdirÚdirnameÚparse_config_filesÚparse_configurationÚcommand_optionsÚ_finalize_license_files)r,   r#   r6   r+   r9   Úcurrent_directoryr-   r.   s           r/   r(   r(   M   s  € ð .Ð-Ð-Ð-Ð-Ð-åŒw�Š˜xÑ(Ô(€HåŒ7�>Š>˜(Ñ#Ô#ð UÝ Ð!HÈ8Ñ!SÑTÔTÐTåœ	™œÐÝ„H�RŒW�_Š_˜XÑ&Ô&Ñ'Ô'Ð'Ø(�+Ð(˜xÐ(€Ið$Ø×(Ò(¨¸Ð(ÑCÔCÐCÝ&Ø�$Ô&Ð=Qð
ñ 
ô 
ˆð 	×$Ò$Ñ&Ô&Ð&å
ŒÐ"Ñ#Ô#Ð#Ð#ø�ŒÐ"Ñ#Ô#Ð#Ð#øøøà€Os   Â"AC9 Ã9DÚ
target_objÚkeyc                 ó    —  dj         di t          ¦   «         ¤Ž}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.
    z	get_{key}r5   )ÚformatÚlocalsÚ	functoolsr   Úgetattr)rF   rG   Úgetter_nameÚby_attributeÚgetters        r/   Ú_get_optionrP   j   sP   € ð %�+Ô$Ð0Ð0¥v¡x¤xÐ0Ð0€KÝÔ$¥W¨j¸#Ñ>Ô>€LÝ�Z ¨lÑ;Ô;€FØˆ6‰8Œ8€Or1   r.   c                 ó–   — t          t          ¦  «        }| D ]1}|j        D ]'}t          |j        |¦  «        }|||j                 |<   Œ(Œ2|S )z»Returns configuration data gathered by given handlers as a dict.

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

    :rtype: dict
    )r   ÚdictÚset_optionsrP   rF   Úsection_prefix)r.   Úconfig_dictÚhandlerÚoptionÚvalues        r/   r)   r)   v   sk   € õ $¥DÑ)Ô)€Kàð @ð @ˆØÔ)ð 	@ð 	@ˆFÝ Ô 2°FÑ;Ô;ˆEØ:?ˆK˜Ô.Ô/°Ñ7Ð7ð	@ð Ðr1   ÚdistributionrC   )ÚConfigMetadataHandlerÚConfigOptionsHandlerc           	      óŒ  — 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   ÚEnsurePackagesDiscoveredr[   ÚparseÚpackage_dirrZ   ÚmetadataÚsrc_rootÚ_referenced_filesÚupdate)rY   rC   r+   Úensure_discoveredÚoptionsÚmetas         r/   rB   rB   ˆ   s  € õ$ 
Ô	(¨Ñ	6Ô	6ð 
Ð:KÝ&ØØØ Øñ	
ô 
ˆð 	�Š‰ŒˆØÔ'ð 	;Ø'.Ô':ˆLÔ$å$ØÔ!ØØ ØØÔ$ØÔ!ñ
ô 
ˆð 	�
Š
‰ŒˆØÔ&×-Ò-ØÔ% tÔ'=ñ	
ô 	
ð 	
ð+
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð2 �ˆ=Ðs   •BB7Â7B;Â>B;ÚlabelÚ
orig_valueÚparsedc                 óD  — d|v st          |¦  «        dk    rdS t          j        t          ¦  «        5  d                     |¦  «        }t          |¦  «        }|j        �)d| › d|d         › d�}t          j        |t          ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	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.
    ú
é   Nú;z#One of the parsed requirements in `z*` looks like a valid environment marker: 'r   z}'
Make sure that the config is correct and check https://setuptools.pypa.io/en/latest/userguide/declarative_config.html#opt-2)
ÚlenÚ
contextlibÚsuppressr   Újoinr   ÚmarkerÚwarningsÚwarnÚUserWarning)rg   rh   ri   Úoriginal_requirements_strÚreqÚmsgs         r/   Ú%_warn_accidental_env_marker_misconfigry   ¶   s  € ð" ˆzÐÐ�S ™[œ[¨AÒ-Ð-Øˆå	Ô	Õ/Ñ	0Ô	0ð 
,ð 
,Ø$'§H¢H¨VÑ$4Ô$4Ð!ÝÐ3Ñ4Ô4ˆØŒ:Ð!ð_°eð _ð _Ø;AÀ!¼9ð_ð _ð _ð õ ŒM˜#�{Ñ+Ô+Ð+ð
,ð 
,ð 
,ñ 
,ô 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,øøøð 
,ð 
,ð 
,ð 
,ð 
,ð 
,s   ³ABÂBÂBc                   óB  — e Zd ZU dZeed<   	 i Zeeef         ed<   	 dede	de
j        fd„Zed„ ¦   «         Zd	„ Zedd„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zdefd„Zdefd„Zed„ ¦   «         Zed„ ¦   «         Zedd„¦   «         Zd„ Zd„ Zd„ ZdS )r7   z1Handles metadata supplied in configuration files.rT   ÚaliasesrF   re   rd   c                 ó@  — i }| j         }|                     ¦   «         D ]I\  }}|                     |¦  «        sŒ|                     |d¦  «                             d¦  «        }|||<   ŒJ|| _        || _        || _        g | _        || _	        t          ¦   «         | _        d S )NÚ ú.)rT   ÚitemsÚ
startswithÚreplaceÚstripr+   rF   ÚsectionsrS   rd   Úsetrb   )	ÚselfrF   re   r+   rd   rƒ   rT   Úsection_nameÚsection_optionss	            r/   Ú__init__zConfigHandler.__init__ç   s²   € ð ')ˆàÔ,ˆØ-4¯]ª]©_¬_ð 	5ð 	5Ñ)ˆL˜/Ø×*Ò*¨>Ñ:Ô:ð Øà'×/Ò/°ÀÑCÔC×IÒIÈ#ÑNÔNˆLØ%4ˆH�\Ñ"Ð"à$8ˆÔ!Ø$ˆŒØ ˆŒØ&(ˆÔØ!2ˆÔÝ+.©5¬5ˆÔð	ð 	r1   c                 ó:   — t          d| j        j        z  ¦  «        ‚)ú.Metadata item name to parser function mapping.z!%s must provide .parsers property)ÚNotImplementedErrorÚ	__class__Ú__name__)r…   s    r/   ÚparserszConfigHandler.parsers  s#   € õ "Ø/°$´.Ô2IÑIñ
ô 
ð 	
r1   c                 óâ  — t          ¦   «         }| j        }| j                             ||¦  «        }t	          |||¦  «        }||u rt          |¦  «        ‚|rd S d}| j                             |¦  «        }|r'	  ||¦  «        }n# t          $ r d}| j        s‚ Y nw xY w|rd S t	          |d|z  d ¦  «        }|€t          |||¦  «         n ||¦  «         | j
                             |¦  «         d S )NFTzset_%s)ÚtuplerF   r{   ÚgetrL   ÚKeyErrorrŽ   Ú	Exceptionr+   ÚsetattrrS   Úappend)	r…   Úoption_namerX   ÚunknownrF   Úcurrent_valueÚskip_optionÚparserÚsetters	            r/   Ú__setitem__zConfigHandler.__setitem__	  s9  € Ý‘'”'ˆØ”_ˆ
ð ”l×&Ò& {°KÑ@Ô@ˆå 
¨K¸ÑAÔAˆà˜GÐ#Ð#Ý˜;Ñ'Ô'Ð'àð 	àˆFàˆØ”×!Ò! +Ñ.Ô.ˆØð 	ðØ˜˜u™œ��øåð ð ð Ø"�ØÔ0ð Øðð ðøøøð
 ð 	ØˆFå˜ X°Ñ%;¸TÑBÔBˆØˆ>Ý�J ¨UÑ3Ô3Ð3Ð3àˆF�5‰MŒMˆMàÔ×Ò Ñ,Ô,Ð,Ð,Ð,s   Á8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
        rk   c                 ó^   — g | ]*}|                      ¦   «         ¯|                      ¦   «         ‘Œ+S r5   ©r‚   )Ú.0Úchunks     r/   ú
<listcomp>z-ConfigHandler._parse_list.<locals>.<listcomp>A  s-   € ÐBÐBÐB %°E·K²K±M´MÐB�—’‘”ÐBÐBÐBr1   )Ú
isinstanceÚlistÚ
splitlinesÚsplit)ÚclsrX   Ú	separators      r/   Ú_parse_listzConfigHandler._parse_list/  s\   € õ �e�TÑ"Ô"ð 	ØˆLà�5ˆ=ˆ=Ø×$Ò$Ñ&Ô&ˆEˆEà—K’K 	Ñ*Ô*ˆEàBÐB¨5ÐBÑBÔBÐBr1   c                 óò   — d}i }|                       |¦  «        D ]\}|                     |¦  «        \  }}}||k    rt          d|z  ¦  «        ‚|                     ¦   «         ||                     ¦   «         <   Œ]|S )zPRepresents value as a dict.

        :param value:
        :rtype: dict
        ú=z(Unable to parse option value to dict: %s)rª   Ú	partitionr   r‚   )r¨   rX   r©   ÚresultÚlinerG   ÚsepÚvals           r/   Ú_parse_dictzConfigHandler._parse_dictC  s‰   € ð ˆ	ØˆØ—O’O EÑ*Ô*ð 	.ð 	.ˆDØ ŸNšN¨9Ñ5Ô5‰MˆC��cØ�iÒÐÝ*Ø>ÀÑFñô ð ð #&§)¢)¡+¤+ˆF�3—9’9‘;”;ÑÐàˆr1   c                 ó2   — |                      ¦   «         }|dv S )zQRepresents value as boolean.

        :param value:
        :rtype: bool
        )Ú1ÚtrueÚyes)Úlower©r¨   rX   s     r/   Ú_parse_boolzConfigHandler._parse_boolV  s   € ð —’‘”ˆØÐ,Ð,Ð,r1   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                 óz   •— d}|                       |¦  «        r"t          d                     ‰¦  «        ¦  «        ‚| S )Núfile:zCOnly strings are accepted for the {0} field, files are not accepted)r€   Ú
ValueErrorrI   )rX   Úexclude_directiverG   s     €r/   rš   z3ConfigHandler._exclude_files_parser.<locals>.parserl  sI   ø€ Ø 'ÐØ×ÒÐ 1Ñ2Ô2ð Ý ð-ß-3ªV°C©[¬[ñô ð ð ˆLr1   r5   )r¨   rG   rš   s    ` r/   Ú_exclude_files_parserz#ConfigHandler._exclude_files_parser`  s#   ø€ ð	ð 	ð 	ð 	ð 	ð ˆr1   Úroot_dirc                 ó,  — d}t          |t          ¦  «        s|S |                     |¦  «        s|S |t          |¦  «        d…         }d„ |                     d¦  «        D ¦   «         }| 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 r5   r    )r¡   r;   s     r/   r£   z-ConfigHandler._parse_file.<locals>.<listcomp>�  s    € Ð>Ð>Ð> d�T—Z’Z‘\”\Ð>Ð>Ð>r1   r�   )	r¤   r    r€   rn   r§   rb   rc   r   Ú
read_files)r…   rX   rÀ   Úinclude_directiveÚspecÚ	filepathss         r/   Ú_parse_filezConfigHandler._parse_filew  s�   € ð $Ðå˜%¥Ñ%Ô%ð 	ØˆLà×ÒÐ 1Ñ2Ô2ð 	ØˆLà•SÐ*Ñ+Ô+Ð-Ð-Ô.ˆØ>Ð>¨d¯jªj¸©o¬oÐ>Ñ>Ô>ˆ	ØÔ×%Ò% iÑ0Ô0Ð0ÝÔ  ¨HÑ5Ô5Ð5r1   c                 óÊ   — d}|                      |¦  «        s|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:r}   )r€   r�   rc   rd   r_   r   Ú	read_attr)r…   rX   r_   rÀ   Úattr_directiveÚ	attr_descs         r/   Ú_parse_attrzConfigHandler._parse_attr‘  sh   € ð !ˆØ×Ò Ñ/Ô/ð 	ØˆLà—M’M .°"Ñ5Ô5ˆ	ð 	×Ò˜4Ô1Ô=Ñ>Ô>Ð>ÝÔ 	¨;¸ÑAÔAÐAr1   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 ©Nr5   )rX   ri   ÚmethodÚparse_methodss      €r/   r^   z1ConfigHandler._get_parser_compound.<locals>.parse¯  s+   ø€ ØˆFà'ð (ð (�Ø˜ ™œ��àˆMr1   r5   )r¨   rÑ   r^   s    ` r/   Ú_get_parser_compoundz"ConfigHandler._get_parser_compound¥  s#   ø€ ð	ð 	ð 	ð 	ð 	ð ˆr1   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¨   r‡   Úvalues_parserrX   rG   Ú_r±   s          r/   Ú_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Øˆr1   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Ï   r5   )rÕ   ÚvrÔ   s     €r/   ú<lambda>z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ò  s   ø€ ˜}˜}¨QÑ/Ô/€ r1   c                 ó   — |S rÏ   r5   )rÕ   rÙ   s     r/   rÚ   z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ò  s   € ÐUV€ r1   ©rÖ   )r¨   r‡   rÔ   rš   s     ` r/   Ú_parse_section_to_dictz$ConfigHandler._parse_section_to_dictÈ  s7   ø€ ð 5BÐWÐ/Ð/Ð/Ð/Ð/ÈÈˆØ×2Ò2°?ÀFÑKÔKÐKr1   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   ro   rp   r’   )r…   r‡   ÚnamerÕ   rX   s        r/   Úparse_sectionzConfigHandler.parse_sectionÕ  s¢   € ð
 #2×"7Ò"7Ñ"9Ô"9ð 	#ð 	#ÑˆT‘:�A�uÝÔ$¥XÑ.Ô.ð #ð #à"��T‘
ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #øð	#ð 	#s   ¶AÁA	ÁA	c                 óö   — | j                              ¦   «         D ]^\  }}d}|rd|z  }t          | d|z                       dd¦  «        d¦  «        }|€t	          d| j        ›d|›d�¦  «        ‚ ||¦  «         Œ_dS )	zTParses configuration file items from one
        or more related sections.

        r}   z_%szparse_section%sr~   Ú__Nz*Unsupported distribution option section: [ú])rƒ   r   rL   r�   r   rT   )r…   r†   r‡   Úmethod_postfixÚsection_parser_methods        r/   r^   zConfigHandler.parseß  s¿   € ð
 .2¬]×-@Ò-@Ñ-BÔ-Bð 	3ð 	3Ñ)ˆL˜/àˆNØð 6Ø!&¨Ñ!5�å8?Øà" ^Ñ3×<Ò<¸SÀ$ÑGÔGØñ	9ô 9Ð!ð %Ð,Ý*Ð*àÔ*Ð*Ð*¨L¨L¨Lð:ñô ð ð
 "Ð! /Ñ2Ô2Ð2Ð2ð'	3ð 	3r1   c                 óD   ‡‡‡— t          ‰¦  «        ˆˆˆfd„¦   «         }|S )zèthis function will wrap around parameters that are deprecated

        :param msg: deprecation message
        :param warning_class: class of warning exception to be raised
        :param func: function to be wrapped around
        c                  ó>   •— t          j        ‰‰¦  «          ‰| i |¤ŽS rÏ   )rs   rt   )ÚargsÚkwargsÚfuncrx   Úwarning_classs     €€€r/   Úconfig_handlerz@ConfigHandler._deprecated_config_handler.<locals>.config_handler  s*   ø€ åŒM˜#˜}Ñ-Ô-Ð-Ø�4˜Ð( Ð(Ð(Ð(r1   r   )r…   rê   rx   rë   rì   s    ``` r/   Ú_deprecated_config_handlerz(ConfigHandler._deprecated_config_handlerù  sB   øøø€ õ 
ˆt‰Œð	)ð 	)ð 	)ð 	)ð 	)ð 	)ñ 
Œð	)ð Ðr1   )r�   rÏ   )r�   Ú
__module__Ú__qualname__Ú__doc__r    Ú__annotations__r{   r
   r!   ÚAllCommandOptionsr   r]   rˆ   ÚpropertyrŽ   rœ   Úclassmethodrª   r²   r¹   r¿   Ú_PathrÇ   rÌ   rÒ   rÖ   rÝ   rà   r^   rí   r5   r1   r/   r7   r7   ×   sá  € € € € € € Ø;Ð;àÐÐÑðð
 !€GˆT�#�s�(Œ^Ð Ð Ñ ððàðð #ðð
 "Ô:ðð ð ð ð6 ð
ð 
ñ „Xð
ð$-ð $-ð $-ðL ðCð Cð Cñ „[ðCð& ðð ñ „[ðð$ ð-ð -ñ „[ð-ð ðð ñ „[ðð,6¨5ð 6ð 6ð 6ð 6ð4B¸ð Bð Bð Bð Bð( ðð ñ „[ðð& ðð ñ „[ðð ð
Lð 
Lð 
Lñ „[ð
Lð#ð #ð #ð3ð 3ð 3ð4ð ð ð ð r1   r7   c                   ó’   ‡ — e Zd ZdZdddddœZdZ	 dej        fd	d
dede	de
j        dee         defˆ fd„Zed„ ¦   «         Zd„ Zˆ xZS )rZ   r`   ÚurlÚdescriptionÚclassifiersÚ	platforms)Ú	home_pageÚsummaryÚ
classifierÚplatformFNrF   r   re   r+   rd   r_   rÀ   c                 ól   •— t          ¦   «                              ||||¦  «         || _        || _        d S rÏ   )Úsuperrˆ   r_   rÀ   )r…   rF   re   r+   rd   r_   rÀ   rŒ   s          €r/   rˆ   zConfigMetadataHandler.__init__  s8   ø€ õ 	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ&ˆÔØ ˆŒˆˆr1   c                 ó@  — | j         }t          | j        | j        ¬¦  «        }| j        }| j        }||||                      |dt          ¦  «        ||                      ||¦  «         |d¦  «        |                       |d¦  «        dt          ¦  «        |||| j	        |dœS )rŠ   ©rÀ   z[The requires parameter is deprecated, please use install_requires for runtime dependencies.ÚlicenseÚlicense_filezDThe license_file parameter is deprecated, use license_files instead.)rú   ÚkeywordsÚprovidesÚrequiresÚ	obsoletesrù   r  r  Úlicense_filesrø   Úlong_descriptionÚversionÚproject_urls)
rª   r   rÇ   rÀ   r²   r¿   rí   r   rÒ   Ú_parse_version)r…   Ú
parse_listÚ
parse_fileÚ
parse_dictÚexclude_files_parsers        r/   rŽ   zConfigMetadataHandler.parsers'  sÏ   € ð Ô%ˆ
Ý˜TÔ-¸¼ÐFÑFÔFˆ
ØÔ%ˆ
Ø#Ô9Ðð $Ø"Ø"Ø×7Ò7Øð=å,ñ	ô ð $Ø×4Ò4°ZÀÑLÔLØ+Ð+¨IÑ6Ô6Ø ×;Ò;Ø$Ð$ ^Ñ4Ô4ð-å,ñ	ô ð (Ø%Ø *ØÔ*Ø&ð/
ð 
ð 	
r1   c           	      ód  — |                       || j        ¦  «        }||k    r]|                     ¦   «         }	 t          |¦  «         n6# t          $ r) d}t           |j        di t          ¦   «         ¤Ž¦  «        ‚w xY w|S t          j	        |  
                    || j        | j        ¦  «        ¦  «        S )zSParses `version` option value.

        :param value:
        :rtype: str

        zCVersion loaded from {value} does not comply with PEP 440: {version}r5   )rÇ   rÀ   r‚   r   r   r   rI   rJ   r   r  rÌ   r_   )r…   rX   r  Útmpls       r/   r  z$ConfigMetadataHandler._parse_versionI  sÇ   € ð ×"Ò" 5¨$¬-Ñ8Ô8ˆà�eÒÐØ—m’m‘o”oˆGðDÝ˜Ñ Ô Ð Ð øÝ!ð Dð Dð Dð5ð õ +¨;¨4¬;Ð+BÐ+B½¹¼Ð+BÐ+BÑCÔCÐCðDøøøð ˆNåŒ~˜d×.Ò.¨u°dÔ6FÈÌÑVÔVÑWÔWÐWs   ·A Á3A:)r�   rî   rï   rT   r{   Ústrict_moder:   Úcurdirrò   Úboolr   r]   r   rR   rõ   rˆ   ró   rŽ   r  Ú__classcell__©rŒ   s   @r/   rZ   rZ   	  sê   ø€ € € € € à€Nð Ø Ø#Øð	ð €Gð €Kðð '+Øœ)ð!ð !à*ð!ð #ð!ð #ð	!ð
 "Ô:ð!ð ˜d”^ð!ð ð!ð !ð !ð !ð !ð !ð ð
ð 
ñ „Xð
ðBXð Xð Xð Xð Xð Xð Xr1   rZ   r   c                   ó¶   ‡ — e Zd ZdZdddededej        fˆ fd„Ze	d„ ¦   «         Z
d„ Zd	ed
efd„Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )r[   re   rF   r   r+   rd   c                 óv   •— t          ¦   «                              ||||¦  «         |j        | _        i | _        d S rÏ   )r   rˆ   ra   rÀ   r_   )r…   rF   re   r+   rd   rŒ   s        €r/   rˆ   zConfigOptionsHandler.__init__h  s=   ø€ õ 	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ"Ô+ˆŒØ+-ˆÔÐÐr1   c                 ó0   — |                       |d¬¦  «        S )Nrm   )r©   )rª   r¸   s     r/   Ú_parse_list_semicolonz*ConfigOptionsHandler._parse_list_semicolons  s   € à�Š˜u°ˆÑ4Ô4Ð4r1   c                 ó:   — |                       || j        ¬¦  «        S )Nr  )rÇ   rÀ   )r…   rX   s     r/   Ú_parse_file_in_rootz(ConfigOptionsHandler._parse_file_in_rootw  s   € Ø×Ò °´ÐÑ>Ô>Ð>r1   rg   rX   c                 óŒ   — |                       |                      |¦  «        ¦  «        }t          |||¦  «         d„ |D ¦   «         S )Nc                 ó<   — g | ]}|                      d ¦  «        °|‘ŒS )ú#)r€   )r¡   r¯   s     r/   r£   zAConfigOptionsHandler._parse_requirements_list.<locals>.<listcomp>€  s)   € ÐDÐDÐD˜¨t¯ª¸sÑ/CÔ/CÐD�ÐDÐDÐDr1   )r  r  ry   )r…   rg   rX   ri   s       r/   Ú_parse_requirements_listz-ConfigOptionsHandler._parse_requirements_listz  sL   € à×+Ò+¨D×,DÒ,DÀUÑ,KÔ,KÑLÔLˆÝ-¨e°U¸FÑCÔCÐCð EÐD ÐDÑDÔDÐDr1   c                 óê   — | j         }| j        }| j        }| j        }|||||||                      |dt
          ¦  «        t          | j        d¦  «        | j        | j        | j	        | j
        |t          |dœS )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Útests_requireÚpackagesÚentry_pointsÚ
py_modulesÚpython_requiresÚcmdclass)rª   r¹   r²   Ú_parse_cmdclassrí   r   r   r"  r  Ú_parse_packagesr  r   )r…   r  Ú
parse_boolr  Úparse_cmdclasss        r/   rŽ   zConfigOptionsHandler.parsers‚  s¡   € ð Ô%ˆ
ØÔ%ˆ
ØÔ%ˆ
ØÔ-ˆð #Ø$.Ø%Ø!Ø)Ø *Ø"&×"AÒ"AØðHå,ñ	#ô #õ !(ØÔ-Ð/Añ!ô !ð #Ô8Ø!Ô7ØÔ,Ø Ô4Ø$Ý+Ø&ð-
ð 
ð 	
r1   c                 óv   — | j         j        }t          j        |                      |¦  «        || j        ¦  «        S rÏ   )rd   r_   r   r1  r²   rÀ   )r…   rX   r_   s      r/   r2  z$ConfigOptionsHandler._parse_cmdclass£  s1   € ØÔ,Ô8ˆÝŒ˜t×/Ò/°Ñ6Ô6¸ÀTÄ]ÑSÔSÐSr1   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_dirr5   )
r‚   rª   Úparse_section_packages__findrƒ   r‘   rc   rÀ   r_   r   Úfind_packages)r…   rX   Úfind_directivesÚtrimmed_valueÚfind_kwargss        r/   r3  z$ConfigOptionsHandler._parse_packages§  s·   € ð #Ð$5Ð6ˆØŸš™œˆà Ð/Ð/Ø×#Ò# EÑ*Ô*Ð*ð ×7Ò7ØŒM×Ò˜o¨rÑ2Ô2ñ
ô 
ˆð 	×ÒØ%¨¸Ô);Ò;Ø”]Ø!Ô-ð 	ñ 	
ô 	
ð 	
õ Ô#Ð2Ð2 kÐ2Ð2Ð2r1   c                 óä   ‡— |                       || j        ¦  «        }g d¢Št          ˆ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                 ó*   •— g | ]\  }}|‰v ¯	|¯||f‘ŒS r5   r5   )r¡   ÚkrÙ   Ú
valid_keyss      €r/   r£   zEConfigOptionsHandler.parse_section_packages__find.<locals>.<listcomp>Ì  s*   ø€ ÐNÐNÐN™˜˜1¸¸Z¸¸ÈA¸ˆa�ˆV¸¸¸r1   r@  Nr   )rÝ   rª   rR   r   r‘   )r…   r‡   Úsection_datar>  r@  rE  s        @r/   r:  z1ConfigOptionsHandler.parse_section_packages__findÀ  s‡   ø€ ð ×2Ò2°?ÀDÔDTÑUÔUˆà4Ð4Ð4ˆ
åØNÐNÐNÐN × 2Ò 2Ñ 4Ô 4ÐNÑNÔNñ
ô 
ˆð —’ Ñ(Ô(ˆØÐØ#(¨¤8ˆK˜Ñ àÐr1   c                 óF   — |                       || j        ¦  «        }|| d<   dS )z`Parses `entry_points` configuration file section.

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

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

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

        :param dict section_options:
        c                 ó8   •— ‰                      d| › d�|¦  «        S )Nzextras_require[rã   )r"  )rD  rÙ   r…   s     €r/   rÚ   zCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>ö  s#   ø€ ˜×6Ò6Ð7MÈÐ7MÐ7MÐ7MÈqÑQÔQ€ r1   Úextras_requireNrÜ   rH  s   `  r/   Úparse_section_extras_requirez1ConfigOptionsHandler.parse_section_extras_requireï  s<   ø€ ð
 ×5Ò5ØØQÐQÐQÐQñ
ô 
ˆð
 "(ˆÐÑÐÐr1   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À   rH  s      r/   Úparse_section_data_filesz-ConfigOptionsHandler.parse_section_data_filesû  s;   € ð
 ×,Ò,¨_¸dÔ>NÑOÔOˆÝ#Ô6°v¸t¼}ÑMÔMˆˆ\ÑÐÐr1   )r�   rî   rï   rT   rò   r  r   r]   rˆ   rô   r  r  r    r"  ró   rŽ   r2  r3  r:  rI  rM  rQ  rT  rX  r\  r  r  s   @r/   r[   r[   d  sp  ø€ € € € € à€Nð	.à"ð	.ð #ð	.ð #ð		.ð
 "Ô:ð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð ð5ð 5ñ „[ð5ð?ð ?ð ?ðE¨cð E¸#ð Eð Eð Eð Eð ð
ð 
ñ „Xð
ð@Tð Tð Tð3ð 3ð 3ð2ð ð ð*&ð &ð &ð9ð 9ð 9ðIð Ið IðQð Qð Qð
(ð 
(ð 
(ðNð Nð Nð Nð Nð Nð Nr1   r[   )FF)r5   F)F)<rð   r:   ro   rK   rs   Úcollectionsr   r   r   Útypingr   r   r	   r
   r   r   r   r   r   r   r   r   Údistutils.errorsr   r   Ú(setuptools.extern.packaging.requirementsr   r   Ú#setuptools.extern.packaging.versionr   r   Ú&setuptools.extern.packaging.specifiersr   Úsetuptools._deprecation_warningr   r}   r   r&   r   Údistutils.distr   r    ÚPathLikerõ   ÚSingleCommandOptionsrò   r!   rR   r0   r4   r  r(   rP   r)   rB   r¥   ry   r7   rZ   r[   r5   r1   r/   ú<module>rg     s1  ððð ð
 
€	€	€	à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð:ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð FÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø HÐ HÐ HÐ HÐ HÐ Hà Ð Ð Ð Ð Ð àð 4Ø,Ð,Ð,Ð,Ð,Ð,Ø3Ð3Ð3Ð3Ð3Ð3àˆc�2”;ÐÔ€Ø˜E 5¨°¨Ô#4Ð4Ô5Ð ðð
 ˜Ð 4Ð4Ô5Ð Ø	ˆ� Ð'MÔ!NÐ	OÑ	OÔ	O€ð
 Øð+ð +Øð+ð 
ð	+ð +ð +ð +ð8˜nð ¸ð À.ð ð ð ð ð $&Ø!&ðð Ø
ðØ$)ðà˜%”ðð ðð ÐÔ ð	ð ð ð ð:	˜Fð 	¨ð 	ð 	ð 	ð 	ð EÐ*>Ô$?ð ÀDð ð ð ð ð* ð+ð +Ø ð+à&ð+ð Ð:Ô;ð	+ð +ð +ð +ð\,°ð ,À#ð ,Ètð ,ð ,ð ,ð ,ðBoð oð oð oð o�G˜F”Oñ oô oð oðd	XXð XXð XXð XXð XX˜MÐ*@ÔAñ XXô XXð XXðv]Nð ]Nð ]Nð ]Nð ]N˜=¨Ô8ñ ]Nô ]Nð ]Nð ]Nð ]Nr1   