+
    Ž°³j�h  ã                  ó”  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
 ^ RIHtHtHt ^ RIHtHt ^ RI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]2]1]3,          3,          t3R]4R&    ]0]1]33,          t5R]4R&    ]! RRR4      t6R1R R llt7R R lt8R2R R llt9R R  lt:R! R" lt;R3R# R$ llt<R% R& lt= ! R' R(]]6,          4      t> ! R) R*]>R,          4      t? ! R+ R,]>R,          4      t@ ! R- R.])4      tA ! R/ R0])4      tBR# )4a<  
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)Úabstractmethod)Údefaultdict)ÚCallableÚIterableÚIterator)ÚpartialÚwraps)ÚTYPE_CHECKINGÚAnyÚ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   "Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/setuptools/config/setupcfg.pyÚ__annotate__r-   3   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_configurationr7   3   s7   € õ$ -á‹>€Dß,7�×&Ñ&Ô(¸R€IÜ�d iÓF€HÜ  Ó*Ð*r.   c               ó$   € V ^8„  d   QhRRRRRR/# )r#   r4   r   r$   r   r(   r*   )r+   s   "r,   r-   r-   M   s!   € ÷ ñ ˜lð °gð À,ñ r.   c                ó<   € \        W4       V P                  4        V # )zXApply the configuration from a ``setup.cfg`` file into an existing
distribution object.
)r2   Ú_finalize_requires)r4   r$   s   &&r,   Úapply_configurationr;   M   s   € ô ˆ4ÔØ×ÑÔØ€Kr.   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r#   r4   r   r$   r   Úother_fileszIterable[StrPath]r'   r&   r(   ú2tuple[ConfigMetadataHandler, ConfigOptionsHandler]r*   )r+   s   "r,   r-   r-   V   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.)r5   )r'   )r0   r@   ÚosÚpathÚabspathÚisfiler   ÚgetcwdÚchdirÚdirnameÚparse_config_filesr   ÚlistÚstrÚparse_configurationÚcommand_optionsÚ_finalize_license_files)r4   r$   r=   r'   r@   Úcurrent_directoryr5   r6   s   &&&&    r,   r2   r2   V   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ÚkeyrJ   r*   )r+   s   "r,   r-   r-   u   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)rP   rQ   Úgetter_nameÚby_attributeÚgetters   &&   r,   Ú_get_optionrY   u   s4   € ð ˜˜�,€KÜ×$Ò$¤W¨jÓ>€LÜ�Z¨lÓ;€FÙ‹8€Or.   c               ó    € V ^8„  d   QhRRRR/# )r#   r6   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_optionsrY   rP   Úsection_prefix)r6   Úconfig_dictÚhandlerÚoptionÚvalues   &    r,   r3   r3   �   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   rL   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)rc   rL   r'   Úensure_discoveredÚoptionsÚmetas   &&&   r,   rK   rK   —   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#   ÚlabelrJ   Ú
orig_valueÚparsedrI   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Úmarkerrt   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)rr   rs   rt   Úmarkersrx   Ú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                  ó4  € ] tR t^åt$ RtR]R&    / tR]R&    R R lt]R R	 l4       t	]
]R
 R l4       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.rJ   r]   úClassVar[dict[str, str]]Úaliasesc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r#   rP   r!   ro   r    rn   ú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'   rP   r)   Ú_section_optionsÚsectionsr\   rn   ÚsetrJ   rl   )ÚselfrP   ro   r'   rn   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#   ro   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)Úclsro   Ú	full_namera   Ú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               ó   € V ^8„  d   QhRR/# ©r#   r(   zdict[str, Callable]r*   )r+   s   "r,   r-   r”     s   € ÷ 
