+
    êhÏg  ã                  óˆ  a € 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
Ht ^ RIHtHt ^ RIHtHtHtHtHtHtHt ^ RIHt ^ RIHtHt ^ R	IHtHt ^R
IH t  ^RI!H"t" ^RI#H$t$H%t% ^RI&H't' ^RIH(t( ]'       d   ^ RI)H*t* ^ RI+H,t, ^ RI-H.t. ]/]0]1]0]3,          3,          t2R]3R&    ]/]0]23,          t4R]3R&    ]! RRR4      t5R0R R llt6R R lt7R1R R llt8R R lt9R  R! lt:R2R" R# llt;R$ R% lt< ! R& R']]5,          4      t= ! R( R)]=R,          4      t> ! R* R+]=R,          4      t? ! R, R-]'4      t@ ! R. R/]'4      tAR# )3a<  
Load setuptools configuration from ``setup.cfg`` files.

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

To read project metadata, consider using
``build.util.project_wheel_metadata`` (https://pypi.org/project/build/).
For simple scenarios, you can also try parsing the file directly
with the help of ``configparser``.
)ÚannotationsN)Údefaultdict)ÚIterableÚIterator)ÚpartialÚwraps)ÚTYPE_CHECKINGÚAnyÚCallableÚClassVarÚGenericÚTypeVarÚcast)Údefault_environment)ÚInvalidRequirementÚRequirement)ÚInvalidVersionÚVersion)Ú_static)ÚStrPath)Ú	FileErrorÚOptionError)ÚSetuptoolsDeprecationWarning)Úexpand)Ú	TypeAlias©ÚDistribution)ÚDistributionMetadatar   ÚSingleCommandOptionsÚAllCommandOptionsÚTargetr   r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )é   Úfilepathr   Úfind_othersÚboolÚignore_option_errorsÚreturnÚdict© )Úformats   "Ú</usr/lib/python3/dist-packages/setuptools/config/setupcfg.pyÚ__annotate__r,   2   s,   € ÷ +ñ +Øð+Ø$(ð+ØHLð+à	ñ+ó    c                ó~   € ^ RI Hp V! 4       pV'       d   VP                  4       M. p\        W@WR4      p\	        V4      # )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   )Úsetuptools.distr   Úfind_config_filesÚ_applyÚconfiguration_to_dict)r#   r$   r&   r   ÚdistÚ	filenamesÚhandlerss   &&&    r+   Úread_configurationr6   2   s7   € õ$ -á‹>€Dß,7�×&Ñ&Ô(¸R€IÜ�d iÓF€HÜ  Ó*Ð*r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r"   r3   r   r#   r   r'   r)   )r*   s   "r+   r,   r,   L   s!   € ÷ ñ ˜lð °gð À,ñ r-   c                ó<   € \        W4       V P                  4        V # )zXApply the configuration from a ``setup.cfg`` file into an existing
distribution object.
)r1   Ú_finalize_requires)r3   r#   s   &&r+   Úapply_configurationr:   L   s   € ô ˆ4ÔØ×ÑÔØ€Kr-   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r"   r3   r   r#   r   Úother_fileszIterable[StrPath]r&   r%   r'   ú2tuple[ConfigMetadataHandler, ConfigOptionsHandler]r)   )r*   s   "r+   r,   r,   U   s:   € ÷ ñ Ø
ðàðð #ðð ð	ð
 8ñr-   c                ó^  € ^ RI Hp \        P                  P	                  V4      p\        P                  P                  V4      '       g   \        RV R24      h\        P                  ! 4       p\        P                  ! \        P                  P                  V4      4       . VOVNp VP                  V \        \        \        ,          V4      R7       \        W P                  VR7      pV P!                  4        \        P                  ! V4       V#   \        P                  ! T4       i ; i)zHRead configuration from ``filepath`` and applies to the ``dist`` object.)Ú_DistributionzConfiguration file z does not exist.)r4   )r&   )r/   r?   ÚosÚpathÚabspathÚisfiler   ÚgetcwdÚchdirÚdirnameÚparse_config_filesr   ÚlistÚstrÚparse_configurationÚcommand_optionsÚ_finalize_license_files)r3   r#   r<   r&   r?   Úcurrent_directoryr4   r5   s   &&&&    r+   r1   r1   U   sà   € õ .ä�w‰w�‰˜xÓ(€Hä�7‰7�>‰>˜(×#Ò#ÜÐ-¨h¨ZÐ7GÐHÓIÐIäŸ	š	›ÐÜ‡H‚HŒR�W‰W�_‰_˜XÓ&Ô'Ø(�+Ð(˜xÐ(€Ið$à×(Ñ(¨¼¼dÄ3½iÈÓ9SÐ(ÔTÜ&Ø×&Ñ&Ð=Qô
ˆð 	×$Ñ$Ô&ä
�ŠÐ"Ô#à€Oøô 	�ŠÐ"Õ#ús   Â)AD ÄD,c               ó    € V ^8„  d   QhRRRR/# )r"   Ú
target_objz#Distribution | DistributionMetadataÚkeyrI   r)   )r*   s   "r+   r,   r,   t   s   € ÷ 	ñ 	Ð?ð 	Àcñ 	r-   c                óh   € RV 2p\         P                  ! \        W4      p\        WV4      pV! 4       # )z�
Given a target object and option key, get that option from
the target object, either through a get_{key} method or
from an attribute directly.
Úget_)Ú	functoolsr   Úgetattr)rO   rP   Úgetter_nameÚby_attributeÚgetters   &&   r+   Ú_get_optionrX   t   s4   € ð ˜˜�,€KÜ×$Ò$¤W¨jÓ>€LÜ�Z¨lÓ;€FÙ‹8€Or-   c               ó    € V ^8„  d   QhRRRR/# )r"   r5   zKIterable[ConfigHandler[Distribution] | ConfigHandler[DistributionMetadata]]r'   r(   r)   )r*   s   "r+   r,   r,   €   s    € ÷ ñ ððð 
ñ	r-   c                ó²   € \        \        4      pV  FA  pVP                   F.  p\        VP                  V4      pWAVP
                  ,          V&   K0  	  KC  	  V# )z¯Returns configuration data gathered by given handlers as a dict.

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

:rtype: dict
)r   r(   Úset_optionsrX   rO   Úsection_prefix)r5   Úconfig_dictÚhandlerÚoptionÚvalues   &    r+   r2   r2   €   sU   € ô $¤DÓ)€KãˆØ×)Ô)ˆFÜ × 2Ñ 2°FÓ;ˆEØ:?˜×.Ñ.Õ/°Ó7ó *ñ ð
 Ðr-   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r"   Údistributionr   rK   r   r&   r%   r'   r=   r)   )r*   s   "r+   r,   r,   –   s0   € ÷ +ñ +Øð+à&ð+ð ð+ð 8ñ	+r-   c           
     óà  € \         P                  ! V 4      ;_uu_ 4       p\        V VVV4      pVP                  4        V P                  '       g   VP                  V n        \        V P                  VVVV P                  V P                  4      pVP                  4        V P                  P                  VP                  VP                  4       RRR4       WT3#   + '       g   i     XX3# ; i)aª  Performs additional parsing of configuration options
