Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
odigos / etc / odigos-vmagent / instrumentations / python / setuptools / config / __pycache__ / setupcfg.cpython-311.pyc
Size: Mime:
§

Õg"dãó`—dZddlmZddlZddlZddlZddlmZddlmZm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZmZddlmZddlmZmZdd	lmZdd
lm Z m!Z!ddl"m#Z#dd
l$m%Z%m&Z&ddl'm(Z(ddl)m*Z*erddl+m,Z,ddl-m.Z.ededeffZ/	ede/fZ0eded¬¦«Z1	dAdBd„Z2dCd„Z3		dDdEd&„Z4dFd)„Z5dGd+„Z6	dHdId0„Z7dJd5„Z8Gd6„d7ee1¦«Z9Gd8„d9e9d:¦«Z:Gd;„d<e9d¦«Z;Gd=„d>e(¦«Z<Gd?„d@e(¦«Z=dS)Ka<
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)ÚpartialÚwraps)Ú
TYPE_CHECKINGÚAnyÚCallableÚDictÚGenericÚIterableÚIteratorÚListÚTupleÚTypeVarÚUnionÚcast)Údefault_environment)ÚInvalidRequirementÚRequirement)ÚSpecifierSet)ÚInvalidVersionÚVersioné)ÚStrPath)Ú	FileErrorÚOptionError)ÚSetuptoolsDeprecationWarningé)Úexpand©ÚDistribution)ÚDistributionMetadataÚstrÚTarget)r!r")ÚboundFÚfilepathrÚreturnÚdictcó”—ddlm}|¦«}|r| ¦«ng}t||||¦«}t	|¦«S)a,Read given configuration file and returns options from it as a dict.

    :param str|unicode filepath: Path to configuration file
        to get options from.

    :param bool find_others: Whether to search for other configuration files
        which could be on in various places.

    :param bool ignore_option_errors: Whether to silently ignore
        options, values of which could not be resolved (e.g. due to exceptions
        in directives such as file:, attr:, etc.).
        If False exceptions are propagated as expected.

    :rtype: dict
    rr )Úsetuptools.distr!Úfind_config_filesÚ_applyÚconfiguration_to_dict)r&Úfind_othersÚignore_option_errorsr!ÚdistÚ	filenamesÚhandlerss       úA/tmp/pip-target-6culloxw/lib/python/setuptools/config/setupcfg.pyÚread_configurationr4;s^€ð$-Ð,Ð,Ð,Ð,Ð,àˆ<‰>Œ>€DØ,7Ð?×&Ò&Ñ(Ô(Ð(¸R€Iݐd˜H iÐ1EÑFÔF€HÝ  Ñ*Ô*Ð*ór0r!cóN—t||¦«| ¦«|S)z`Apply the configuration from a ``setup.cfg`` file into an existing
    distribution object.
    )r,Ú_finalize_requires)r0r&s  r3Úapply_configurationr8Us+€õˆ4ÑÔÐØ×ÒÑÔÐØ€Kr5©Úother_filesúIterable[StrPath]r/Úboolútuple[ConfigHandler, ...]cóf—ddlm}tj |¦«}tj |¦«st
d|›d¦«‚tj¦«}tjtj 	|¦«¦«g|¢|‘}	| 
|ttt|¦«¬¦«t||j|¬¦«}| ¦«tj|¦«n#tj|¦«wxYw|S)zHRead configuration from ``filepath`` and applies to the ``dist`` object.r)Ú
_DistributionzConfiguration file z does not exist.)r1)r/)r*r?ÚosÚpathÚabspathÚisfilerÚgetcwdÚchdirÚdirnameÚparse_config_filesrrr#Úparse_configurationÚcommand_optionsÚ_finalize_license_files)r0r&r:r/r?Úcurrent_directoryr1r2s        r3r,r,^s"€ð.Ð-Ð-Ð-Ð-Ð-åŒwŠ˜xÑ(Ô(€Hå
Œ7>Š>˜(Ñ#Ô#ðJÝÐH¨hÐHÐHÐHÑIÔIÐIåœ	™œÐÝ„HRŒW_Š_˜XÑ
&Ô
&Ñ'Ô'Ð'Ø(+Ð(˜xÐ(€Ið$à×(Ò(¨½½dÅ3¼iÈÑ9SÔ9SÐ(ÑTÔTÐTÝ&Ø$Ô&Ð=Qð
ñ
ô
ˆð	
×$Ò$Ñ&Ô&Ð&å
ŒÐ"Ñ#Ô#Ð#Ð#øŒÐ"Ñ#Ô#Ð#Ð#øøøà€Os
Â#A DÄD.Ú
target_objÚkeycóx—d|›}tjt||¦«}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.
    Úget_)Ú	functoolsrÚgetattr)rLrMÚgetter_nameÚby_attributeÚgetters     r3Ú_get_optionrU}s?€ð˜,,€KÝÔ$¥W¨j¸#Ñ>Ô>€LÝ
Z ¨lÑ
;Ô
;€F؈6‰8Œ8€Or5r2có–—tt¦«}|D]1}|jD]'}t|j|¦«}|||j|<Œ(Œ2|S)z»Returns configuration data gathered by given handlers as a dict.

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

    :rtype: dict
    )rr(Úset_optionsrUrLÚsection_prefix)r2Úconfig_dictÚhandlerÚoptionÚvalues     r3r-r-‰sk€õ$¥DÑ)Ô)€Kàð@ð@ˆØÔ)ð	@ð	@ˆFÝ Ô 2°FÑ;Ô;ˆEØ:?ˆK˜Ô.Ô/°Ñ7Ð7ð	@ðÐr5ÚdistributionrIÚAllCommandOptionsú2tuple[ConfigMetadataHandler, ConfigOptionsHandler]c	óŒ—tj|¦«5}t||||¦«}| ¦«|js|j|_t|j||||j|j¦«}| ¦«|j 	|j|j¦«ddd¦«n#1swxYwY||fS)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)r]rIr/Úensure_discoveredÚoptionsÚmetas      r3rHrH›s€õ$
Ô	(¨Ñ	6Ô	6ð
Ð:KÝ&ØØØ Øñ	
ô
ˆð	
Š
‰ŒˆØÔ'ð	;Ø'.Ô':ˆLÔ$å$ØÔ!ØØ ØØÔ$ØÔ!ñ

ô
ˆð	

Š
‰ŒˆØÔ&×-Ò-ØÔ% tÔ'=ñ	
ô	
ð	
ð+
ð
ð
ñ
ô
ð
ð
ð
ð
ð
ð
øøøð
ð
ð
ð
ð2ˆ=Ðs•BB7Â7B;Â>B;ÚlabelÚ
orig_valueÚparsedÚlistcóʇ—d|vst‰¦«dkrdSt¦« ¦«}	t‰d¦«}|j|vr$t
 |‰d¬¦«dSdS#t$rX}tˆfd„|D¦«¦«r2t
 	|‰d¬¦«}t|¦«|‚Yd}~dSd}~wwxYw)amBecause 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.
    ú
rNr)ÚfieldÚreqc3óN•K—|]}‰d |¦«V—Œ dS)rN©Ú
startswith)Ú.0Úmarkerros  €r3ú	<genexpr>z8_warn_accidental_env_marker_misconfig.<locals>.<genexpr>äs5øèè€ÐBÐB°ˆvaŒy×#Ò# FÑ+Ô+ÐBÐBÐBÐBÐBÐBr5)
ÚlenÚ
marker_envÚkeysrÚnameÚ_AmbiguousMarkerÚemitrÚanyÚmessage)rmrnroÚmarkersrtÚexÚmsgs  `    r3Ú%_warn_accidental_env_marker_misconfigr†Ésø€ð"ˆzÐНS ™[œ[¨AÒ-Ð-؈å‰lŒl×ÒÑ!Ô!€Gð2ݘ& œ)Ñ$Ô$ˆØŒ8wÐÐÝ×!Ò!¨°6¸!´9Ð!Ñ=Ô=Ð=Ð=Ð=ðÐøåð2ð2ð2ÝÐBÐBÐBÐB¸'ÐBÑBÔBÑBÔBð	2Ý"×*Ò*°¸FÀ1¼IÐ*ÑFÔFˆCÝ$ SÑ)Ô)¨rÐ1ð	2ð	2ð	2ð	2ð	2ð	2øøøøð2øøøs¼ABÂ
C"Â
A
CÃC"có0—eZdZUdZded<	iZded<	d#d„Zed$d„¦«Ze	d„¦«Z
d%d„Zed&d„¦«Zed„¦«Z
ed„¦«Zed„¦«Zd'd„Zd'd„Zed„¦«Zed„¦«Zed(d„¦«Zd „Zd%d!„Zd"„ZdS))Ú
ConfigHandlerz1Handles metadata supplied in configuration files.r#rXzdict[str, str]ÚaliasesrLr$rkr^rjúexpand.EnsurePackagesDiscoveredcó²—||_||_t| |¦«¦«|_g|_||_t¦«|_dS©N)	r/rLr(Ú_section_optionsÚsectionsrWrjÚsetrh)ÚselfrLrkr/rjs     r3Ú__init__zConfigHandler.__init__ùsV€ð%9ˆÔ!Ø$ˆŒÝ˜T×2Ò2°7Ñ;Ô;Ñ<Ô<ˆŒ
Ø&(ˆÔØ!2ˆÔÝ+.©5¬5ˆÔð	ð	r5r'ú*Iterator[tuple[str, SingleCommandOptions]]c#ó²K—| ¦«D]?\}}| |j¦«\}}}|rŒ&| d¦«|fV—Œ@dS)Nú.)ÚitemsÚ	partitionrXÚlstrip)ÚclsrkÚ	full_namer\ÚpreÚsepr~s       r3rzConfigHandler._section_options
suèè€ð!(§
¢
¡¤ð	*ð	*ÑˆIuØ&×0Ò0°Ô1CÑDÔD‰NˆCdØð
ØØ—+’+˜cÑ"Ô" EÐ)Ð)Ð)Ð)Ð)ð		*ð	*r5có:—td|jjz¦«‚)ú.Metadata item name to parser function mapping.z!%s must provide .parsers property)ÚNotImplementedErrorÚ	__class__Ú__name__)rs r3ÚparserszConfigHandler.parserss#€õ"Ø/°$´.Ô2IÑIñ
ô
ð	
r5ÚNonecóâ—|j}|j ||¦«}	t||¦«}n"#t$r}t|¦«|‚d}~wwxYw|rdS	|j |d„¦«|¦«}n#tf|jz$rYdSwxYwtj
|j|¦«}t|d|z|¦«}||¦«|j 
|¦«dS)Ncó—|SrŒr9)Úxs r3ú<lambda>z+ConfigHandler.__setitem__.<locals>.<lambda>+s€¸Q€r5zset_%s)rLr‰ÚgetrQÚAttributeErrorÚKeyErrorr¡Ú	Exceptionr/rPrÚ__setattr__rWÚappend)	rÚoption_namer\rLÚ
current_valueÚeroÚ
simple_setterÚsetters	         r3Ú__setitem__zConfigHandler.__setitem__s#€Ø”_ˆ
ð”l×&Ò& {°KÑ@Ô@ˆð	/Ý# J°Ñ<Ô<ˆMˆMøÝð	/ð	/ð	/ݘ;Ñ'Ô'¨QÐ.øøøøð	/øøøðð	àˆFð	Ø?T”\×%Ò% k°;°;Ñ?Ô?ÀÑFÔFˆFˆFøÝˆ|˜dÔ7Ñ7ð	ð	ð	ØˆFˆFð	øøøõ"Ô)¨*Ô*@À+ÑNÔNˆ
ݘ X°Ñ%;¸]ÑKÔKˆØˆˆv‰ŒˆàÔ×Ò Ñ,Ô,Ð,Ð,Ð,s&¤5µ
A¿AÁAÁ%BÂBÂBú,có¤—t|t¦«r|Sd|vr| ¦«}n| |¦«}d„|D¦«S)z×Represents value as a list.

        Value is split either by separator (defaults to comma) or by lines.

        :param value:
        :param separator: List items separator character.
        :rtype: list
        rrcó^—g|]*}| ¦«¯| ¦«‘Œ+Sr9©Ústrip)rxÚchunks  r3ú
