Ë
    ˜šãjqZ  ã                   ó4  — d dl Z d dlZd dl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 d dlZd dlmZmZ d dlmZmZ d dlmZ  G d	„ d
«      Zej.                  d„ «       Zdd„Zd„ Zd„ Zdd„Z G d„ d«      Z G d„ de«      Z G d„ de«      Zy)é    N)Údefaultdict)Úpartial©Úwraps)Úiglob)ÚDistutilsOptionErrorÚDistutilsFileError)ÚVersionÚInvalidVersion)ÚSpecifierSetc                   ó   — e Zd ZdZd„ Zd„ Zy)ÚStaticModulez0
    Attempt to load the module by the name
    c                 ó(  — t         j                  j                  |«      }t        |j                  «      5 }|j                  «       }d d d «       t        j                  «      }t        | «      j                  t        «       «       | `y # 1 sw Y   ŒCxY w©N)Ú	importlibÚutilÚ	find_specÚopenÚoriginÚreadÚastÚparseÚvarsÚupdateÚlocalsÚself)r   ÚnameÚspecÚstrmÚsrcÚmodules         ú\/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/setuptools/config.pyÚ__init__zStaticModule.__init__   sj   € Ü�~‰~×'Ñ'¨Ó-ˆÜ�$—+‘+Óð 	 $Ø—)‘)“+ˆC÷	ä—‘˜3“ˆÜˆT‹
×Ñœ&›(Ô#Ø‰I÷		ð 	ús   µBÂBc           	      óÀ   ‡— 	 t        ˆfd„| j                  j                  D «       «      S # t        $ r)}t	         dj
                  di t        «       ¤Ž«      |‚d }~ww xY w)Nc              3   ó  •K  — | ]w  }t        |t        j                  «      r[|j                  D ]L  }t        |t        j                  «      r0|j
                  ‰k(  r!t        j                  |j                  «      –— ŒN Œy y ­wr   )Ú
isinstancer   ÚAssignÚtargetsÚNameÚidÚliteral_evalÚvalue)Ú.0Ú	statementÚtargetÚattrs      €r"   ú	<genexpr>z+StaticModule.__getattr__.<locals>.<genexpr>#   sj   øè ø€ ò àÜ˜i¬¯©Ô4Ø'×/Ñ/ò	ð Ü˜f¤c§h¡hÔ/°F·I±IÀÒ4Eô	 × Ñ  §¡×1ðØ1ñùs   ƒA=B z#{self.name} has no attribute {attr}© )Únextr!   ÚbodyÚ	ExceptionÚAttributeErrorÚformatr   )r   r0   Úes    ` r"   Ú__getattr__zStaticModule.__getattr__!   sd   ø€ ð	Üó à!%§¡×!1Ñ!1ôó ð øô ò 	Ü Ø<Ð5×<Ñ<ÑH¼v»xÑHóàðûð	ús   ƒ'+ «	A´$AÁAN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   r9   r2   ó    r"   r   r      s   „ ñòór>   r   c              #   óÜ   K  — 	 t         j                  j                  d| «       d–— t         j                  j                  | «       y# t         j                  j                  | «       w xY w­w)zH
    Add path to front of sys.path for the duration of the context.
    r   N)ÚsysÚpathÚinsertÚremove)rA   s    r"   Ú