for a distribution.

Returns a list of used option handlers.

:param Distribution distribution:
:param dict command_options:
:param bool ignore_option_errors: Whether to silently ignore
    options, values of which could not be resolved (e.g. due to exceptions
    in directives such as file:, attr:, etc.).
    If False exceptions are propagated as expected.
:rtype: list
N)
r   ÚEnsurePackagesDiscoveredÚConfigOptionsHandlerÚparseÚpackage_dirÚConfigMetadataHandlerÚmetadataÚsrc_rootÚ_referenced_filesÚupdate)rb   rK   r&   Úensure_discoveredÚoptionsÚmetas   &&&   r+   rJ   rJ   –   sÕ   € ô$ 
×	(Ò	(¨×	6Ô	6Ð:KÜ&ØØØ Øó	
ˆð 	�‰ŒØ×'×'Ð'Ø'.×':Ñ':ˆLÔ$ä$Ø×!Ñ!ØØ ØØ×$Ñ$Ø×!Ñ!ó
ˆð 	�
‰
ŒØ×&Ñ&×-Ñ-Ø×%Ñ% t×'=Ñ'=ô	
÷+ 
7ð2 ˆ=Ð÷3 
7Ö	6ð2 �ˆ=Ðús   ŸB0CÃC-	c               ó$   € V ^8„  d   QhRRRRRR/# )r"   ÚlabelrI   Ú
orig_valueÚparsedrH   r)   )r*   s   "r+   r,   r,   Ä   s!   € ÷ 2ñ 2°ð 2À#ð 2Ètñ 2r-   c                óø  a€ RV9   g   \        S4      ^8w  d   R# \        4       P                  4       p \        S^,          4      pVP                  V9   d!   \
        P                  V S^,          R7       R# R#   \         dv   p\        ;QJ d    T3R lT 4       F  '       g   K   RM	  RM! T3R lT 4       4      '       d+   \
        P                  T S^,          R7      p\        T4      Th Rp?R# Rp?ii ; i)a=  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)ÚfieldÚreqc              3  óT   <"  € T F  pS^,          P                  V4      x € K  	  R# 5i)é   N©Ú
startswith)Ú.0Úmarkerrs   s   & €r+   Ú	<genexpr>Ú8_warn_accidental_env_marker_misconfig.<locals>.<genexpr>ß   s#   øé € ÐB¹'°ˆv�a�y×#Ñ# F×+Ð+»'ùs   ƒ%(TF)
ÚlenÚ
marker_envÚkeysr   ÚnameÚ_AmbiguousMarkerÚemitr   ÚanyÚmessage)rq   rr   rs   Úmarkersrw   ÚexÚmsgs   &&f    r+   Ú%_warn_accidental_env_marker_misconfigr‹   Ä   sÃ   ø€ ð" ˆzÔœS ›[¨AÔ-Ùä‹l×ÑÓ!€Gð2Ü˜& �)Ó$ˆØ�8‰8�wÔÜ×!Ñ!¨°6¸!µ9Ð!Ö=ñ øäô 2ß‹3ÔB¹'ÓB�3�3Š3ÔB¹'ÓB×BÒBÜ"×*Ñ*°¸FÀ1½IÐ*ÓFˆCÜ$ SÓ)¨rÐ1õ Cûð2ús$   ´AA9 Á9C9ÂC4Â&C4Ã*C4Ã4C9c                  ó$  € ] tR t^ät$ RtR]R&    / tR]R&    R R lt]R R	 l4       t	]
R
 4       tR R lt]RR l4       t]R 4       t]R 4       t]R 4       tR R ltR R lt]R 4       t]R 4       t]R R l4       tR R ltR R ltR tRtR# )!ÚConfigHandlerz1Handles metadata supplied in configuration files.rI   r\   zClassVar[dict[str, str]]Úaliasesc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r"   rO   r    rn   r   rm   úexpand.EnsurePackagesDiscoveredr'   ÚNoner)   )r*   s   "r+   r,   ÚConfigHandler.__annotate__ô   s2   € ÷ ñ àðð #ðð
 ;ðð 