<listcomp>z-ConfigHandler._parse_list.<locals>.<listcomp>Gs-€ÐBÐBÐB %°E·K²K±M´MÐB—’‘
”
ÐBÐBÐBr5)Ú
isinstancerpÚ
splitlinesÚsplit)r˜r\Ú	separators   r3Ú_parse_listzConfigHandler._parse_list5s\€õeTÑ"Ô"ð	؈Là5ˆ=ˆ=Ø×$Ò$Ñ&Ô&ˆEˆEà—K’K 	Ñ*Ô*ˆEàBÐB¨5ÐBÑBÔBÐBr5cóò—d}i}| |¦«D]\}| |¦«\}}}||krtd|›¦«‚| ¦«|| ¦«<Œ]|S)zPRepresents value as a dict.

        :param value:
        :rtype: dict
        ú=z&Unable to parse option value to dict: )r¾r–rr·)r˜r\r½ÚresultÚlinerMr›Úvals        r3Ú_parse_dictzConfigHandler._parse_dictIs„€ðˆ	؈ؗO’O EÑ*Ô*ð	.ð	.ˆDØ ŸNšN¨9Ñ5Ô5‰MˆCcؐiÒÐÝ!Ð"RÈ5Ð"RÐ"RÑSÔSÐSØ"%§)¢)¡+¤+ˆF3—9’9‘;”;ÑÐàˆ
