§
     hnb  ã                   ó°  — 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 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„Z/ddde*ddfd„Z0	 	 d5ddde*dee*         de1ded         f
d„Z2d e-d!e(fd"„Z3d#ed         de.fd$„Z4	 d6d%dd&e,ded'         fd(„Z5d)e(d*e(d+e6fd,„Z7 G d-„ d.ee-         ¦  «        Z8 G d/„ d0e8d1         ¦  «        Z9 G d2„ d3e8d         ¦  «        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Ú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          úTc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\setuptools/config/setupcfg.pyÚread_configurationr/   (   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_configurationr3   D   s+   € õ ˆ4�ÑÔÐØ×ÒÑÔÐØ€Kr0   © Ú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%   r8   ÚosÚpathÚabspathÚisfiler   ÚgetcwdÚchdirÚdirnameÚparse_config_filesÚparse_configurationÚcommand_optionsÚ_finalize_license_files)r+   r"   r5   r*   r8   Ú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}r4   )ÚformatÚlocalsÚ	functoolsr   Úgetattr)rE   rF   Úgetter_nameÚby_attributeÚgetters        r.   Ú_get_optionrO   j   sP   € ð %�+Ô$Ð0Ð0¥v¡x¤xÐ0Ð0€KÝÔ$¥W¨j¸#Ñ>Ô>€LÝ�Z ¨lÑ;Ô;€FØˆ6‰8Œ8€Or0   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_optionsrO   rE   Úsection_prefix)r-   Úconfig_dictÚhandlerÚoptionÚvalues        r.   r(   r(   v   sk   € õ $¥DÑ)Ô)€Kàð @ð @ˆØÔ)ð 	@ð 	@ˆFÝ Ô 2°FÑ;Ô;ˆEØ:?ˆK˜Ô.Ô/°Ñ7Ð7ð	@ð Ðr0   ÚdistributionrB   )ÚConfigMetadataHandlerÚConfigOptionsHandlerc           	      óB  — t          j        | ¦  «        5 }t          | |||¦  «        }|                     ¦   «          | j        s|j        | _        t          | 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   ÚEnsurePackagesDiscoveredrZ   ÚparseÚpackage_dirrY   ÚmetadataÚsrc_root)rX   rB   r*   Úensure_discoveredÚoptionsÚmetas         r.   rA   rA   ˆ   sí   € õ$ 
Ô	(¨Ñ	6Ô	6ð Ð:KÝ&ØØØ Øñ	
ô 
ˆð 	�Š‰ŒˆØÔ'ð 	;Ø'.Ô':ˆLÔ$å$ØÔ!ØØ ØØÔ$ØÔ!ñ
ô 
ˆð 	�
Š
‰Œˆð)ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð, �ˆ=Ðs   •A1BÂ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)rd   re   rf   Úoriginal_requirements_strÚreqÚmsgs         r.   Ú%_warn_accidental_env_marker_misconfigrv   ³   s  € ð" ˆzÐÐ�S ™[œ[¨AÒ-Ð-Øˆå	Ô	Õ/Ñ	0Ô	0ð 
,ð 
,Ø$'§H¢H¨VÑ$4Ô$4Ð!ÝÐ3Ñ4Ô4ˆØŒ:Ð!ð_°eð _ð _Ø;AÀ!¼9ð_ð _ð _ð õ ŒM˜#�{Ñ+Ô+Ð+ð
,ð 
,ð 
,ñ 
,ô 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,ð 
,øøøð 
,ð 
,ð 
,ð 
,ð 
,ð 
,s   ³ABÂBÂBc                   óR  — 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e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 )r6   z1Handles metadata supplied in configuration files.rS   ÚaliasesrE   rb   ra   c                 ó  — i }| j         }|                     ¦   «         D ]I\  }}|                     |¦  «        sŒ|                     |d¦  «                             d¦  «        }|||<   ŒJ|| _        || _        || _        g | _        || _	        d S )NÚ ú.)
rS   ÚitemsÚ
startswithÚreplaceÚstripr*   rE   ÚsectionsrR   ra   )	ÚselfrE   rb   r*   ra   r€   rS   Ú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ˆÔÐÐr0   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ñ
ô 
ð 	
r0   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)ÚtuplerE   rx   ÚgetrK   ÚKeyErrorrŠ   Ú	Exceptionr*   ÚsetattrrR   Úappend)	r�   Úoption_namerW   ÚunknownrE   Ú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
        rh   c                 ó^   — g | ]*}|                      ¦   «         ¯|                      ¦   «         ‘Œ+S r4   ©r   )Ú.0Úchunks     r.   ú