ñr-   c                	ó¬   € W0n         Wn        \        V P                  V4      4      V n        . V n        W@n        \        \        ,          ! 4       V n	        R # ©N)
r&   rO   r(   Ú_section_optionsÚsectionsr[   rm   ÚsetrI   rk   )ÚselfrO   rn   r&   rm   s   &&&&&r+   Ú__init__ÚConfigHandler.__init__ô   sG   € ð %9Ô!Ø",ŒÜ˜T×2Ñ2°7Ó;Ó<ˆŒØ&(ˆÔØ!2ÔÜ!$¤S¦£ˆÔñ	r-   c               ó    € V ^8„  d   QhRRRR/# )r"   rn   r   r'   z*Iterator[tuple[str, SingleCommandOptions]]r)   )r*   s   "r+   r,   r’     s   € ÷ *ñ *Ø'ð*à	3ñ*r-   c              #  	óº   "  € VP                  4        FB  w  r#VP                  V P                  4      w  rEpV'       d   K-  VP                  R 4      V3x € KD  	  R# 5i)Ú.N)ÚitemsÚ	partitionr\   Úlstrip)Úclsrn   Ú	full_namer`   ÚpreÚ_seprƒ   s   &&     r+   r•   ÚConfigHandler._section_options  sN   é € ð !(§¡¦ÑˆIØ'×1Ñ1°#×2DÑ2DÓE‰OˆC�tßÙØ—+‘+˜cÓ" EÐ)Ô)ó	 !0ùs   ‚AAc                óF   € \        V P                  P                   R24      h)ú.Metadata item name to parser function mapping.z must provide .parsers property)ÚNotImplementedErrorÚ	__class__Ú__name__)r˜   s   &r+   ÚparsersÚConfigHandler.parsers  s'   € ô "Ø�~‰~×&Ñ&Ð'Ð'FÐGó
ð 	
r-   c               ó   € V ^8„  d   QhRR/# ©r"   r'   r‘   r)   )r*   s   "r+   r,   r’     s   € ÷ -ñ -°ñ -r-   c                	óö  € V P                   pV P                  P                  W4      p \        W14      pT'       d   R #  T P                  P                  TR 4      ! T4      p\        P                  ! TP                  T4      p\        TRT 2T4      pT! T4       T P                  P                  T4       R #   \         d   p\        T4      ThR p?ii ; i  \        3T P                  ,           d     R # i ; i)Nc                ó   € V # r”   r)   )Úxs   &r+   Ú<lambda>Ú+ConfigHandler.__setitem__.<locals>.<lambda>&  s   € ¹Qr-   Úset_)rO   rŽ   ÚgetrT   ÚAttributeErrorÚKeyErrorr«   Ú	Exceptionr&   rS   r   Ú__setattr__r[   Úappend)	r˜   Úoption_namer`   rO   Úcurrent_valueÚers   Úsimple_setterÚsetters	   &&&      r+   Ú__setitem__ÚConfigHandler.__setitem__  sá   € Ø—_‘_ˆ
ð —l‘l×&Ñ& {Ó@ˆð	/Ü# JÓ<ˆM÷ áð	Ø—\‘\×%Ñ% k±;Ô?ÀÓFˆFô "×)Ò)¨*×*@Ñ*@À+ÓNˆÜ˜ t¨K¨=Ð%9¸=ÓIˆÙˆvŒà×Ñ×Ñ Ö,øô! ô 	/Ü˜;Ó'¨QÐ.ûð	/ûô ˆ|˜d×7Ñ7Õ7ô 	Úð	ús(   ©B8 ¿#C Â8CÃCÃCÃC8Ã7C8c                óü   € \        V\        4      '       d   V# RV9   d   VP                  4       pMVP                  V4      pV Uu. uF*  q3P	                  4       '       g   K  VP	                  4       NK,  	  up# u upi )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
ru   )Ú
isinstancerH   Ú
splitlinesÚsplitÚstrip)r¡   r`   Ú	separatorÚchunks   &&& r+   Ú_parse_listÚConfigHandler._parse_list0  s_   € ô �eœT×"Ò"ØˆLà�5Œ=Ø×$Ñ$Ó&‰Eà—K‘K 	Ó*ˆEá+0ÓB©5 %·K±K·M”�—‘–©5ÑBÐBùÒBs   ÁA9Á"A9c                óÎ   € Rp/ pV P                  V4       FK  pVP                  V4      w  rVpWb8w  d   \        RV 24      hVP                  4       W5P                  4       &   KM  	  V# )z8Represents value as a dict.

:param value:
:rtype: dict
Ú=z&Unable to parse option value to dict: )rÉ   rŸ   r   rÆ   )r¡   r`   rÇ   ÚresultÚlinerP   ÚsepÚvals   &&      r+   Ú_parse_dictÚConfigHandler._parse_dictD  sg   € ð ˆ	ØˆØ—O‘O EÖ*ˆDØ ŸN™N¨9Ó5‰MˆC�cØÔÜ!Ð$JÈ5È'Ð"RÓSÐSØ"%§)¡)£+ˆF—9‘9“;Óñ	 +ð ˆr-   c                ó,   € VP                  4       pVR9   # )z9Represents value as boolean.