r5có2—| ¦«}|dvS)zQRepresents value as boolean.

        :param value:
        :rtype: bool
        )Ú1ÚtrueÚyes)Úlower©r˜r\s  r3Ú_parse_boolzConfigHandler._parse_boolZs€ð—’‘
”
ˆØÐ,Ð,Ð,r5có‡—ˆfd„}|S)zßReturns a parser function to make sure field inputs
        are not files.

        Parses a value after getting the key so error messages are
        more informative.

        :param key:
        :rtype: callable
        cóz•—d}| |¦«r"td ‰¦«¦«‚|S)Núfile:zCOnly strings are accepted for the {0} field, files are not accepted)rwÚ
ValueErrorÚformat)r\Úexclude_directiverMs  €r3Úparserz3ConfigHandler._exclude_files_parser.<locals>.parserpsIø€Ø 'ÐØ×ÒÐ 1Ñ2Ô2ð
Ý ð-ß-3ªV°C©[¬[ñôððˆLr5r9)r˜rMrÒs ` r3Ú_exclude_files_parserz#ConfigHandler._exclude_files_parserds#ø€ð	ð	ð	ð	ð	ðˆ
r5Úroot_dirrcó,—d}t|t¦«s|S| |¦«s|S|t|¦«d…}d„| d¦«D¦«}|j |¦«tj||¦«S)aORepresents value as a string, allowing including text
        from nearest files using `file:` directive.

        Directive is sandboxed and won't reach anything outside
        directory with setup.py.

        Examples:
            file: README.rst, CHANGELOG.md, src/file.txt

        :param str value:
        :rtype: str
        rÎNcó6—g|]}| ¦«‘ŒSr9r¶)rxrAs  r3r¹z-ConfigHandler._parse_file.<locals>.<listcomp>‘s €Ð>Ð>Ð> dT—Z’Z‘\”\Ð>Ð>Ð>r5r³)	rºr#rwr{r¼rhrirÚ
read_files)rr\rÔÚinclude_directiveÚspecÚ	filepathss      r3Ú_parse_filezConfigHandler._parse_file{s€ð$Ðå˜%¥Ñ%Ô%ð	؈Là×ÒÐ 1Ñ2Ô2ð	؈Là•SÐ*Ñ+Ô+Ð-Ð-Ô.ˆØ>Ð>¨d¯jªj¸©o¬oÐ>Ñ>Ô>ˆ	ØÔ×%Ò% iÑ0Ô0Ð0ÝÔ  ¨HÑ5Ô5Ð5r5cóʗd}| |¦«s|S| |d¦«}| |jj¦«tj|||¦«S)z·Represents value as a module attribute.

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

        :param str value:
        :rtype: str
        zattr:Ú)rwÚreplacerirjrdrÚ	read_attr)rr\rdrÔÚattr_directiveÚ	attr_descs      r3Ú_parse_attrzConfigHandler._parse_attr•sh€ð!ˆØ×Ò Ñ/Ô/ð	؈Là—M’M .°"Ñ5Ô5ˆ	ð	×Ò˜4Ô1Ô=Ñ>Ô>Ð>ÝÔ 	¨;¸ÑAÔAÐAr5có‡—ˆfd„}|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]
}||¦«}Œ|SrŒr9)r\roÚmethodÚ
parse_methodss   €r3rcz1ConfigHandler._get_parser_compound.<locals>.parse³s+ø€ØˆFà'ð
(ð
(Ø˜ ™œàˆMr5r9)r˜rærcs ` r3Ú_get_parser_compoundz"ConfigHandler._get_parser_compound©s#ø€ð	ð	ð	ð	ð	ðˆr5cób—i}| ¦«D]\}\}}|||¦«||<Œ|S)aParses 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\rMÚ_rÃs       r3Ú_parse_section_to_dict_with_keyz-ConfigHandler._parse_section_to_dict_with_key½sH€ðˆØ,×2Ò2Ñ4Ô4ð	1ð	1‰MˆC‘!SØ&˜ s¨CÑ0Ô0ˆE#‰JˆJ؈r5NcóD‡—‰rˆfd„nd„}| ||¦«S)aParses 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ó•—‰|¦«SrŒr9)rëÚvrês  €r3r¦z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ösø€˜}˜}¨QÑ/Ô/€r5có—|SrŒr9)rërïs  r3r¦z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Ös€ÐUV€r5©rì)r˜rérêrÒs  ` r3Ú_parse_section_to_dictz$ConfigHandler._parse_section_to_dictÌs7ø€ð5BÐWÐ/Ð/Ð/Ð/Ð/ÈȈØ×2Ò2°?ÀFÑKÔKÐKr5có¬—| ¦«D]>\}\}}tjt¦«5|||<ddd¦«n#1swxYwYŒ?dS)zQParses configuration file section.

        :param dict section_options:
        N)r•Ú