patch_pathrD   0   s@   è ø€ ð
Ü�‰�‰˜˜4Ô Ûä�‰�‰˜ÕøŒ�‰�‰˜Õüs   ‚A,„$A ¨ A,Á!A)Á)A,c                 ób  — ddl m}m} t        j                  j                  | «      } t        j                  j                  | «      st        d| z  «      ‚t        j                  «       }t        j                  t        j                  j                  | «      «       	  |«       }|r|j                  «       ng }| |vr|j                  | «       |j                  ||¬«       t        ||j                  |¬«      }t        j                  |«       t!        |«      S # t        j                  |«       w xY w)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   )ÚDistributionÚ_Distributionz%Configuration file %s does not exist.)Ú	filenames)Úignore_option_errors)Úsetuptools.distrF   rG   ÚosrA   ÚabspathÚisfiler	   ÚgetcwdÚchdirÚdirnameÚfind_config_filesÚappendÚparse_config_filesÚparse_configurationÚcommand_optionsÚconfiguration_to_dict)	ÚfilepathÚfind_othersrI   rF   rG   Úcurrent_directoryÚdistrH   Úhandlerss	            r"   Úread_configurationr\   <   sé   € ÷  <ä�w‰w�‰˜xÓ(€Hä�7‰7�>‰>˜(Ô#Ü Ð!HÈ8Ñ!SÓTÐTäŸ	™	›ÐÜ‡H�HŒR�W‰W�_‰_˜XÓ&Ô'ð$Ù‹~ˆá0;�D×*Ñ*Ô,Àˆ	Ø˜9Ñ$Ø×Ñ˜XÔ&à×(Ñ(¨¸Ð(ÔCä&Ø�$×&Ñ&Ð=Qô
ˆô
 	�‰Ð"Ô#ä  Ó*Ð*øô 	�‰Ð"Õ#ús   ÂAD ÄD.c                 ó”   —  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}r2   )r7   r   Ú	functoolsr   Úgetattr)Ú