:param value:
:rtype: bool
)Ú1ÚtrueÚyes)Úlower©r¡   r`   s   &&r+   Ú_parse_boolÚConfigHandler._parse_boolU  s   € ð —‘“ˆØÐ,Ñ,Ð,r-   c                ó   a€ V3R lpV# )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                ó€   <€ R pV P                  V4      '       d   \        RS R24      h\        P                  ! V 4      # )úfile:z"Only strings are accepted for the z field, files are not accepted)r{   Ú
ValueErrorr   ÚStr)r`   Úexclude_directiverP   s   & €r+   ÚparserÚ3ConfigHandler._exclude_files_parser.<locals>.parserk  sJ   ø€ Ø 'ÐØ×ÑÐ 1×2Ò2Ü Ø8¸¸ð >-ð -óð ô —;’;˜uÓ%Ð%r-   r)   )r¡   rP   rá   s   &f r+   Ú_exclude_files_parserÚ#ConfigHandler._exclude_files_parser_  s   ø€ õ	&ð ˆr-   c               ó   € V ^8„  d   QhRR/# )r"   Úroot_dirúStrPath | Noner)   )r*   s   "r+   r,   r’   v  s   € ÷ Cñ C¨>ñ Cr-   c                óš  € Rp\        V\        4      '       g   V# VP                  V4      '       g   \        P                  ! V4      # V\        V4      R pVP                  R4       Uu. uF  qUP                  4       NK  	  ppV P                  P                  V4       \        P                  ! \        P                  ! Wb4      4      # u upi )a  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Ý   NÚ,)rÃ   rI   r{   r   rß   r€   rÅ   rÆ   rk   rl   r   Ú
read_files)r˜   r`   ræ   Úinclude_directiveÚspecrA   Ú	filepathss   &&&    r+   Ú_parse_fileÚConfigHandler._parse_filev  s£   € ð $Ðä˜%¤×%Ò%ØˆLà×ÑÐ 1×2Ò2Ü—;’;˜uÓ%Ð%à”SÐ*Ó+Ð-Ð.ˆØ.2¯j©j¸¬oÓ>©o d—Z‘Z–\©oˆ	Ð>Ø×Ñ×%Ñ% iÔ0ä�{Š{œ6×,Ò,¨YÓAÓBÐBùò ?s   Á)Cc               ó   € V ^8„  d   QhRR/# )r"   ræ   r   r)   )r*   s   "r+   r,   r’   ‘  s   € ÷ Bñ B¸ñ Br-   c                óü   € RpVP                  V4      '       g   \        P                  ! V4      # VP                  VR4      pVP	                  V P
                  P                  4       \        P                  ! WRV4      # )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ß   Úreplacerl   rm   rg   r   Ú	read_attr)r˜   r`   rg   ræ   Úattr_directiveÚ	attr_descs   &&&&  r+   Ú_parse_attrÚConfigHandler._parse_attr‘  sh   € ð !ˆØ×Ñ ×/Ò/Ü—;’;˜uÓ%Ð%à—M‘M .°"Ó5ˆ	ð 	×Ñ˜4×1Ñ1×=Ñ=Ô>Ü×Ò 	¸ÓAÐAr-   c                ó   a€ V3R lpV# )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                ó.   <€ T pS F  pV! V4      pK  	  V# r”   r)   )r`   rs   ÚmethodÚparse_methodss   &  €r+   rf   Ú1ConfigHandler._get_parser_compound.<locals>.parse¯  s"   ø€ ØˆFã'�Ù ›’ñ (ð ˆMr-   r)   )r¡   rü   rf   s   &j r+   Ú_get_parser_compoundÚ"ConfigHandler._get_parser_compound¥  s   ø€ õ	ð ˆr-   c                óV   € / pVP                  4        F  w  pw  rVV! WF4      W4&   K  	  V# )zÚParses section options into a dictionary.

Applies a given parser to each option in a section.

:param dict section_options:
:param callable values_parser: function with 2 args corresponding to key, value
:rtype: dict
)rž   )r¡   Úsection_optionsÚvalues_parserr`   rP   Ú_rÐ   s   &&&    r+   Ú_parse_section_to_dict_with_keyÚ-ConfigHandler._parse_section_to_dict_with_key¹  s3   € ð ˆØ,×2Ñ2Ö4‰MˆC‘�!Ù& sÓ0ˆE‹Jñ 5àˆr-   Nc                óH   a€ S'       d   V3R lMR pV P                  W4      # )zØ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! V4      # r”   r)   )r  Úvr  s   &&€r+   r²   Ú6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ò  s
   ø€ ™}¨QÔ/r-   c                ó   € V# r”   r)   )r  r  s   &&r+   r²   r	  Ò  s   € ÑUVr-   )r  )r¡   r  r  rá   s   &&f r+   Ú_parse_section_to_dictÚ$ConfigHandler._parse_section_to_dictÈ  s!   ø€ ÷ 5BÕ/ÉˆØ×2Ñ2°?ÓKÐKr-   c               ó   € V ^8„  d   QhRR/# r®   r)   )r*   s   "r+   r,   r’   Õ  s   € ÷ #ñ #°ñ #r-   c                óÄ   € VP                  4        F7  w  pw  r4\        P                  ! \        4      ;_uu_ 4        W@V&   RRR4       K9  	  R#   + '       g   i     KN  ; i)zAParses configuration file section.

:param dict section_options:
N)rž   Ú
contextlibÚsuppressr·   )r˜   r  rƒ   r  r`   s   &&   r+   Úparse_sectionÚConfigHandler.parse_sectionÕ  sH   € ð
 !0× 5Ñ 5Ö 7ÑˆD‘*�1Ü×$Ò$¤X×.Õ.à"�T‘