contextlibÚsuppressr©)rrér~rër\s     r3Ú
parse_sectionzConfigHandler.parse_sectionÙs¢€ð
!0× 5Ò 5Ñ 7Ô 7ð	#ð	#ÑˆD‘*1eÝÔ$¥XÑ.Ô.ð
#ð
#à"T‘
ð
#ð
#ð
#ñ
#ô
#ð
#ð
#ð
#ð
#ð
#ð
#øøøð
#ð
#ð
#ð
#øð	#ð	#s¶AÁA	ÁA	cóö—|j ¦«D]^\}}d}|rd|z}t|d|z dd¦«d¦«}|€t	d|j›d|›d¦«‚||¦«Œ_dS)	zTParses configuration file items from one
        or more related sections.

        rÝz_%szparse_section%sr”Ú__Nz*Unsupported distribution option section: [ú])rŽr•rQrÞrrX)rÚsection_nameréÚmethod_postfixÚsection_parser_methods     r3rczConfigHandler.parseãs̀ð
.2¬]×-@Ò-@Ñ-BÔ-Bð	3ð	3Ñ)ˆL˜/؈NØð
6Ø!&¨Ñ!5å5<Øà" ^Ñ3×<Ò<¸SÀ$ÑGÔGØñ	6ô6Ð!ð%Ð,Ý!ð>ØÔ+ð>ð>Ø.:ð>ð>ð>ñôðð