target_objÚkeyÚgetter_nameÚby_attributeÚgetters        r"   Ú_get_optionre   i   sD   € ð %�+×$Ñ$Ñ0¤v£xÑ0€KÜ×$Ñ$¤W¨j¸#Ó>€LÜ�Z ¨lÓ;€FÙ‹8€Or>   c                 ó¤   — t        t        «      }| D ];  }|j                  D ]*  }t        |j                  |«      }|||j
                     |<   Œ, Œ= |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_optionsre   r`   Úsection_prefix)r[   Úconfig_dictÚhandlerÚoptionr,   s        r"   rV   rV   u   se   € ô œdÓ#€Kàò @ˆØ×)Ñ)ò 	@ˆFÜ × 2Ñ 2°FÓ;ˆEØ:?ˆK˜×.Ñ.Ñ/°Ò7ñ	@ð@ð
 Ðr>   c                 ó¨   — t        | ||«      }|j                  «        t        | j                  ||| j                  «      }|j                  «        ||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
    )ÚConfigOptionsHandlerr   ÚConfigMetadataHandlerÚmetadataÚpackage_dir)ÚdistributionrU   rI   ÚoptionsÚmetas        r"   rT   rT   ‡   sS   € ô # <°ÐBVÓW€GØ‡M�M„Oä Ø×ÑØØØ× Ñ ó	€Dð 	‡J�J„Là�ˆ=Ðr>   c                   ó  — e Zd ZdZdZ	 i Z	 dd„Zed„ «       Zd„ Z	e
dd„«       Ze
dd„«       Ze
d„ «       Ze
d	„ «       Ze
d
„ «       Ze
d„ «       Zed„ «       Zed„ «       Ze
dd„«       Ze
d„ «       Ze
dd„«       Zd„ Zd„ Zd„ Zy)ÚConfigHandlerz1Handles metadata supplied in configuration files.Nc                 óø   — i }| j                   }|j                  «       D ]=  \  }}|j                  |«      sŒ|j                  |d«      j	                  d«      }|||<   Œ? || _        || _        || _        g | _        y )NÚ ú.)	ri   ÚitemsÚ
startswithÚreplaceÚstriprI   r`   Úsectionsrh   )r   r`   rs   rI   r~   ri   Úsection_nameÚsection_optionss           r"   r#   zConfigHandler.__init__³   s„   € Øˆà×,Ñ,ˆØ-4¯]©]«_ò 	5Ñ)ˆL˜/Ø×*Ñ*¨>Ô:Øà'×/Ñ/°ÀÓC×IÑIÈ#ÓNˆLØ%4ˆH�\Ò"ð	5ð %9ˆÔ!Ø$ˆŒØ ˆŒØˆÕr>   c                 óF   — t        d| j                  j                  z  «      ‚)ú.Metadata item name to parser function mapping.z!%s must provide .parsers property)ÚNotImplementedErrorÚ	__class__r:   )r   s    r"   ÚparserszConfigHandler.parsersÃ   s#   € ô "Ø/°$·.±.×2IÑ2IÑIó
ð 	
r>   c                 ó¾  — t        «       }| j                  }| j                  j                  ||«      }t	        |||«      }||u rt        |«      ‚|ry d}| j                  j                  |«      }|r		  ||«      }|ry t	        |d|z  d «      }|€t        |||«       n ||«       | j                  j                  |«       y # t        $ r d}| j                  s‚ Y Œaw xY w)NFTzset_%s)Útupler`   ÚaliasesÚgetr_   ÚKeyErrorr…   r5   rI   Úsetattrrh   rR   )	r   Úoption_namer,   Úunknownr`   Úcurrent_valueÚskip_optionÚparserÚsetters	            r"   Ú__setitem__zConfigHandler.__setitem__Ê   sé   € Ü“'ˆØ—_‘_ˆ
ð —l‘l×&Ñ& {°KÓ@ˆä 
¨K¸ÓAˆà˜GÑ#Ü˜;Ó'Ð'áààˆØ—‘×!Ñ! +Ó.ˆÙðÙ˜u›�ñ Øä˜ X°Ñ%;¸TÓBˆØˆ>Ü�J ¨UÕ3á�5ŒMà×Ñ×Ñ Õ,øô ò Ø"�Ø×0Ò0Øñ 1ðús   Á2C ÃCÃCc                 óÚ   — t        |t        «      r|S d|v r|j                  «       }n|j                  |«      }|D �cg c]#  }|j	                  «       sŒ|j	                  «       ‘Œ% c}S c c}w )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
        ú
)r&   ÚlistÚ
splitlinesÚsplitr}   )Úclsr,   Ú	separatorÚchunks       r"   Ú_parse_listzConfigHandler._parse_listð   sX   € ô �eœTÔ"ØˆLà�5‰=Ø×$Ñ$Ó&‰Eà—K‘K 	Ó*ˆEà+0ÖB %°E·K±KµM�—‘•ÒBÐBùÒBs   ½A(ÁA(c                 ó  ‡— d}| j                  ‰|¬«      }g }|D ]o  Št        ˆfd„|D «       «      rH|j                  t        d„ t	        t
        j                  j                  ‰«      «      D «       «      «       Œ_|j                  ‰«       Œq |S )a  Equivalent to _parse_list() but expands any glob patterns using glob().

        However, unlike with glob() calls, the results remain relative paths.

        :param value:
        :param separator: List items separator character.
        :rtype: list
        )Ú*ú?ú[ú]ú{ú}©r™   c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr   r2   )r-   Úcharr,   s     €r"   r1   z1ConfigHandler._parse_list_glob.<locals>.<genexpr>  s   øè ø€ Ò= T�4˜5”=Ñ=ùs   ƒc              3   ó€   K  — | ]6  }t         j                  j                  |t        j                  «       «      –— Œ8 y ­wr   )rK   rA   ÚrelpathrN   ©r-   rA   s     r"   r1   z1ConfigHandler._parse_list_glob.<locals>.<genexpr>  s-   è ø€ ò .?àô —G‘G—O‘O D¬"¯)©)«+×6ñ.?ùs   ‚<>)	r›   ÚanyÚextendÚsortedr   rK   rA   rL   rR   )r˜   r,   r™   Úglob_charactersÚvaluesÚexpanded_valuess    `    r"   Ú_parse_list_globzConfigHandler._parse_list_glob  s�   ø€ ð 9ˆØ—‘ °)�Ó<ˆØˆØò 	.ˆEô Ó=¨_Ô=Ô=à×&Ñ&¤vñ .?ä %¤b§g¡g§o¡o°eÓ&<Ó =ô.?ó (?õ @ð  ×&Ñ& uÕ-ð	.ð Ðr>   c                 óÌ   — d}i }| j                  |«      D ]K  }|j                  |«      \  }}}||k7  rt        d|z  «      ‚|j                  «       ||j                  «       <   ŒM |S )zPRepresents value as a dict.

        :param value:
        :rtype: dict
        ú=z(Unable to parse option value to dict: %s)r›   Ú	partitionr   r}   )r˜   r,   r™   ÚresultÚlinera   ÚsepÚvals           r"   Ú_parse_dictzConfigHandler._parse_dict   sv   € ð ˆ	ØˆØ—O‘O EÓ*ò 	.ˆDØ ŸN™N¨9Ó5‰MˆC��cØ�iÒÜ*Ø>ÀÑFóð ð #&§)¡)£+ˆF�3—9‘9“;Òð	.ð ˆr>   c                 ó*   — |j                  «       }|dv S )zQRepresents value as boolean.

        :param value:
        :rtype: bool
        )Ú1ÚtrueÚyes)Úlower)r˜   r,   s     r"   Ú_parse_boolzConfigHandler._parse_bool3  s   € ð —‘“ˆØÐ,Ð,Ð,r>   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                 ób   •— d}| j                  |«      rt        dj                  ‰«      «      ‚| S )Núfile:zCOnly strings are accepted for the {0} field, files are not accepted)r{   Ú