÷ /Ñ.ó !8ß.×.Ð.ús   »AÁAc               ó   € V ^8„  d   QhRR/# r®   r)   )r*   s   "r+   r,   r’   ß  s   € ÷ 3ñ 3�tñ 3r-   c                óú   € V P                   P                  4        F\  w  rRpV'       d   RV 2p\        V RV 2P                  RR4      R4      pVf   \	        RV P
                   RV R24      hV! V4       K^  	  R# )	zDParses configuration file items from one
or more related sections.

rò   r  r  r�   Ú__Nz*Unsupported distribution option section: [Ú])r–   rž   rT   ró   r   r\   )r˜   Úsection_namer  Úmethod_postfixÚsection_parser_methods   &    r+   rf   ÚConfigHandler.parseß  s™   € ð
 .2¯]©]×-@Ñ-@Ö-BÑ)ˆLØˆNßØ#$ \ NÐ!3�ä5<Øà Ð/Ð0×8Ñ8¸¸dÓCØó	6Ð!ð %Ò,Ü!ðØ×+Ñ+Ð,¨A¨l¨^¸1ð>óð ñ
 " /Ö2ó% .Cr-   c                ó8   aaa€ \        S4      VVV3R l4       pV# )zŠthis function will wrap around parameters that are deprecated

:param msg: deprecation message
:param func: function to be wrapped around
c                 óh   <€ SP                  R ^4       \        P                  ! RS3/ SB  S! V / VB # )Ú
stacklevelz Deprecated config in `setup.cfg`)Ú
setdefaultÚ_DeprecatedConfigr…   )ÚargsÚkwargsÚfuncÚkwrŠ   s   *,€€€r+   Úconfig_handlerÚ@ConfigHandler._deprecated_config_handler.<locals>.config_handlerÿ  s7   ø€ à�M‰M˜,¨Ô*Ü×"Ò"Ð#EÀsÑQÈbÒQÙ˜Ð( Ñ(Ð(r-   )r   )r˜   r"  rŠ   r#  r$  s   &ffl r+   Ú_deprecated_config_handlerÚ(ConfigHandler._deprecated_config_handlerø  s#   ú€ ô 
ˆt‹ö	)ó 
ð	)ð
 Ðr-   )rk   rm   r&   r–   r[   rO   )ré   r”   )rª   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__rŽ   r™   Úclassmethodr•   Úpropertyr«   rÀ   rÉ   rÑ   rÙ   rã   rî   r÷   rþ   r  r  r  rf   r&  Ú__static_attributes__r)   r-   r+   r�   r�   ä   sÿ   ‡ Ù;àÓðð
 )+€GÐ%Ó*ðõð" ô*ó ð*ð ñ
ó ð
õ-ð4 óCó ðCð& ñó ðð  ñ-ó ð-ð ñó ðõ,Cõ6Bð( ñó ðð& ñó ðð ó
Ló ð
Lõ#õ3ö2r-   r�   c                  ó~   a € ] tR tRtRtRRRRRRR	R
/tRt R]P                  3R V 3R lllt	]
R 4       tR tRtV ;t# )rh   i  ri   Ú	home_pageÚurlÚsummaryÚdescriptionÚ
classifierÚclassifiersÚplatformÚ	platformsFNc               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )r"   rO   r   rn   r   r&   r%   rm   r�   rg   zdict | Noneræ   rç   r'   r‘   r)   )r*   s   "r+   r,   Ú"ConfigMetadataHandler.__annotate__  sP   € ÷ !ñ !à(ð!ð #ð!ð #ð	!ð
 ;ð!ð !ð!ð !ð!ð 
ñ!r-   c                	ó@   <€ \         SV `  WW44       WPn        W`n        R # r”   )Úsuperr™   rg   ræ   )r˜   rO   rn   r&   rm   rg   ræ   r©   s   &&&&&&&€r+   r™   ÚConfigMetadataHandler.__init__  s    ø€ ô 	‰Ñ˜Ð.BÔVØ&ÔØ Žr-   c                óT  € V P                  V P                  \        P                  4      pV P                  V P                  \        P
                  4      p\        V P                  V P                  R7      pV P                  p/ R\        P                  bR\        P                  bR\        P                  bR\        P                  bRVbRVbRVbR	VbR