<listcomp>z-ConfigHandler._parse_list.<locals>.<listcomp>:  s-   € ÐBÐBÐB %°E·K²K±M´MÐB�—’‘”ÐBÐBÐBr0   )Ú
isinstanceÚlistÚ
splitlinesÚsplit)ÚclsrW   Ú	separators      r.   Ú_parse_listzConfigHandler._parse_list(  s\   € õ �e�TÑ"Ô"ð 	ØˆLà�5ˆ=ˆ=Ø×$Ò$Ñ&Ô&ˆEˆEà—K’K 	Ñ*Ô*ˆEàBÐB¨5ÐBÑBÔBÐBr0   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¤   rW   r¥   ÚresultÚlinerF   ÚsepÚvals           r.   Ú_parse_dictzConfigHandler._parse_dict<  s‰   € ð ˆ	ØˆØ—O’O EÑ*Ô*ð 	.ð 	.ˆDØ ŸNšN¨9Ñ5Ô5‰MˆC��cØ�iÒÐÝ*Ø>ÀÑFñô ð ð #&§)¢)¡+¤+ˆF�3—9’9‘;”;ÑÐàˆr0   c                 ó2   — |                      ¦   «         }|dv S )zQRepresents value as boolean.

        :param value:
        :rtype: bool
        )Ú1ÚtrueÚyes)Úlower©r¤   rW   s     r.   Ú_parse_boolzConfigHandler._parse_boolO  s   € ð —’‘”ˆØÐ,Ð,Ð,r0   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}   Ú