ValueErrorr7   )r,   Úexclude_directivera   s     €r"   r�   z3ConfigHandler._exclude_files_parser.<locals>.parserI  s:   ø€ Ø 'ÐØ×ÑÐ 1Ô2Ü ð-ß-3©V°C«[óð ð ˆLr>   r2   )r˜   ra   r�   s    ` r"   Ú_exclude_files_parserz#ConfigHandler._exclude_files_parser=  s   ø€ ô	ð ˆr>   c                 óÒ   ‡ — d}t        |t        «      s|S |j                  |«      s|S |t        |«      d }d„ |j	                  d«      D «       }dj                  ˆ fd„|D «       «      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   óv   K  — | ]1  }t         j                  j                  |j                  «       «      –— Œ3 y ­wr   )rK   rA   rL   r}   r¨   s     r"   r1   z,ConfigHandler._parse_file.<locals>.<genexpr>k  s#   è ø€ ÒO°t”R—W‘W—_‘_ T§Z¡Z£\×2ÑOùs   ‚79ú,r”   c              3   ó    •K  — | ]E  }‰j                  |«      s t        j                  j                  |«      r‰j	                  |«      –— ŒG y­w)TN)Ú_assert_localrK   rA   rM   Ú
_read_file)r-   rA   r˜   s     €r"   r1   z,ConfigHandler._parse_file.<locals>.<genexpr>l  s?   øè ø€ ò 
àØ×!Ñ! $Ô'´R·W±W·^±^ÀDÔ5Ið �N‰N˜4× ñ
ùs   ƒAA)r&   Ústrr{   Úlenr—   Újoin)r˜   r,   Úinclude_directiver   Ú	filepathss   `    r"   Ú_parse_filezConfigHandler._parse_fileT  sq   ø€ ð $Ðä˜%¤Ô%ØˆLà×ÑÐ 1Ô2ØˆLà”SÐ*Ó+Ð-Ð.ˆÙO¸t¿z¹zÈ#»ÔOˆ	Ø�y‰yó 
à!ô
ó 
ð 	
r>   c                 óf   — | j                  t        j                  «       «      st        d| z  «      ‚y )Nz#`file:` directive can not access %s)r{   rK   rN   r   )rW   s    r"   rÈ   zConfigHandler._assert_localr  s,   € à×"Ñ"¤2§9¡9£;Ô/Ü&Ð'LÈxÑ'WÓXÐXð 0r>   c                 ó|   — t        j                  | d¬«      5 }|j                  «       cd d d «       S # 1 sw Y   y xY w)Nzutf-8)Úencoding)Úior   r   )rW   Úfs     r"   rÉ   zConfigHandler._read_filew  s0   € ä�W‰W�X¨Ô0ð 	°AØ—6‘6“8÷	÷ 	ò 	ús   ˜2²;c                 ó2  — d}|j                  |«      s|S |j                  |d«      j                  «       j                  d«      }|j	                  «       }dj                  |«      }|xs d}t        j                  «       }|r¦|d   |v rf||d      }|j                  dd«      }	t        |	«      dkD  r;t        j                  j                  t        j                  «       |	d   «      }|	d   }n<|}n9d|v r5t        j                  j                  t        j                  «       |d   «      }t        |«      5  	 t        t        |«      |«      cddd«       S # t        $ r t        j                   |«      }
Y nw xY w	 ddd«       n# 1 sw Y   nxY wt        
|«      S )	z·Represents value as a module attribute.

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

        :param str value:
        :rtype: str
        zattr:rx   ry   r#   r   ú/é   N)r{   r|   r}   r—   ÚpoprÌ   rK   rN   ÚrsplitrË   rA   rD   r_   r   r5   r   Úimport_module)r˜   r,   rq   Úattr_directiveÚ
attrs_pathÚ	attr_nameÚmodule_nameÚparent_pathÚcustom_pathÚpartsr!   s              r"   Ú_parse_attrzConfigHandler._parse_attr|  si  € ð !ˆØ×Ñ Ô/ØˆLà—]‘] >°2Ó6×<Ñ<Ó>×DÑDÀSÓIˆ
Ø—N‘NÓ$ˆ	à—h‘h˜zÓ*ˆØ!Ò/ Zˆä—i‘i“kˆÙØ˜!‰} Ñ+à)¨*°Q©-Ñ8�Ø#×*Ñ*¨3°Ó2�Ü�u“: ’>Ü"$§'¡'§,¡,¬r¯y©y«{¸EÀ!¹HÓ"E�KØ"'¨¡(‘Kà"-‘KØ�{Ñ"ä Ÿg™gŸl™l¬2¯9©9«;¸ÀB¹ÓH�ä˜Ó$ñ 	>ð>äœ|¨KÓ8¸)ÓD÷	>ñ 	>øô ò >ä"×0Ñ0°Ó=’ð>úà÷	>÷ 	>ñ 	>úô �v˜yÓ)Ð)s*   Ä3FÄ5EÅE4Å1FÅ3E4Å4FÆF
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   r2   )r,   ÚparsedÚmethodÚparse_methodss      €r"   r   z1ConfigHandler._get_parser_compound.<locals>.parse´  s'   ø€ ØˆFà'ò (�Ù ›‘ð(ð ˆMr>   r2   )r˜   rç   r   s    ` r"   Ú_get_parser_compoundz"ConfigHandler._get_parser_compoundª  s   ø€ ô	ð ˆr>   c                 ód   — i }|xs d„ }|j                  «       D ]  \  }\  }} ||«      ||<   Œ |S )zÊParses section options into a dictionary.

        Optionally applies a given parser to values.

        :param dict section_options:
        :param callable values_parser:
        :rtype: dict
        c                 ó   — | S r   r2   )r¶   s    r"   ú<lambda>z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>É  s   € °c€ r>   )rz   )r˜   r€   Úvalues_parserr,   ra   Ú_r¶   s          r"   Ú_parse_section_to_dictz$ConfigHandler._parse_section_to_dict¾  sF   € ð ˆØ%Ò:©/ˆØ,×2Ñ2Ó4ò 	,‰MˆC‘�!�SÙ& sÓ+ˆE�#ŠJð	,àˆr>   c                 ód   — |j                  «       D ]  \  }\  }}	 || |<   Œ y# t        $ r Y Œw xY w)zQParses configuration file section.

        :param dict section_options:
        N)rz   rŠ   )r   r€   r   rí   r,   s        r"   Úparse_sectionzConfigHandler.parse_sectionÎ  sG   € ð
 #2×"7Ñ"7Ó"9ò 	ÑˆT‘:�A�uðØ"��T’