V P                  W14      bRV! R4      bRVbRVbRVbR\        P                  bRV P                  bR\        P                  bRVb# )r§   ©ræ   ÚauthorÚauthor_emailÚ
maintainerÚmaintainer_emailr8  ÚkeywordsÚprovidesÚ	obsoletesr6  ÚlicenseÚlicense_filesr4  Úlong_descriptionÚlong_description_content_typeÚversionr2  Úproject_urls)rþ   rÉ   r   ÚListrÑ   ÚDictr   rî   ræ   rã   rß   Ú_parse_version)r˜   Úparse_list_staticÚparse_dict_staticÚ
parse_fileÚexclude_files_parsers   &    r+   r«   ÚConfigMetadataHandler.parsers%  sg  € ð !×5Ñ5°d×6FÑ6FÌÏÉÓUÐØ ×5Ñ5°d×6FÑ6FÌÏÉÓUÐÜ˜T×-Ñ-¸¿¹ÔFˆ
Ø#×9Ñ9Ðð
Ø”g—k‘kð
àœGŸK™Kð
ð œ'Ÿ+™+ð
ð ¤§¡ð	
ð
 Ð*ð
ð Ð)ð
ð Ð)ð
ð Ð*ð
ð ˜4×4Ñ4°ZÓSð
ð Ñ+¨IÓ6ð
ð Ð.ð
ð ˜:ð
ð  
ð
ð ,¬W¯[©[ð
ð �t×*Ñ*ð
ð  ”7—;‘;ð!
ð" Ð-ð#
ð 	
r-   c                ó>  € V P                  WP                  4      pW!8w  d   VP                  4       p \        V4       V# \        P                  ! V P                  WP                  V P                  4      4      #   \         d   p\        RT RT 24      ThRp?ii ; i)z;Parses `version` option value.

:param value:
:rtype: str

zVersion loaded from z does not comply with PEP 440: N)
rî   ræ   rÆ   r   r   r   r   rK  r÷   rg   )r˜   r`   rK  r½   s   &&  r+   rO  Ú$ConfigMetadataHandler._parse_versionA  s�   € ð ×"Ñ" 5¯-©-Ó8ˆàÔØ—m‘m“oˆGðÜ˜Ô ð ˆNä�~Š~˜d×.Ñ.¨u×6FÑ6FÈÏÉÓVÓWÐWøô "ô Ü!Ø*¨5¨'ð 2,Ø,3¨9ð6óð ðûðús   ³A: Á:BÂBÂB©rg   ræ   )rª   r(  r)  r*  r\   rŽ   Ústrict_moder@   Úcurdirr™   r.  r«   rO  r/  Ú__classcell__©r©   s   @r+   rh   rh     sg   ø† Ø€Nð 	�UØ�=Ø�mØ�Kð	€Gð €Kðð $(Ø#%§9¡9÷!ò !ð ñ
ó ð
÷6Xð Xr-   rh   c                  ó¸   a € ] tR tRtRtR V 3R llt]R 4       tR tR R lt	]
R	 4       tR
 tR tR tR R ltR tR R ltR R ltR R ltR R ltRtV ;t# )re   i[  rn   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r"   rO   r   rn   r   r&   r%   rm   r�   r'   r‘   r)   )r*   s   "r+   r,   Ú!ConfigOptionsHandler.__annotate__^  s<   € ÷ 	.ñ 	.à ð	.ð #ð	.ð #ð		.ð
 ;ð	.ð 
ñ	.r-   c                	óX   <€ \         SV `  WW44       VP                  V n        / V n        R # r”   )r<  r™   rj   ræ   rg   )r˜   rO   rn   r&   rm   r©   s   &&&&&€r+   r™   ÚConfigOptionsHandler.__init__^  s*   ø€ ô 	‰Ñ˜Ð.BÔVØ"×+Ñ+ˆŒØ+-ˆÖr-   c                	ó(   € V P                  VR R7      # )Ú;)rÇ   )rÉ   rØ   s   &&r+   Ú_parse_list_semicolonÚ*ConfigOptionsHandler._parse_list_semicoloni  s   € à�‰˜u°ˆÓ4Ð4r-   c                	ó:   € V P                  WP                  R 7      # )r?  )rî   ræ   )r˜   r`   s   &&r+   Ú_parse_file_in_rootÚ(ConfigOptionsHandler._parse_file_in_rootm  s   € Ø×Ñ ·±ÐÓ>Ð>r-   c               ó    € V ^8„  d   QhRRRR/# )r"   rq   rI   r`   r)   )r*   s   "r+   r,   r^  p  s   € ÷ Qñ Q¨cð Q¸#ñ Qr-   c                	ó”   € V P                  V P                  V4      4      p\        WV4       \        P                  ! R  V 4       4      # )c              3  óV   "  € T F  qP                  R 4      '       d   K  Vx € K!  	  R# 5i)Ú#Nrz   )r|   rÎ   s   & r+   r~   Ú@ConfigOptionsHandler._parse_requirements_list.<locals>.<genexpr>v  s   é € ÐP©V T¿?¹?È3×;OŸDšD«Vùs   ‚)Ÿ
))rc  rf  r‹   r   rM  )r˜   rq   r`   rs   s   &&& r+   Ú_parse_requirements_listÚ-ConfigOptionsHandler._parse_requirements_listp  s>   € à×+Ñ+¨D×,DÑ,DÀUÓ,KÓLˆÜ-¨e¸FÔCô �|Š|ÑP©VÓPÓPÐPr-   c                ó:  € V P                   pV P                  pV P                  pRVRVRV P                  RVRVRVRV P	                  VR4      R	\        V P                  R	4      R
V P                  RV P                  RV P                  RVR\        P                  RV/# )r§   Úzip_safeÚinclude_package_datarg   ÚscriptsÚeager_resourcesÚdependency_linksÚnamespace_packageszeThe namespace_packages parameter is deprecated, consider using implicit namespaces instead (PEP 420).Úinstall_requiresÚsetup_requiresÚpackagesÚentry_pointsÚ
py_modulesÚpython_requiresÚcmdclass)rÉ   rÙ   Ú_parse_cmdclassrÑ   r&  r   rm  rc  Ú_parse_packagesrf  r   ÚSpecifierSet)r˜   Ú
parse_listÚ
parse_boolÚparse_cmdclasss   &   r+   r«   ÚConfigOptionsHandler.parsersy  s¾   € ð ×%Ñ%ˆ
Ø×%Ñ%ˆ
Ø×-Ñ-ˆð ˜
Ø" JØ˜4×+Ñ+Ø�zØ˜zØ 
Ø  $×"AÑ"AØðHó#ð ¤Ø×-Ñ-Ð/Aó!ð ˜d×8Ñ8Ø˜×,Ñ,Ø˜D×4Ñ4Ø˜*Øœw×3Ñ3Ø˜ð+
ð 	
r-   c                	óŽ   € V P                   P                  p\        P                  ! V P	                  V4      W P
                  4      # r”   )rm   rg   r   r|  rÑ   ræ   )r˜   r`   rg   s   && r+   r}  Ú$ConfigOptionsHandler._parse_cmdclass˜  s3   € Ø×,Ñ,×8Ñ8ˆÜ�Š˜t×/Ñ/°Ó6¸Ç]Á]ÓSÐSr-   c                ó<  € RR.pVP                  4       pW29  d   V P                  V4      # V P                  V P                  P	                  R/ 4      4      pVP                  W2^,          8H  V P                  V P                  R7       \        P                  ! R/ VB # )z<Parses `packages` option value.