"Ð! /Ñ2Ô2Ð2Ð2ð%	3ð	3r5cóD‡‡‡—t‰¦«ˆˆˆfd„¦«}|S)z¢this function will wrap around parameters that are deprecated

        :param msg: deprecation message
        :param func: function to be wrapped around
        cóf•—‰ dd¦«tjd‰fi‰¤Ž‰|i|¤ŽS)NÚ
stacklevelrz Deprecated config in `setup.cfg`)Ú
setdefaultÚ_DeprecatedConfigr€)ÚargsÚkwargsÚfuncÚkwr…s  €€€r3Úconfig_handlerz@ConfigHandler._deprecated_config_handler.<locals>.config_handlersHø€àMŠM˜,¨Ñ*Ô*Ð*ÝÔ"Ð#EÀsÐQÐQÈbÐQÐQÐQؐ4˜Ð( Ð(Ð(Ð(r5)r)rrr…rrs ``` r3Ú_deprecated_config_handlerz(ConfigHandler._deprecated_config_handlerüsBøøø€õ
ˆt‰Œð	)ð	)ð	)ð	)ð	)ð	)ñ
Œð	)ð
Ðr5)rLr$rkr^rjrŠ)rkr^r'r’)r'r¢)r³)rÔrrŒ)r Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r‰r‘ÚclassmethodrÚpropertyr¡r²r¾rÄrËrÓrÛrârçrìròrörcrr9r5r3rˆrˆésÕ€€€€€€Ø;Ð;àÐÐÑðð
!€GÐ Ð Ð Ñ ðððððð"ð*ð*ð*ñ„[ð*ðð
ð
ñ„Xð
ð-ð-ð-ð-ð4ðCðCðCñ„[ðCð&ððñ„[ðð ð-ð-ñ„[ð-ðððñ„[ðð,6ð6ð6ð6ð4BðBðBðBð(ððñ„[ðð&ððñ„[ððð
Lð
Lð
Lñ„[ð
Lð#ð#ð#ð3ð3ð3ð3ð2
ð
ð
ð
ð
r5rˆcód‡—eZdZdZdddddœZdZ	dejfdˆfd„
Ze	d„¦«Z
d„ZˆxZS)rerfÚurlÚdescriptionÚclassifiersÚ	platforms)Ú	home_pageÚsummaryÚ
classifierÚplatformFNrLr"rkr^r/r<rjrŠrdúdict | NonerÔrcól•—t¦« ||||¦«||_||_dSrŒ)Úsuperr‘rdrÔ)rrLrkr/rjrdrÔrŸs       €r3r‘zConfigMetadataHandler.__init__s8ø€õ	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ&ˆÔØ ˆŒ
ˆ
ˆ
r5có—|j}t|j|j¬¦«}|j}|j}||||| ||¦«|d¦«||||j|dœS)r©rÔÚlicense)rÚkeywordsÚprovidesÚ	obsoletesrrÚ
license_filesrÚlong_descriptionÚversionÚproject_urls)r¾rrÛrÔrÄrÓrçÚ_parse_version)rÚ
parse_listÚ
parse_fileÚ
parse_dictÚexclude_files_parsers     r3r¡zConfigMetadataHandler.parsers)s„€ðÔ%ˆ
ݘTÔ-¸¼
ÐFÑFÔFˆ
ØÔ%ˆ
Ø#Ô9Ðð$Ø"Ø"Ø#Ø×4Ò4°ZÀÑLÔLØ+Ð+¨IÑ6Ô6Ø'Ø%Ø *ØÔ*Ø&ð
ð
ð	
r5cóH—| ||j¦«}||krO| ¦«}	t|¦«n(#t$r}td|›d|›¦«|‚d}~wwxYw|St
j| ||j	|j¦«¦«S)zSParses `version` option value.

        :param value:
        :rtype: str

        zVersion loaded from z does not comply with PEP 440: N)