ñ	øô ò Ùðús   ›#£	/®/c                 óæ   — | j                   j                  «       D ]T  \  }}d}|rd|z  }t        | d|z  j                  dd«      d«      }|€t	        d| j
                  ›d|›d�«      ‚ ||«       ŒV y)	zTParses configuration file items from one
        or more related sections.

        rx   z_%szparse_section%sry   Ú__Nz*Unsupported distribution option section: [r    )r~   rz   r_   r|   r   ri   )r   r   r€   Úmethod_postfixÚsection_parser_methods        r"   r   zConfigHandler.parseÚ  sŒ   € ð
 .2¯]©]×-@Ñ-@Ó-Bò 	3Ñ)ˆL˜/àˆNÙØ!&¨Ñ!5�ä$+Øà" ^Ñ3×<Ñ<¸SÀ$ÓGØó	%Ð!ð %Ð,Ý*à×*Ó*ªLð:óð ñ
 " /Õ2ñ'	3r>   c                 ó6   ‡‡‡— 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   )ÚwarningsÚwarn)ÚargsÚkwargsÚfuncÚmsgÚwarning_classs     €€€r"   Úconfig_handlerz@ConfigHandler._deprecated_config_handler.<locals>.config_handlerü  s!   ø€ ä�M‰M˜#˜}Ô-Ù˜Ð( Ñ(Ð(r>   r   )r   rû   rü   rý   rþ   s    ``` r"   Ú_deprecated_config_handlerz(ConfigHandler._deprecated_config_handlerô  s#   ú€ ô 