:param value:
:rtype: list
zfind:zfind_namespace:zpackages.find)Ú
namespacesræ   Úfill_package_dirr)   )
rÆ   rÉ   Úparse_section_packages__findr–   rµ   rl   ræ   rg   r   Úfind_packages)r˜   r`   Úfind_directivesÚtrimmed_valueÚfind_kwargss   &&   r+   r~  Ú$ConfigOptionsHandler._parse_packagesœ  s�   € ð #Ð$5Ð6ˆØŸ™›ˆàÔ/Ø×#Ñ# EÓ*Ð*ð ×7Ñ7Ø�M‰M×Ñ˜o¨rÓ2ó
ˆð 	×ÑØ%¸Õ);Ñ;Ø—]‘]Ø!×-Ñ-ð 	ô 	
ô ×#Ò#Ñ2 kÑ2Ð2r-   c                óü   € V P                  WP                  4      p. ROpVP                  4        UUu/ uF  w  rEWC9   g   K  V'       g   K  WEbK  	  pppVP                  R4      pVe   V^ ,          VR&   V# u uppi )z„Parses `packages.find` configuration file section.

To be used in conjunction with _parse_packages().

:param dict section_options:
Úwhere)r�  ÚincludeÚexclude)r  rÉ   rž   rµ   )r˜   r  Úsection_dataÚ
valid_keysÚkr  r�  r�  s   &&      r+   r‰  Ú1ConfigOptionsHandler.parse_section_packages__findµ  s{   € ð ×2Ñ2°?×DTÑDTÓUˆâ4ˆ
Ø(4×(:Ñ(:Ô(<ÔVÑ(<¡ ÀÁ”tÔTU”t�q’tÑ(<ˆÑVà—‘ Ó(ˆØÒØ#(¨¥8ˆK˜Ñ àÐùó Ws   ³
A8ÁA8ÁA8c               ó   € V ^8„  d   QhRR/# r®   r)   )r*   s   "r+   r,   r^  Ç  s   € ÷ &ñ &¸Tñ &r-   c                óD   € V P                  WP                  4      pW R&   R# )zPParses `entry_points` configuration file section.

:param dict section_options:
ry  N)r  rÉ   ©r˜   r  rs   s   && r+   Úparse_section_entry_pointsÚ/ConfigOptionsHandler.parse_section_entry_pointsÇ  s"   € ð
 ×,Ñ,¨_×>NÑ>NÓOˆØ%ˆ^Ór-   c                	ód   € V P                  WP                  4      p\        P                  ! V4      # r”   )r  rÉ   r   Úcanonic_package_data)r˜   r  Úpackage_datas   && r+   Ú_parse_package_dataÚ(ConfigOptionsHandler._parse_package_dataÏ  s)   € Ø×2Ñ2°?×DTÑDTÓUˆÜ×*Ò*¨<Ó8Ð8r-   c               ó   € V ^8„  d   QhRR/# r®   r)   )r*   s   "r+   r,   r^  Ó  s   € ÷ Iñ I¸Tñ Ir-   c                ó.   € V P                  V4      V R&   R# )zPParses `package_data` configuration file section.

:param dict section_options:
rž  N©rŸ  ©r˜   r  s   &&r+   Úparse_section_package_dataÚ/ConfigOptionsHandler.parse_section_package_dataÓ  s   € ð
  $×7Ñ7¸ÓHˆˆ^Ór-   c               ó   € V ^8„  d   QhRR/# r®   r)   )r*   s   "r+   r,   r^  Ú  s   € ÷ Qñ QÀTñ Qr-   c                ó.   € V P                  V4      V R&   R# )zXParses `exclude_package_data` configuration file section.

:param dict section_options:
Úexclude_package_dataNr£  r¤  s   &&r+   Ú"parse_section_exclude_package_dataÚ7ConfigOptionsHandler.parse_section_exclude_package_dataÚ  s   € ð
 (,×'?Ñ'?ÀÓ'PˆÐ#Ó$r-   c               ó   € V ^8„  d   QhRR/# r®   r)   )r*   s   "r+   r,   r^  á  s   € ÷ 
6ñ 
6¸tñ 
6r-   c                óf   a € S P                  VV 3R l4      p\        P                  ! V4      S R&   R# )zRParses `extras_require` configuration file section.

:param dict section_options:
c                ó0   <€ SP                  R V  R2V4      # )zextras_require[r  )rm  )r•  r  r˜   s   &&€r+   r²   ÚCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>è  s   ø€ ˜×6Ñ6¸ÈÈÈ1Ð7MÈqÔQr-   Úextras_requireN)r  r   rN  r™  s   f& r+   Úparse_section_extras_requireÚ1ConfigOptionsHandler.parse_section_extras_requireá  s1   ø€ ð
 ×5Ñ5ØÜQó
ˆô
 ")§¢¨fÓ!5ˆÐÓr-   c               ó   € V ^8„  d   QhRR/# r®   r)   )r*   s   "r+   r,   r^  î  s   € ÷ Nñ N¸4ñ Nr-   c                ó‚   € V P                  WP                  4      p\        P                  ! W P                  4      V R&   R# )zNParses `data_files` configuration file section.

:param dict section_options:
Ú
data_filesN)r  rÉ   r   Úcanonic_data_filesræ   r™  s   && r+   Úparse_section_data_filesÚ-ConfigOptionsHandler.parse_section_data_filesî  s3   € ð
 ×,Ñ,¨_×>NÑ>NÓOˆÜ#×6Ò6°v¿}¹}ÓMˆˆ\Ór-   rW  )rª   r(  r)  r*  r\   r™   r-  rc  rf  rm  r.  r«   r}  r~  r‰  rš  rŸ  r¥  rª  r±  r·  r/  rZ  r[  s   @r+   re   re   [  s|   ø† Ø€N÷	.ð 	.ð ñ5ó ð5ò?õQð ñ
ó ð
ò<Tò3ò2õ$&ò9õIõQõ
6÷Nó Nr-   re   c                  ó2   € ] tR tRtRtRtRt]R 4       tRt	R# )r„   i÷  zAmbiguous requirement marker.zá
    One of the parsed requirements in `{field}` looks like a valid environment marker:

        {req!r}

    Please make sure that the configuration file is correct.
    You can use dangling lines to avoid this problem.
    z'userguide/declarative_config.html#opt-2c                	óp   € R V P                    2pV P                  V P                  V P                  W!R7      # )z%https://setuptools.pypa.io/en/latest/)Úsee_urlÚformat_args)Ú	_SEE_DOCSÚ_formatÚ_SUMMARYÚ_DETAILS)r¡   r#  Údocss   &, r+   r‡   Ú_AmbiguousMarker.message  s/   € à6°s·}±}°oÐFˆØ�{‰{˜3Ÿ<™<¨¯©¸tˆ{ÓTÐTr-   r)   N)
rª   r(  r)  r*  r¿  rÀ  r½  r-  r‡   r/  r)   r-   r+   r„   r„   ÷  s+   † Ø.€Hð€Hð :€Ið ñUó ôUr-   r„   c                  ó   € ] tR tRtRtRtR# )r  i  z!userguide/declarative_config.htmlr)   N)rª   r(  r)  r*  r½  r/  r)   r-   r+   r  r    s   † Ø3„Ir-   r  )FF)r)   F)F)BÚ__conditional_annotations__r+  Ú
__future__r   r  rS   r@   Úcollectionsr   Úcollections.abcr   r   r   r   Útypingr   r	   r
   r   r   r   r   Úpackaging.markersr   r�   Úpackaging.requirementsr   r   Úpackaging.versionr   r   rò   r   Ú_pathr   Úerrorsr   r   Úwarningsr   r   Útyping_extensionsr   r/   r   Údistutils.distr   r(   rI   Útupler   r,  r   r    r6   r:   r1   rX   r2   rJ   r‹   r�   rh   re   r„   r  )rÄ  s   @r+   Ú<module>rÒ     s  øðô	õ #ã Û Û 	Ý #ß .ß $ß Q× QÑ Qå ?ß Bß 5å Ý ß +Ý 3Ý çÝ+å,å3à"& s¨E°#°s°(­OÐ';Õ"<Ð �iÓ <ðð
  $ CÐ)=Ð$=Õ>Ð �9Ó >Ø Ù	�˜>Ð+AÓ	B€÷+õ4÷õ>	õ÷,+õ\2ô@a�G˜F•Oô aôH	PX˜MÐ*@ÕAô PXôfYN˜=¨Õ8ô YNôxUÐ3ô Uô(4Ð4ö 4r-   