ñ 
Ð,ñ 
r.   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_)rP   r�   ÚgetrU   ÚAttributeErrorÚKeyErrorr¯   Ú	Exceptionr'   rT   r   Ú__setattr__r\   Úappend)	rš   Úoption_namera   rP   Úcurrent_valueÚert   Ú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
rv   )Ú
isinstancerI   Ú
splitlinesÚsplitÚstrip)r£   ra   Ú	separatorÚchunks   &&& r,   Ú_parse_listÚConfigHandler._parse_list2  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£   ra   rË   ÚresultÚlinerQ   ÚsepÚvals   &&      r,   Ú_parse_dictÚConfigHandler._parse_dictF  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£   ra   s   &&r,   Ú_parse_boolÚConfigHandler._parse_boolW  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)ra   Úexclude_directiverQ   s   & €r,   ÚparserÚ3ConfigHandler._exclude_files_parser.<locals>.parserm  sJ   ø€ Ø 'ÐØ×ÑÐ 1×2Ò2Ü Ø8¸¸ð >-ð -óð ô —;’;˜uÓ%Ð%r.   r*   )r£   rQ   rå   s   &f r,   Ú_exclude_files_parserÚ#ConfigHandler._exclude_files_parsera  s   ø€ õ	&ð ˆr.   c               ó   € V ^8„  d   QhRR/# )r#   Úroot_dirúStrPath | Noner*   )r+   s   "r,   r-   r”   x  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Ç   rJ   r|   r   rã   r�   rÉ   rÊ   rl   rm   r   Ú
read_files)rš   ra   rê   Úinclude_directiveÚspecrB   Ú	filepathss   &&&    r,   Ú_parse_fileÚConfigHandler._parse_filex  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ã   Úreplacerm   rn   rh   r   Ú	read_attr)rš   ra   rh   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*   )ra   rt   ÚmethodÚparse_methodss   &  €r,   rg   Ú1ConfigHandler._get_parser_compound.<locals>.parse±  s"   ø€ ØˆFã'�Ù ›’ñ (ð ˆMr.   r*   )r£   r   rg   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_parserra   rQ   Ú_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  ra   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    rU   r÷   r   r]   )rš   Úsection_namer  Úmethod_postfixÚsection_parser_methods   &    r,   rg   Ú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.   )rl   rn   r'   r˜   r\   rP   )rí   r–   )r®   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r�   r›   Úclassmethodr—   Úpropertyr   r¯   rÄ   rÍ   rÕ   rÝ   rç   rò   rû   r  r  r  r  rg   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]R&   Rt R]P                  3R V 3R lllt
]R R l4       tR tRtV ;t# )ri   i
  rj   Ú	home_pageÚurlÚsummaryÚdescriptionÚ
classifierÚclassifiersÚplatformÚ	platformsr�   r�   FNc               ó4   € V ^8„  d   QhRRRRRRRRR	R
RRRR/# )r#   rP   r   ro   r    r'   r&   rn   r’   rh   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›   rh   rê   )rš   rP   ro   r'   rn   rh   rê   r­   s   &&&&&&&€r,   r›   ÚConfigMetadataHandler.__init__  s    ø€ ô 	‰Ñ˜Ð.BÔVØ&ÔØ Žr.   c               ó   € V ^8„  d   QhRR/# r©   r*   )r+   s   "r,   r-   r>  (  s   € ÷ 
ñ 
Ð,ñ 
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_emailr<  ÚkeywordsÚprovidesÚ	obsoletesr:  ÚlicenseÚlicense_filesr8  Úlong_descriptionÚlong_description_content_typeÚversionr6  Ú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   rP  rû   rh   )rš   ra   rP  rÁ   s   &&  r,   rT  Ú$ConfigMetadataHandler._parse_versionC  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©rh   rê   )r®   r,  r-  r.  r]   r�   r0  Ústrict_moderA   Úcurdirr›   r2  r¯   rT  r3  Ú__classcell__©r­   s   @r,   ri   ri   
  so   ø‡ Ø€Nð 	�UØ�=Ø�mØ�Kð	)€GÐ%ó ð €Kðð $(Ø#%§9¡9÷!ò !ð ô
ó ð
÷6Xð Xr.   ri   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	 R
 l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# )rf   i]  ro   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r#   rP   r   ro   r    r'   r&   rn   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›   rk   rê   rh   )rš   rP   ro   r'   rn   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_semicolonk  s   € à�‰˜u°ˆÓ4Ð4r.   c                	ó:   € V P                  WP                  R 7      # )rD  )rò   rê   )rš   ra   s   &&r,   Ú_parse_file_in_rootÚ(ConfigOptionsHandler._parse_file_in_rooto  s   € Ø×Ñ ·±ÐÓ>Ð>r.   c               ó    € V ^8„  d   QhRRRR/# )r#   rr   rJ   ra   r*   )r+   s   "r,   r-   rc  r  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)Ú#Nr{   )r}   rÒ   s   & r,   r   Ú@ConfigOptionsHandler._parse_requirements_list.<locals>.<genexpr>x  s   é € ÐP©V T¿?¹?È3×;OŸDšD«Vùs   ‚)Ÿ
))rh  rk  rŒ   r   rR  )rš   rr   ra   rt   s   &&& r,   Ú_parse_requirements_listÚ-ConfigOptionsHandler._parse_requirements_listr  s>   € à×+Ñ+¨D×,DÑ,DÀUÓ,KÓLˆÜ-¨e¸FÔCô �|Š|ÑP©VÓPÓPÐPr.   c               ó   € V ^8„  d   QhRR/# r©   r*   )r+   s   "r,   r-   rc  |  s   € ÷ 
ñ 
Ð,ñ 
r.   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_datarh   Ú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   rr  rh  Ú_parse_packagesrk  r   ÚSpecifierSet)rš   Ú
parse_listÚ
parse_boolÚparse_cmdclasss   &   r,   r¯   ÚConfigOptionsHandler.parsers{  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–   )rn   rh   r   r‚  rÕ   rê   )rš   ra   rh   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¹   rm   rê   rh   r   Úfind_packages)rš   ra   Ú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-   rc  É  s   € ÷ &ñ &¸Tñ &r.   c                óD   € V P                  WP                  4      pW R&   R# )zPParses `entry_points` configuration file section.