ˆt‹õ	)ó 
ð	)ð Ðr>   ©F)rÆ   r   )r:   r;   r<   r=   ri   rˆ   r#   Úpropertyr…   r’   Úclassmethodr›   r¯   r·   r½   rÃ   rÏ   ÚstaticmethodrÈ   rÉ   râ   rè   rî   rð   r   rÿ   r2   r>   r"   rv   rv   £   s*  „ Ù;à€Nðð
 €Gðóð  ñ
ó ð
ò$-ðL òCó ðCð& òó ðð6 ñó ðð$ ñ-ó ð-ð ñó ðð, ñ
ó ð
ð: ñYó ðYð ñó ðð ò+*ó ð+*ðZ ñó ðð& òó ðò
ò3ó4r>   rv   c                   óP   ‡ — e Zd ZdZdddddœZdZ	 	 dˆ fd„	Zed	„ «       Zd
„ Z	ˆ xZ
S )ro   rp   ÚurlÚdescriptionÚclassifiersÚ	platforms)Ú	home_pageÚsummaryÚ
classifierÚplatformFc                 ó>   •— t         t        | �  |||«       || _        y r   )Úsuperro   r#   rq   )r   r`   rs   rI   rq   r„   s        €r"   r#   zConfigMetadataHandler.__init__  s'   ø€ ô 	Ô# TÑ3Ø˜Ð!5ô	
ð 'ˆÕr>   c                 ó"  — | j                   }| j                  }| j                  }| j                  }|||| j	                  |dt
        «      || j                  ||«       |d«      | j	                   |d«      dt
        «      |||| j                  |dœS )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ÿ   ÚDeprecationWarningrè   Ú_parse_version)r   Ú
parse_listÚ
parse_fileÚ
parse_dictÚexclude_files_parsers        r"   r…   zConfigMetadataHandler.parsers  s±   € ð ×%Ñ%ˆ
Ø×%Ñ%ˆ
Ø×%Ñ%ˆ
Ø#×9Ñ9Ðð $Ø"Ø"Ø×7Ñ7Øð=ä"ó	ð $Ø×4Ñ4°ZÀÓLÙ+¨IÓ6Ø ×;Ñ;Ù$ ^Ó4ð-ä"ó	ð (Ø%Ø *Ø×*Ñ*Ø&ñ/
ð 	
r>   c           	      ó²  — | j                  |«      }||k7  r|j                  «       }	 t        |«       |S | j                  || j                  «      }t        |«      r |«       }t        |t        «      s2t        |d«      r!dj                  t        t        |«      «      }|S d|z  }|S # t        $ r& d}t	         |j
                  di t        «       ¤Ž«      ‚w xY w)zSParses `version` option value.

        :param value:
        :rtype: str

        zCVersion loaded from {value} does not comply with PEP 440: {version}Ú__iter__ry   z%sr2   )rÏ   r}   r
   r   r   r7   r   râ   rq   Úcallabler&   rÊ   ÚhasattrrÌ   Úmap)r   r,   r  Útmpls       r"   r  z$ConfigMetadataHandler._parse_version?  sÝ   € ð ×"Ñ" 5Ó)ˆà�eÒØ—m‘m“oˆGðDÜ˜Ô ð ˆNà×"Ñ" 5¨$×*:Ñ*:Ó;ˆä�GÔÙ“iˆGä˜'¤3Ô'Ü�w 