rÛrÔr·rrrrr"rârd)rr\r"r¯s    r3r$z$ConfigMetadataHandler._parse_version?sˀð×"Ò" 5¨$¬-Ñ8Ô8ˆàeÒÐØ—m’m‘o”oˆGð
Ý˜Ñ Ô Ð Ð øÝ!ð
ð
ð
Ý!ð6¨5ð6ð6Ø,3ð6ð6ñôððøøøøð
øøøðˆNåŒ~˜d×.Ò.¨u°dÔ6FÈÌ
ÑVÔVÑWÔWÐWs·AÁ
A,ÁA'Á'A,)rLr"rkr^r/r<rjrŠrdrrÔr)
r rr	rXr‰Ústrict_moder@Úcurdirr‘r
r¡r$Ú
__classcell__©rŸs@r3reres¨ø€€€€€Ø€NðØ Ø#Øð	ð€Gð€Kðð$(ØœIð!ð!ð!ð!ð!ð!ð!ðð
ð
ñ„Xð
ð*XðXðXðXðXðXðXr5rer"c󔇗eZdZdZdˆfd	„Zed
„¦«Zd„Zdd„Ze	d„¦«Z
d„Zd„Zd„Z
d„Zd„Zd„Zd„Zd„Zd„ZˆxZS)rbrkrLr!r^r/r<rjrŠcóv•—t¦« ||||¦«|j|_i|_dSrŒ)rr‘rgrÔrd)rrLrkr/rjrŸs     €r3r‘zConfigOptionsHandler.__init__\s=ø€õ	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ"Ô+ˆŒ
Ø+-ˆÔÐÐr5có0—| |d¬¦«S)Nú;)r½)r¾rÊs  r3Ú_parse_list_semicolonz*ConfigOptionsHandler._parse_list_semicolongs€àŠ˜u°ˆÑ4Ô4Ð4r5có:—| ||j¬¦«S)Nr)rÛrÔ)rr\s  r3Ú_parse_file_in_rootz(ConfigOptionsHandler._parse_file_in_rootks€Ø×Ò °´
ÐÑ>Ô>Ð>r5rmr#r\cóŒ—| | |¦«¦«}t|||¦«d„|D¦«S)Ncó<—g|]}| d¦«°|‘ŒS)ú#rv)rxrÂs  r3r¹zAConfigOptionsHandler._parse_requirements_list.<locals>.<listcomp>ts)€ÐDÐDÐD˜¨t¯ª¸sÑ/CÔ/CÐDÐDÐDÐDr5)r2r4r†)rrmr\ros    r3Ú_parse_requirements_listz-ConfigOptionsHandler._parse_requirements_listnsL€à×+Ò+¨D×,DÒ,DÀUÑ,KÔ,KÑLÔLˆÝ-¨e°U¸FÑCÔCÐCðEÐD ÐDÑDÔDÐDr5cóҗ|j}|j}|j}|j}||||||| |d¦«t|jd¦«|j|j|j	|t|dœS)rzeThe namespace_packages parameter is deprecated, consider using implicit namespaces instead (PEP 420).Úinstall_requires)Úzip_safeÚinclude_package_datardÚscriptsÚeager_resourcesÚdependency_linksÚnamespace_packagesr:Úsetup_requiresÚpackagesÚentry_pointsÚ
py_modulesÚpython_requiresÚcmdclass)r¾rËrÄÚ_parse_cmdclassrrr8r2Ú_parse_packagesr4r)rr%Ú
parse_boolr'Úparse_cmdclasss     r3r¡zConfigOptionsHandler.parsersvs˜€ðÔ%ˆ
ØÔ%ˆ
ØÔ%ˆ
ØÔ-ˆð#Ø$.Ø%Ø!Ø)Ø *Ø"&×"AÒ"AØðHñ#ô#õ!(ØÔ-Ð/Añ!ô!ð#Ô8ØÔ,Ø Ô4Ø$Ý+Ø&ð+
ð
ð	
r5cóv—|jj}tj| |¦«||j¦«SrŒ)rjrdrrFrÄrÔ)rr\rds   r3rGz$ConfigOptionsHandler._parse_cmdclass–s1€ØÔ,Ô8ˆÝŒ˜t×/Ò/°Ñ6Ô6¸ÀTÄ]ÑSÔSÐSr5có:—ddg}| ¦«}||vr| |¦«S| |j di¦«¦«}| ||dk|j|j¬¦«tj	di|¤ŽS)zTParses `packages` option value.

        :param value:
        :rtype: list
        zfind:zfind_namespace:z