ValueErrorrH   )rW   Úexclude_directiverF   s     €r.   r–   z3ConfigHandler._exclude_files_parser.<locals>.parsere  sI   ø€ Ø 'ÐØ×ÒÐ 1Ñ2Ô2ð Ý ð-ß-3ªV°C©[¬[ñô ð ð ˆLr0   r4   )r¤   rF   r–   s    ` r.   Ú_exclude_files_parserz#ConfigHandler._exclude_files_parserY  s#   ø€ ð	ð 	ð 	ð 	ð 	ð ˆr0   Úroot_dirc                 óø   — d}t          |t          ¦  «        s|S |                     |¦  «        s|S |t          |¦  «        d…         }d„ |                     d¦  «        D ¦   «         }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              3   ó>   K  — | ]}|                      ¦   «         V — Œd S ©Nrœ   )r�   r:   s     r.   ú	<genexpr>z,ConfigHandler._parse_file.<locals>.<genexpr>‡  s*   è è € Ð>Ð> d�T—Z’Z‘\”\Ð>Ð>Ð>Ð>Ð>Ð>r0   r™   )r    r   r}   rk   r£   r   Ú
read_files)r¤   rW   r¼   Úinclude_directiveÚspecÚ	filepathss         r.   Ú_parse_filezConfigHandler._parse_filep  s†   € ð $Ðå˜%¥Ñ%Ô%ð 	ØˆLà×ÒÐ 1Ñ2Ô2ð 	ØˆLà•SÐ*Ñ+Ô+Ð-Ð-Ô.ˆØ>Ð>¨d¯jªj¸©o¬oÐ>Ñ>Ô>ˆ	ÝÔ  ¨HÑ5Ô5Ð5r0   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:rz   )r}   r~   Úupdatera   r^   r   Ú	read_attr)r�   rW   r^   r¼   Úattr_directiveÚ	attr_descs         r.   Ú_parse_attrzConfigHandler._parse_attrŠ  sh   € ð !ˆØ×Ò Ñ/Ô/ð 	ØˆLà—M’M .°"Ñ5Ô5ˆ	ð 	×Ò˜4Ô1Ô=Ñ>Ô>Ð>ÝÔ 	¨;¸ÑAÔAÐAr0   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¿   r4   )rW   rf   ÚmethodÚparse_methodss      €r.   r]   z1ConfigHandler._get_parser_compound.<locals>.parse¨  s+   ø€ ØˆFà'ð (ð (�Ø˜ ™œ��àˆMr0   r4   )r¤   rÏ   r]   s    ` r.   Ú_get_parser_compoundz"ConfigHandler._get_parser_compoundž  s#   ø€ ð	ð 	ð 	ð 	ð 	ð ˆr0   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_parserrW   rF   Ú_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Øˆr0   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¿   r4   )rÓ   ÚvrÒ   s     €r.   ú<lambda>z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ë  s   ø€ ˜}˜}¨QÑ/Ô/€ r0   c                 ó   — |S r¿   r4   )rÓ   r×   s     r.   rØ   z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ë  s   € ÐUV€ r0   ©rÔ   )r¤   rƒ   rÒ   r–   s     ` r.   Ú_parse_section_to_dictz$ConfigHandler._parse_section_to_dictÁ  s7   ø€ ð 5BÐWÐ/Ð/Ð/Ð/Ð/ÈÈˆØ×2Ò2°?ÀFÑKÔKÐKr0   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|   rl   rm   rŽ   )r�   rƒ   ÚnamerÓ   rW   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.

        rz   z_%szparse_section%sr{   Ú__Nz*Unsupported distribution option section: [ú])r€   r|   rK   r~   r   rS   )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ð 	3r0   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¿   )rp   rq   )ÚargsÚkwargsÚfuncru   Úwarning_classs     €€€r.   Úconfig_handlerz@ConfigHandler._deprecated_config_handler.<locals>.config_handlerú  s*   ø€ åŒM˜#˜}Ñ-Ô-Ð-Ø�4˜Ð( Ð(Ð(Ð(r0   r   )r�   rè   ru   ré   rê   s    ``` r.   Ú_deprecated_config_handlerz(ConfigHandler._deprecated_config_handlerò  sB   øøø€ õ 
ˆt‰Œð	)ð 	)ð 	)ð 	)ð 	)ð 	)ñ 
Œð	)ð Ðr0   )r™   r¿   )r‰   Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__rx   r
   r    ÚAllCommandOptionsr   r\   r„   ÚpropertyrŠ   r˜   Úclassmethodr¦   r®   rµ   r»   Ú_PathrÅ   rË   rÐ   rÔ   rÛ   rÞ   r]   rë   r4   r0   r.   r6   r6   Ô   sí  € € € € € € Ø;Ð;àÐÐÑðð
 !€GˆT�#�s�(Œ^Ð Ð Ñ ðð3àð3ð #ð3ð
 "Ô:ð3ð 3ð 3ð 3ð. ð