Ô+ØŸ(™(¤3¤s¨GÓ#4Ó5�ð ˆð  ™.�àˆøô) "ò Dð5ð ô +¨;¨4¯;©;Ñ+B¼»Ñ+BÓCÐCðDús   ¨B' Â'/C)FN)r:   r;   r<   ri   rˆ   Ústrict_moder#   r  r…   r  Ú__classcell__)r„   s   @r"   ro   ro     sO   ø„ à€Nð Ø Ø#Øñ	€Gð €Kðð LPõ'ð ñ
ó ð
öB#r>   ro   c                   óV   — e Zd ZdZed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zy)rn   rs   c                 óä   — | j                   }t        | j                   d¬«      }| j                  }| j                  }| j                  }||||||||||| j
                  | j                  |t        |dœS )r‚   ú;r£   )Úzip_safeÚinclude_package_datarq   ÚscriptsÚeager_resourcesÚdependency_linksÚnamespace_packagesÚinstall_requiresÚsetup_requiresÚtests_requireÚpackagesÚentry_pointsÚ
py_modulesÚpython_requiresÚcmdclass)r›   r   r½   r·   Ú_parse_cmdclassÚ_parse_packagesrÏ   r   )r   r  Úparse_list_semicolonÚ
parse_boolr  Úparse_cmdclasss         r"   r…   zConfigOptionsHandler.parsersi  sˆ   € ð ×%Ñ%ˆ
Ü& t×'7Ñ'7À3ÔGÐØ×%Ñ%ˆ
Ø×%Ñ%ˆ
Ø×-Ñ-ˆð #Ø$.Ø%Ø!Ø)Ø *Ø",Ø 4Ø2Ø1Ø×,Ñ,Ø ×,Ñ,Ø$Ü+Ø&ñ
ð 	
r>   c                 ó†   — d„ }| j                  |«      j                  «       D ��ci c]  \  }}| ||«      “Œ c}}S c c}}w )Nc                 ól   — | j                  d«      }| |dz   d  }| d | }t        |«      }t        ||«      S )Nry   r×   )ÚrfindÚ
__import__r_   )Úqualified_class_nameÚidxÚ
class_nameÚpkg_namer!   s        r"   Úresolve_classz;ConfigOptionsHandler._parse_cmdclass.<locals>.resolve_class…  sE   € Ø&×,Ñ,¨SÓ1ˆCØ-¨c°A©g¨iÐ8ˆJØ+¨D¨SÐ1ˆHä Ó)ˆFä˜6 :Ó.Ð.r>   )r·   rz   )r   r,   rF  ÚkÚvs        r"   r9  z$ConfigOptionsHandler._parse_cmdclass„  s?   € ò	/ð 15×0@Ñ0@ÀÓ0G×0MÑ0MÓ0O×P©¨¨1�‘= Ó#Ñ#ÓPÐPùÓPs   ¦=c                 óè   — ddg}|j                  «       }||vr| j                  |«      S ||d   k(  }| j                  | j                  j	                  di «      «      }|rddlm} nddlm}  |di |¤ŽS )	zTParses `packages` option value.

        :param value:
        :rtype: list
        zfind:zfind_namespace:r×   zpackages.findr   )Úfind_namespace_packages)Úfind_packagesr2   )r}   r›   Úparse_section_packages__findr~   r‰   Ú
setuptoolsrJ  rK  )r   r,   Úfind_directivesÚtrimmed_valueÚfindnsÚfind_kwargsrK  s          r"   r:  z$ConfigOptionsHandler._parse_packages�  s�   € ð #Ð$5Ð6ˆØŸ™›ˆà Ñ/Ø×#Ñ# EÓ*Ð*à /°!Ñ"4Ñ4ˆð ×7Ñ7Ø�M‰M×Ñ˜o¨rÓ2ó
ˆñ ÞKå0áÑ+˜{Ñ+Ð+r>   c                 óô   — | j                  || j                  «      }g d¢}t        |j                  «       D ��cg c]  \  }}||v sŒ|sŒ||f‘Œ c}}«      }|j	                  d«      }|�|d   |d<   |S c c}}w )zœParses `packages.find` configuration file section.

        To be used in conjunction with _parse_packages().

        :param dict section_options:
        )ÚwhereÚincludeÚexcluderS  r   )rî   r›   rg   rz   r‰   )r   r€   Úsection_dataÚ