packages.findr)Ú
namespacesrÔÚfill_package_dirr9)
r·r¾Úparse_section_packages__findrŽr§rirÔrdrÚ
find_packages)rr\Úfind_directivesÚ
trimmed_valueÚfind_kwargss     r3rHz$ConfigOptionsHandler._parse_packagesšs·€ð#Ð$5Ð6ˆØŸš™
œ
ˆ
à Ð/Ð/Ø×#Ò# EÑ*Ô*Ð*ð×7Ò7ØŒM×Ò˜o¨rÑ2Ô2ñ
ô
ˆð	×ÒØ%¨¸Ô);Ò;Ø”]Ø!Ô-ð	ñ	
ô	
ð	
õÔ#Ð2Ð2 kÐ2Ð2Ð2r5có䇗| ||j¦«}gd¢Štˆfd„| ¦«D¦«¦«}| d¦«}||d|d<|S)zœParses `packages.find` configuration file section.

        To be used in conjunction with _parse_packages().

        :param dict section_options:
        )ÚwhereÚincludeÚexcludecó*•—g|]\}}|‰v¯	|¯||f‘ŒSr9r9)rxÚkrïÚ
valid_keyss   €r3r¹zEConfigOptionsHandler.parse_section_packages__find.<locals>.<listcomp>¾s1ø€ð
ð
ð
ِq˜!°q¸J°°È1°ˆQˆF°°°r5rUNr)ròr¾r(r•r§)rréÚsection_datarSrUrZs     @r3rOz1ConfigOptionsHandler.parse_section_packages__find³s–ø€ð×2Ò2°?ÀDÔDTÑUÔUˆà4Ð4Ð4ˆ
åð
ð
ð
ð
Ø+×1Ò1Ñ3Ô3ð
ñ
ô
ñôˆð—’ Ñ(Ô(ˆØÐØ#(¨¤8ˆK˜Ñ àÐr5cóF—| ||j¦«}||d<dS)z`Parses `entry_points` configuration file section.

        :param dict section_options:
        rCN)ròr¾©rréros   r3Úparse_section_entry_pointsz/ConfigOptionsHandler.parse_section_entry_pointsÈs,€ð
×,Ò,¨_¸dÔ>NÑOÔOˆØ%ˆˆ^ÑÐÐr5có`—| ||j¦«}tj|¦«SrŒ)ròr¾rÚcanonic_package_data)rréÚpackage_datas   r3Ú_parse_package_dataz(ConfigOptionsHandler._parse_package_dataÐs+€Ø×2Ò2°?ÀDÔDTÑUÔUˆÝÔ*¨<Ñ8Ô8Ð8r5có6—| |¦«|d<dS)z`Parses `package_data` configuration file section.

        :param dict section_options:
        raN©rb©rrés  r3Úparse_section_package_dataz/ConfigOptionsHandler.parse_section_package_dataÔs"€ð
 $×7Ò7¸ÑHÔHˆˆ^ÑÐÐr5có6—| |¦«|d<dS)zhParses `exclude_package_data` configuration file section.

        :param dict section_options:
        Úexclude_package_dataNrdres  r3Ú"parse_section_exclude_package_dataz7ConfigOptionsHandler.parse_section_exclude_package_dataÛs#€ð
(,×'?Ò'?ÀÑ'PÔ'PˆÐ
#Ñ$Ð$Ð$r5cóD‡—‰ |ˆfd„¦«}|‰d<dS)zbParses `extras_require` configuration file section.

        :param dict section_options:
        có8•—‰ d|›d|¦«S)Nzextras_require[rù)r8)rYrïrs  €r3r¦zCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>és#ø€˜×6Ò6Ð7MÈÐ7MÐ7MÐ7MÈqÑQÔQ€r5Úextras_requireNrñr]s`  r3Úparse_section_extras_requirez1ConfigOptionsHandler.parse_section_extras_requireâs<ø€ð