:param dict section_options:
r  N)r  rÍ   ©rš   r  rt   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-   rc  Õ  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-   rc  Ü  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-   rc  ã  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  )rr  )r›  r  rš   s   &&€r,   r¶   ÚCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>ê  s   ø€ ˜×6Ñ6¸ÈÈÈ1Ð7MÈqÔQr.   Úextras_requireN)r  r   rS  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-   rc  ð  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.   r\  )r®   r,  r-  r.  r]   r›   r1  rh  rk  rr  r2  r¯   rƒ  r„  r�  r   r¥  r«  r°  r·  r½  r3  r_  r`  s   @r,   rf   rf   ]  s|   ø† Ø€N÷	.ð 	.ð ñ5ó ð5ò?õQð ô
ó ð
ò<Tò3ò2õ$&ò9õIõQõ
6÷Nó Nr.   rf   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Ã  r1  rˆ   r3  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Ã  r3  r*   r.   r,   r#  r#    s   † Ø3„Ir.   r#  )FF)r*   F)F)CÚ__conditional_annotations__r/  Ú
__future__r   r  rT   rA   Úabcr   Úcollectionsr   Úcollections.abcr   r   r   r   r	   Útypingr
   r   r   r   r   r   Úpackaging.markersr   r‚   Úpackaging.requirementsr   r   Úpackaging.versionr   r   rö   r   Ú_pathr   Úerrorsr   r   Úwarningsr   r   r   r0   r   Údistutils.distr   r)   rJ   Útupler   r0  r    r!   r7   r;   r2   rY   r3   rK   rŒ   rŽ   ri   rf   r…   r#  )rÊ  s   @r,   Ú<module>rØ     s  øðô	õ #ã Û Û 	Ý Ý #ß 8Ñ 8ß $ß G× Gå ?ß Bß 5å Ý ß +Ý 3Ý çÝ å,å3à"& s¨E°#°s°(­OÐ';Õ"<Ð �iÓ <ðð
  $ CÐ)=Ð$=Õ>Ð �9Ó >Ø Ù	�˜>Ð+AÓ	B€÷+õ4÷õ>	õ÷,+õ\2ô@b�G˜F•Oô bôJ	PX˜MÐ*@ÕAô PXôfYN˜=¨Õ8ô YNôxUÐ3ô Uô(4Ð4ö 4r.   