valid_keysrG  rH  rQ  rS  s           r"   rL  z1ConfigOptionsHandler.parse_section_packages__findª  s‚   € ð ×2Ñ2°?ÀD×DTÑDTÓUˆâ4ˆ
äØ ,× 2Ñ 2Ó 4×N™˜˜1¸¸ZºÊAˆa�ŠVÓNó
ˆð —‘ Ó(ˆØÐØ#(¨¡8ˆK˜Ñ àÐùó Os   ¹A4
ÁA4
Á	A4
c                 óF   — | j                  || j                  «      }|| d<   y)z`Parses `entry_points` configuration file section.

        :param dict section_options:
        r5  N)rî   r›   )r   r€   rå   s      r"   Úparse_section_entry_pointsz/ConfigOptionsHandler.parse_section_entry_points¿  s&   € ð
 ×,Ñ,¨_¸d×>NÑ>NÓOˆØ%ˆˆ^Òr>   c                 ót   — | j                  || j                  «      }|j                  d«      }|r||d<   |d= |S )Nr�   rx   )rî   r›   r‰   )r   r€   rå   Úroots       r"   Ú_parse_package_dataz(ConfigOptionsHandler._parse_package_dataÇ  s?   € Ø×,Ñ,¨_¸d×>NÑ>NÓOˆà�z‰z˜#‹ˆÙØˆF�2‰JØ�s�àˆr>   c                 ó,   — | j                  |«      | d<   y)z`Parses `package_data` configuration file section.

        :param dict section_options:
        Úpackage_dataN©r\  ©r   r€   s     r"   Úparse_section_package_dataz/ConfigOptionsHandler.parse_section_package_dataÑ  s   € ð
  $×7Ñ7¸ÓHˆˆ^Òr>   c                 ó,   — | j                  |«      | d<   y)zhParses `exclude_package_data` configuration file section.

        :param dict section_options:
        Úexclude_package_dataNr_  r`  s     r"   Ú"parse_section_exclude_package_dataz7ConfigOptionsHandler.parse_section_exclude_package_dataØ  s   € ð
 (,×'?Ñ'?ÀÓ'PˆÐ#Ò$r>   c                 ó\   — t        | j                  d¬«      }| j                  ||«      | d<   y)zbParses `extras_require` configuration file section.

        :param dict section_options:
        r*  r£   Úextras_requireN)r   r›   rî   )r   r€   r  s      r"   Úparse_section_extras_requirez1ConfigOptionsHandler.parse_section_extras_requireß  s1   € ô
 ˜T×-Ñ-¸Ô=ˆ
Ø!%×!<Ñ!<Ø˜Zó"
ˆÐÒr>   c                 ó˜   — | j                  || j                  «      }|j                  «       D ��cg c]	  \  }}||f‘Œ c}}| d<   yc c}}w )z^Parses `data_files` configuration file section.

        :param dict section_options:
        Ú
data_filesN)rî   r¯   rz   )r   r€   rå   rG  rH  s        r"   Úparse_section_data_filesz-ConfigOptionsHandler.parse_section_data_filesé  sB   € ð
 ×,Ñ,¨_¸d×>SÑ>SÓTˆØ17·±³×@©¨¨A˜q !šfÓ@ˆˆ\ÒùÓ@s   °AN)r:   r;   r<   ri   r  r…   r9  r:  rL  rY  r\  ra  rd  rg  rj  r2   r>   r"   rn   rn   e  sJ   „ à€Nàñ
ó ð
ò4
Qò,ò4ò*&òòIòQò
óAr>   rn   )FFr   ) r   rÓ   rK   r@   r÷   r^   r   Úcollectionsr   r   r   Úglobr   Ú
contextlibÚdistutils.errorsr   r	   Ú#setuptools.extern.packaging.versionr
   r   Ú&setuptools.extern.packaging.specifiersr   r   ÚcontextmanagerrD   r\   re   rV   rT   rv   ro   rn   r2   r>   r"   ú<module>rr     s—   ðÛ 
Û 	Û 	Û 
ã Û Û Ý #Ý Ý Ý Û ç Eß GÝ ?÷ñ ð8 ×Ññó ðó*+òZ	òó$÷8^ñ ^ôB^˜Mô ^ôBJA˜=õ JAr>   