×5Ò5ØØQÐQÐQÐQñ
ô
ˆð
"(ˆÐ
ÑÐÐr5cóv—| ||j¦«}tj||j¦«|d<dS)z^Parses `data_files` configuration file section.

        :param dict section_options:
        Ú
data_filesN)ròr¾rÚcanonic_data_filesrÔr]s   r3Úparse_section_data_filesz-ConfigOptionsHandler.parse_section_data_filesîs;€ð
×,Ò,¨_¸dÔ>NÑOÔOˆÝ#Ô6°v¸t¼}ÑMÔMˆˆ\ÑÐÐr5)rLr!rkr^r/r<rjrŠ)rmr#r\r#)r rr	rXr‘rr2r4r8r
r¡rGrHrOr^rbrfrirmrqr,r-s@r3rbrbYs6ø€€€€€Ø€Nð	.ð	.ð	.ð	.ð	.ð	.ðð5ð5ñ„[ð5ð?ð?ð?ðEðEðEðEðð
ð
ñ„Xð
ð>TðTðTð3ð3ð3ð2ððð*&ð&ð&ð9ð9ð9ðIðIðIðQðQðQð
(ð
(ð
(ðNðNðNðNðNðNðNr5rbcó0—eZdZdZdZdZed„¦«ZdS)rzAmbiguous 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ó\—d|j›}| |j|j||¬¦«S)Nz%https://setuptools.pypa.io/en/latest/)Úsee_urlÚformat_args)Ú	_SEE_DOCSÚ_formatÚ_SUMMARYÚ_DETAILS)r˜rÚdocss   r3r‚z_AmbiguousMarker.messages0€àF°s´}ÐFÐFˆØ{Š{˜3œ<¨¬¸tÐQSˆ{ÑTÔTÐTr5N)r rr	rxryrvrr‚r9r5r3rr÷sG€€€€€Ø.€Hð€Hð:€IððUðUñ„[ðUðUðUr5rcó—eZdZdZdS)rz!userguide/declarative_config.htmlN)r rr	rvr9r5r3rrs€€€€€Ø3€I€I€Ir5r)FF)r&rr'r()r0r!r&rr'r!)r9F)
r0r!r&rr:r;r/r<r'r=)rLr$rMr#)r2r=r'r()F)r]r!rIr^r'r_)rmr#rnr#rorp)>r
Ú
__future__rrôrPr@ÚcollectionsrrrÚtypingrrr	r
rrr
rrrrrÚpackaging.markersrr|Úpackaging.requirementsrrÚpackaging.specifiersrÚpackaging.versionrrÚ_pathrÚerrorsrrÚwarningsrrÝrr*r!Údistutils.distr"ÚSingleCommandOptionsr^r$r4r8r,rUr-rHr†rˆrerbrrr9r5r3ú<module>rˆsçðð	ð	ð#Ð"Ð"Ð"Ð"Ð"àÐÐÐØÐÐÐØ	€	€	€	Ø#Ð#Ð#Ð#Ð#Ð#Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð@Ð?Ð?Ð?Ð?Ð?ØBÐBÐBÐBÐBÐBÐBÐBØ-Ð-Ð-Ð-Ð-Ð-Ø5Ð5Ð5Ð5Ð5Ð5Ð5Ð5àÐÐÐÐÐØ+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø3Ð3Ð3Ð3Ð3Ð3ØÐÐÐÐÐàð4Ø,Ð,Ð,Ð,Ð,Ð,à3Ð3Ð3Ð3Ð3Ð3à˜E 5¨°¨Ô#4Ð4Ô5Ððð
˜Ð 4Ð4Ô5ÐØ	ˆ Ð'MÔ!NÐ	OÑ	OÔ	O€ð@Eð+ð+ð+ð+ð+ð4ðððð&(Ø!&ð	ððððð>	ð	ð	ð	ððððð*ð+ð+ð+ð+ð+ð\2ð2ð2ð2ð@`ð`ð`ð`ð`G˜F”Oñ`ô`ð`ðF	JXðJXðJXðJXðJX˜MÐ*@ÔAñJXôJXðJXðZ[Nð[Nð[Nð[Nð[N˜=¨Ô8ñ[Nô[Nð[Nð|UðUðUðUðUÐ3ñUôUðUð(4ð4ð4ð4ð4Ð4ñ4ô4ð4ð4ð4r5