ð 
ñ „Xð
ð$-ð $-ð $-ðL ðCð Cð Cñ „[ðCð& ðð ñ „[ðð$ ð-ð -ñ „[ð-ð ðð ñ „[ðð, ð6¨%ð 6ð 6ð 6ñ „[ð6ð2B¸ð Bð Bð Bð Bð( ðð ñ „[ðð& ðð ñ „[ðð ð
Lð 
Lð 
Lñ „[ð
Lð#ð #ð #ð3ð 3ð 3ð4ð ð ð ð r0   r6   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 )rY   r_   ÚurlÚdescriptionÚclassifiersÚ	platforms)Ú	home_pageÚsummaryÚ
classifierÚplatformFNrE   r   rb   r*   ra   r^   r¼   c                 ól   •— t          ¦   «                              ||||¦  «         || _        || _        d S r¿   )Úsuperr„   r^   r¼   )r�   rE   rb   r*   ra   r^   r¼   rˆ   s          €r.   r„   zConfigMetadataHandler.__init__  s8   ø€ õ 	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ&ˆÔØ ˆŒˆˆr0   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ð-å,ñ	ô ð (Ø%Ø *ØÔ*Ø&ð/
ð 
ð 	
r0   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}r4   )rÅ   r¼   r   r   r   r   rH   rI   r   r	  rË   r^   )r�   rW   r	  Útmpls       r.   r  z$ConfigMetadataHandler._parse_versionB  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í   rS   rx   Ústrict_moder9   Úcurdirrð   Úboolr   r\   r   rQ   ró   r„   rñ   rŠ   r  Ú__classcell__©rˆ   s   @r.   rY   rY     sê   ø€ € € € € à€Nð Ø Ø#Øð	ð €Gð €Kðð '+Øœ)ð!ð !à*ð!ð #ð!ð #ð	!ð
 "Ô:ð!ð ˜d”^ð!ð ð!ð !ð !ð !ð !ð !ð ð
ð 
ñ „Xð
ðBXð Xð Xð Xð Xð Xð Xr0   rY   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 )rZ   rb   rE   r   r*   ra   c                 óv   •— t          ¦   «                              ||||¦  «         |j        | _        i | _        d S r¿   )rþ   r„   r`   r¼   r^   )r�   rE   rb   r*   ra   rˆ   s        €r.   r„   zConfigOptionsHandler.__init__a  s=   ø€ õ 	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ"Ô+ˆŒØ+-ˆÔÐÐr0   c                 ó0   — |                       |d¬¦  «        S )Nrj   )r¥   )r¦   r´   s     r.   Ú_parse_list_semicolonz*ConfigOptionsHandler._parse_list_semicolonl  s   € à�Š˜u°ˆÑ4Ô4Ð4r0   c                 ó:   — |                       || j        ¬¦  «        S )Nr   )rÅ   r¼   )r�   rW   s     r.   Ú_parse_file_in_rootz(ConfigOptionsHandler._parse_file_in_rootp  s   € Ø×Ò °´ÐÑ>Ô>Ð>r0   rd   rW   c                 óŒ   — |                       |                      |¦  «        ¦  «        }t          |||¦  «         d„ |D ¦   «         S )Nc                 ó<   — g | ]}|                      d ¦  «        °|‘ŒS )ú#)r}   )r�   r«   s     r.   rŸ   zAConfigOptionsHandler._parse_requirements_list.<locals>.<listcomp>y  s)   € ÐDÐDÐD˜¨t¯ª¸sÑ/CÔ/CÐD�ÐDÐDÐDr0   )r  r  rv   )r�   rd   rW   rf   s       r.   Ú_parse_requirements_listz-ConfigOptionsHandler._parse_requirements_lists  sL   € à×+Ò+¨D×,DÒ,DÀUÑ,KÔ,KÑLÔLˆÝ-¨e°U¸FÑCÔCÐCð EÐD ÐDÑDÔDÐDr0   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Ø$Ý+Ø&ð-
ð 
ð 	
r0   c                 óv   — | j         j        }t          j        |                      |¦  «        || j        ¦  «        S r¿   )ra   r^   r   r/  r®   r¼   )r�   rW   r^   s      r.   r0  z$ConfigOptionsHandler._parse_cmdclassœ  s1   € ØÔ,Ô8ˆÝŒ˜t×/Ò/°Ñ6Ô6¸ÀTÄ]ÑSÔSÐSr0   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_dirr4   )
r   r¦   Úparse_section_packages__findr€   r�   rÇ   r¼   r^   r   Úfind_packages)r�   rW   Úfind_directivesÚtrimmed_valueÚfind_kwargss        r.   r1  z$ConfigOptionsHandler._parse_packages   s·   € ð #Ð$5Ð6ˆØŸš™œˆà Ð/Ð/Ø×#Ò# EÑ*Ô*Ð*ð ×7Ò7ØŒM×Ò˜o¨rÑ2Ô2ñ
ô 
ˆð 	×ÒØ%¨¸Ô);Ò;Ø”]Ø!Ô-ð 	ñ 	
ô 	
ð 	
õ Ô#Ð2Ð2 kÐ2Ð2Ð2r0   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 r4   r4   )r�   Úkr×   Ú
valid_keyss      €r.   rŸ   zEConfigOptionsHandler.parse_section_packages__find.<locals>.<listcomp>Å  s*   ø€ ÐNÐNÐN™˜˜1¸¸Z¸¸ÈA¸ˆa�ˆV¸¸¸r0   r>  Nr   )rÛ   r¦   rQ   r|   r�   )r�   rƒ   Úsection_datar<  r>  rC  s        @r.   r8  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˜Ñ àÐr0   c                 óF   — |                       || j        ¦  «        }|| d<   dS )z`Parses `entry_points` configuration file section.

        :param dict section_options:
        r,  N)rÛ   r¦   ©r�   rƒ   rf   s      r.   Úparse_section_entry_pointsz/ConfigOptionsHandler.parse_section_entry_pointsÎ  s,   € ð
 ×,Ò,¨_¸dÔ>NÑOÔOˆØ%ˆˆ^ÑÐÐr0   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Ð8r0   c                 ó6   — |                       |¦  «        | d<   dS )z`Parses `package_data` configuration file section.

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

        :param dict section_options:
        Úexclude_package_dataNrM  rN  s     r.   Ú"parse_section_exclude_package_dataz7ConfigOptionsHandler.parse_section_exclude_package_dataá  s#   € ð
 (,×'?Ò'?ÀÑ'PÔ'PˆÐ#Ñ$Ð$Ð$r0   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   )rB  r×   r�   s     €r.   rØ   zCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>ï  s#   ø€ ˜×6Ò6Ð7MÈÐ7MÐ7MÐ7MÈqÑQÔQ€ r0   Úextras_requireNrÚ   rF  s   `  r.   Úparse_section_extras_requirez1ConfigOptionsHandler.parse_section_extras_requireè  s<   ø€ ð
 ×5Ò5ØØQÐQÐQÐQñ
ô 
ˆð
 "(ˆÐÑÐÐr0   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¼   rF  s      r.   Úparse_section_data_filesz-ConfigOptionsHandler.parse_section_data_filesô  s;   € ð
 ×,Ò,¨_¸dÔ>NÑOÔOˆÝ#Ô6°v¸t¼}ÑMÔMˆˆ\ÑÐÐr0   )r‰   rì   rí   rS   rð   r  r   r\   r„   rò   r  r  r   r   rñ   rŠ   r0  r1  r8  rG  rK  rO  rR  rV  rZ  r  r  s   @r.   rZ   rZ   ]  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r0   rZ   )FF)r4   F)F);rî   r9   rl   rJ   rp   Úcollectionsr   r   r   Útypingr   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   rz   r   r%   r   Údistutils.distr   r   ÚPathLikeró   ÚSingleCommandOptionsrð   r    rQ   r/   r3   r  r'   rO   r(   rA   r¡   rv   r6   rY   rZ   r4   r0   r.   ú<module>re     s'  ððð ð
 
€	€	€	à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 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ð ð ð ð ð* ð(ð (Ø ð(à&ð(ð Ð:Ô;ð	(ð (ð (ð (ðV,°ð ,À#ð ,Ètð ,ð ,ð ,ð ,ðBkð kð kð kð k�G˜F”Oñ kô kð kð\	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r0   