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:
§

ãŒbgÉdãót—UdZddlmZddlZddlZddlZddlmZddlmZm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZddlmZddlmZmZdd	lmZdd
lmZm Z ddl!m"Z"dd
l#m$Z$m%Z%ddl&m'Z'ddl(m)Z)erddl*m+Z+ddl,m-Z-ddl.m/Z/ee0ee0effZ1de2d<	ee0e1fZ3de2d<	eddd¦«Z4	dDdEd"„Z5dFd$„Z6		dGdHd)„Z7dId.„Z8dJd1„Z9	dKdLd4„Z:dMd9„Z;Gd:„d;ee4¦«Z<Gd<„d=e<d¦«Z=Gd>„d?e<d¦«Z>Gd@„dAe'¦«Z?GdB„dCe'¦«Z@dS)Na<
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Úcast)Údefault_environment)ÚInvalidRequirementÚRequirement)ÚSpecifierSet)ÚInvalidVersionÚVersioné)ÚStrPath)Ú	FileErrorÚOptionError)ÚSetuptoolsDeprecationWarningé)Úexpand)Ú	TypeAlias©ÚDistribution)ÚDistributionMetadatarÚSingleCommandOptionsÚAllCommandOptionsÚTargetr!r"FÚfilepathrÚfind_othersÚboolÚignore_option_errorsÚ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&r'r)r!ÚdistÚ	filenamesÚhandlerss       úA/tmp/pip-target-vp8_xwat/lib/python/setuptools/config/setupcfg.pyÚread_configurationr5=s^€ð$-Ð,Ð,Ð,Ð,Ð,àˆ<‰>Œ>€DØ,7Ð?×&Ò&Ñ(Ô(Ð(¸R€Iݐd˜H iÐ1EÑFÔF€HÝ  Ñ*Ô*Ð*ór1cóN—t||¦«| ¦«|S)z`Apply the configuration from a ``setup.cfg`` file into an existing
    distribution object.
    )r/Ú_finalize_requires)r1r&s  r4Úapply_configurationr9Ws+€õˆ4ÑÔÐØ×ÒÑÔÐØ€Kr6©Úother_filesúIterable[StrPath]ú2tuple[ConfigMetadataHandler, ConfigOptionsHandler]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.)r2)r))r-r?ÚosÚpathÚabspathÚisfilerÚgetcwdÚchdirÚdirnameÚparse_config_filesrrÚstrÚparse_configurationÚcommand_optionsÚ_finalize_license_files)r1r&r;r)r?Úcurrent_directoryr2r3s        r4r/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ú#Distribution | DistributionMetadataÚkeyrHcó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)rMrOÚgetter_nameÚby_attributeÚgetters     r4Ú_get_optionrWs?€ð˜,,€KÝÔ$¥W¨j¸#Ñ>Ô>€LÝ
Z ¨lÑ
;Ô
;€F؈6‰8Œ8€Or6r3úKIterable[ConfigHandler[Distribution] | ConfigHandler[DistributionMetadata]]có–—tt¦«}|D]1}|jD]'}t|j|¦«}|||j|<Œ(Œ2|S)z¿Returns configuration data gathered by given handlers as a dict.

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

    :rtype: dict
    )rr+Úset_optionsrWrMÚsection_prefix)r3Úconfig_dictÚhandlerÚoptionÚvalues     r4r0r0‹sk€õ$¥DÑ)Ô)€Kàð@ð@ˆØÔ)ð	@ð	@ˆFÝ Ô 2°FÑ;Ô;ˆEØ:?ˆK˜Ô.Ô/°Ñ7Ð7ð	@ðÐr6ÚdistributionrJc	óŒ—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`rJr)Úensure_discoveredÚoptionsÚmetas      r4rIrI¡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Úmarkerrps  €r4ú	<genexpr>z8_warn_accidental_env_marker_misconfig.<locals>.<genexpr>ês5øèè€ÐBÐB°ˆvaŒy×#Ò# FÑ+Ô+ÐBÐBÐBÐBÐBÐBr6)
ÚlenÚ
marker_envÚkeysrÚnameÚ_AmbiguousMarkerÚemitrÚanyÚmessage)rnrorpÚmarkersruÚexÚmsgs  `    r4Ú%_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.rHr[zdict[str, str]ÚaliasesrMr%rlr$rkúexpand.EnsurePackagesDiscoveredcó²—||_||_t| |¦«¦«|_g|_||_t¦«|_dS©N)	r)rMr+Ú_section_optionsÚsectionsrZrkÚsetri)ÚselfrMrlr)rks     r4Ú__init__zConfigHandler.__init__ÿsV€ð%9ˆÔ!Ø",ˆŒÝ˜T×2Ò2°7Ñ;Ô;Ñ<Ô<ˆŒ
Ø&(ˆÔØ!2ˆÔÝ+.©5¬5ˆÔð	ð	r6r*ú*Iterator[tuple[str, SingleCommandOptions]]c#ó²K—| ¦«D]?\}}| |j¦«\}}}|rŒ&| d¦«|fV—Œ@dS)Nú.)ÚitemsÚ	partitionr[Úlstrip)ÚclsrlÚ	full_namer_ÚpreÚseprs       r4rŽzConfigHandler._section_optionssuèè€ð!(§
¢
¡¤ð	*ð	*ÑˆIuØ&×0Ò0°Ô1CÑDÔD‰NˆCdØð
ØØ—+’+˜cÑ"Ô" EÐ)Ð)Ð)Ð)Ð)ð		*ð	*r6có:—td|jjz¦«‚)ú.Metadata item name to parser function mapping.z!%s must provide .parsers property)ÚNotImplementedErrorÚ	__class__Ú__name__)r‘s r4ÚparserszConfigHandler.parserss#€õ"Ø/°$´.Ô2IÑIñ
ô
ð	
r6ÚNonecóâ—|j}|j ||¦«}	t||¦«}n"#t$r}t|¦«|‚d}~wwxYw|rdS	|j |d„¦«|¦«}n#tf|jz$rYdSwxYwtj
|j|¦«}t|d|›|¦«}||¦«|j 
|¦«dS)Ncó—|Srr:)Úxs r4ú<lambda>z+ConfigHandler.__setitem__.<locals>.<lambda>1s€¸Q€r6Úset_)rMrŠÚgetrSÚAttributeErrorÚKeyErrorr¢Ú	Exceptionr)rRrÚ__setattr__rZÚappend)	r‘Úoption_namer_rMÚ
current_valueÚerpÚ
simple_setterÚsetters	         r4Ú__setitem__zConfigHandler.__setitem__!s'€Ø”_ˆ
ð”l×&Ò& {°KÑ@Ô@ˆð	/Ý# J°Ñ<Ô<ˆMˆMøÝð	/ð	/ð	/ݘ;Ñ'Ô'¨QÐ.øøøøð	/øøøðð	àˆFð	Ø?T”\×%Ò% k°;°;Ñ?Ô?ÀÑFÔFˆFˆFøÝˆ|˜dÔ7Ñ7ð	ð	ð	ØˆFˆFð	øøøõ"Ô)¨*Ô*@À+ÑNÔNˆ
ݘÐ%9¨KÐ%9Ð%9¸=ÑIÔIˆØˆˆ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
        rscó^—g|]*}| ¦«¯| ¦«‘Œ+Sr:©Ústrip)ryÚchunks  r4ú
<listcomp>z-ConfigHandler._parse_list.<locals>.<listcomp>Ms-€ÐBÐBÐB %°E·K²K±M´MÐB—’‘
”
ÐBÐBÐBr6)Ú
isinstancerqÚ
splitlinesÚsplit)r™r_Ú	separators   r4Ú_parse_listzConfigHandler._parse_list;s\€õeTÑ"Ô"ð	؈Là5ˆ=ˆ=Ø×$Ò$Ñ&Ô&ˆEˆEà—K’K 	Ñ*Ô*ˆEàBÐB¨5ÐBÑBÔBÐBr6cóò—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ÚlinerOrœÚvals        r4Ú_parse_dictzConfigHandler._parse_dictOs„€ðˆ	؈ؗO’O EÑ*Ô*ð	.ð	.ˆDØ ŸNšN¨9Ñ5Ô5‰MˆCcؐiÒÐÝ!Ð"RÈ5Ð"RÐ"RÑSÔSÐSØ"%§)¢)¡+¤+ˆF3—9’9‘;”;ÑÐàˆ
r6có2—| ¦«}|dvS)zQRepresents value as boolean.

        :param value:
        :rtype: bool
        )Ú1ÚtrueÚyes)Úlower©r™r_s  r4Ú_parse_boolzConfigHandler._parse_bool`s€ð—’‘
”
ˆØÐ,Ð,Ð,r6có‡—ˆ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ó\•—d}| |¦«rtd‰›d¦«‚|S)Núfile:z"Only strings are accepted for the z field, files are not accepted)rxÚ
ValueError)r_Úexclude_directiverOs  €r4Úparserz3ConfigHandler._exclude_files_parser.<locals>.parservsOø€Ø 'ÐØ×ÒÐ 1Ñ2Ô2ð
Ý ð-¸ð-ð-ð-ñôððˆLr6r:)r™rOrÓs ` r4Ú_exclude_files_parserz#ConfigHandler._exclude_files_parserjs#ø€ð	ð	ð	ð	ð	ðˆ
r6Úroot_dirúStrPath | Nonecó,—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|]}| ¦«‘ŒSr:r¸)ryrAs  r4r»z-ConfigHandler._parse_file.<locals>.<listcomp>—s €Ð>Ð>Ð> dT—Z’Z‘\”\Ð>Ð>Ð>r6rµ)	r¼rHrxr|r¾rirjrÚ
read_files)r‘r_rÕÚinclude_directiveÚspecÚ	filepathss      r4Ú_parse_filezConfigHandler._parse_files€ð$Ðå˜%¥Ñ%Ô%ð	؈Là×ÒÐ 1Ñ2Ô2ð	؈Là•SÐ*Ñ+Ô+Ð-Ð-Ô.ˆØ>Ð>¨d¯jªj¸©o¬oÐ>Ñ>Ô>ˆ	ØÔ×%Ò% iÑ0Ô0Ð0ÝÔ  ¨HÑ5Ô5Ð5r6rcóʗ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:Ú)rxÚreplacerjrkrerÚ	read_attr)r‘r_rerÕÚattr_directiveÚ	attr_descs      r4Ú_parse_attrzConfigHandler._parse_attr›sh€ð!ˆØ×Ò Ñ/Ô/ð	؈Là—M’M .°"Ñ5Ô5ˆ	ð	×Ò˜4Ô1Ô=Ñ>Ô>Ð>ÝÔ 	¨;¸ÑAÔAÐAr6có‡—ˆ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r:)r_rpÚmethodÚ
parse_methodss   €r4rdz1ConfigHandler._get_parser_compound.<locals>.parse¹s+ø€ØˆFà'ð
(ð
(Ø˜ ™œàˆMr6r:)r™rèrds ` r4Ú_get_parser_compoundz"ConfigHandler._get_parser_compound¯s#ø€ð	ð	ð	ð	ð	ðˆr6có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_rOÚ_rÅs       r4Ú_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؈r6Ncó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r:)ríÚvrìs  €r4r§z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Üsø€˜}˜}¨QÑ/Ô/€r6có—|Srr:)rírñs  r4r§z6ConfigHandler._parse_section_to_dict.<locals>.<lambda>Üs€ÐUV€r6©rî)r™rërìrÓs  ` r4Ú_parse_section_to_dictz$ConfigHandler._parse_section_to_dictÒs7ø€ð5BÐWÐ/Ð/Ð/Ð/Ð/ÈȈØ×2Ò2°?ÀFÑKÔKÐKr6có¬—| ¦«D]>\}\}}tjt¦«5|||<ddd¦«n#1swxYwYŒ?dS)zQParses configuration file section.

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

        rßrírør•Ú__Nz*Unsupported distribution option section: [ú])rr–rSràrr[)r‘Úsection_namerëÚmethod_postfixÚsection_parser_methods     r4rdzConfigHandler.parseésҀð
.2¬]×-@Ò-@Ñ-BÔ-Bð	3ð	3Ñ)ˆL˜/؈NØð
4Ø!3 \Ð!3Ð!3å5<Øà0 Ð0Ð0×8Ò8¸¸dÑCÔCØñ	6ô6Ð!ð%Ð,Ý!ð>ØÔ+ð>ð>Ø.:ð>ð>ð>ñôðð

"Ð! /Ñ2Ô2Ð2Ð2ð%	3ð	3r6có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  €€€r4Úconfig_handlerz@ConfigHandler._deprecated_config_handler.<locals>.config_handler	sHø€àMŠM˜,¨Ñ*Ô*Ð*ÝÔ"Ð#EÀsÐQÐQÈbÐQÐQÐQؐ4˜Ð( Ð(Ð(Ð(r6)r)r‘rr†rrs ``` r4Ú_deprecated_config_handlerz(ConfigHandler._deprecated_config_handlersBøøø€õ
ˆt‰Œð	)ð	)ð	)ð	)ð	)ð	)ñ
Œð	)ð
Ðr6)rMr%rlr$rkr‹)rlr$r*r“)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ørdr	r:r6r4r‰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
ð
ð
ð
ð
r6r‰cód‡—eZdZdZdddddœZdZ	dejfdˆfd„
Ze	d„¦«Z
d„ZˆxZS)rfrgÚurlÚdescriptionÚclassifiersÚ	platforms)Ú	home_pageÚsummaryÚ
classifierÚplatformFNrMr"rlr$r)r(rkr‹reúdict | NonerÕrÖcól•—t¦« ||||¦«||_||_dSr)Úsuperr’rerÕ)r‘rMrlr)rkrerÕr s       €r4r’zConfigMetadataHandler.__init__"s8ø€õ	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ&ˆÔØ ˆŒ
ˆ
ˆ
r6có—|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     r4r¢zConfigMetadataHandler.parsers/s„€ðÔ%ˆ
ݘTÔ-¸¼
ÐFÑFÔFˆ
ØÔ%ˆ
Ø#Ô9Ðð$Ø"Ø"Ø#Ø×4Ò4°ZÀÑLÔLØ+Ð+¨IÑ6Ô6Ø'Ø%Ø *ØÔ*Ø&ð
ð
ð	
r6có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äre)r‘r_r$r±s    r4r&z$ConfigMetadataHandler._parse_versionEsˀð×"Ò" 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,)rMr"rlr$r)r(rkr‹rerrÕrÖ)
r¡r
rr[rŠÚstrict_moder@Úcurdirr’rr¢r&Ú
__classcell__©r s@r4rfrfs¨ø€€€€€Ø€NðØ Ø#Øð	ð€Gð€Kðð$(Ø#%¤9ð!ð!ð!ð!ð!ð!ð!ðð
ð
ñ„Xð
ð*XðXðXðXðXðXðXr6rfc󔇗eZdZdZdˆfd	„Zed
„¦«Zd„Zdd„Ze	d„¦«Z
d„Zd„Zd„Z
d„Zd„Zd„Zd„Zd„Zd„ZˆxZS)rcrlrMr!r$r)r(rkr‹cóv•—t¦« ||||¦«|j|_i|_dSr)rr’rhrÕre)r‘rMrlr)rkr s     €r4r’zConfigOptionsHandler.__init__bs=ø€õ	‰Œ×Ò˜ WÐ.BÐDUÑVÔVÐVØ"Ô+ˆŒ
Ø+-ˆÔÐÐr6có0—| |d¬¦«S)Nú;)r¿)rÀrÌs  r4Ú_parse_list_semicolonz*ConfigOptionsHandler._parse_list_semicolonms€àŠ˜u°ˆÑ4Ô4Ð4r6có:—| ||j¬¦«S)Nr)rÝrÕ)r‘r_s  r4Ú_parse_file_in_rootz(ConfigOptionsHandler._parse_file_in_rootqs€Ø×Ò °´
ÐÑ>Ô>Ð>r6rnrHr_cóŒ—| | |¦«¦«}t|||¦«d„|D¦«S)Ncó<—g|]}| d¦«°|‘ŒS)ú#rw)ryrÄs  r4r»zAConfigOptionsHandler._parse_requirements_list.<locals>.<listcomp>zs)€ÐDÐDÐD˜¨t¯ª¸sÑ/CÔ/CÐDÐDÐDÐDr6)r4r6r‡)r‘rnr_rps    r4Ú_parse_requirements_listz-ConfigOptionsHandler._parse_requirements_listtsL€à×+Ò+¨D×,DÒ,DÀUÑ,KÔ,KÑLÔLˆÝ-¨e°U¸FÑCÔCÐCðEÐD ÐDÑDÔDÐDr6cóҗ|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_datareÚscriptsÚeager_resourcesÚdependency_linksÚnamespace_packagesr<Úsetup_requiresÚpackagesÚentry_pointsÚ
py_modulesÚpython_requiresÚcmdclass)rÀrÍrÆÚ_parse_cmdclassr	rr:r4Ú_parse_packagesr6r)r‘r'Ú
parse_boolr)Úparse_cmdclasss     r4r¢zConfigOptionsHandler.parsers|s˜€ðÔ%ˆ
ØÔ%ˆ
ØÔ%ˆ
ØÔ-ˆð#Ø$.Ø%Ø!Ø)Ø *Ø"&×"AÒ"AØðHñ#ô#õ!(ØÔ-Ð/Añ!ô!ð#Ô8ØÔ,Ø Ô4Ø$Ý+Ø&ð+
ð
ð	
r6cóv—|jj}tj| |¦«||j¦«Sr)rkrerrHrÆrÕ)r‘r_res   r4rIz$ConfigOptionsHandler._parse_cmdclassœs1€ØÔ,Ô8ˆÝŒ˜t×/Ò/°Ñ6Ô6¸ÀTÄ]ÑSÔSÐSr6có:—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_dirr:)
r¹rÀÚparse_section_packages__findrr©rjrÕrerÚ
find_packages)r‘r_Úfind_directivesÚ
trimmed_valueÚfind_kwargss     r4rJz$ConfigOptionsHandler._parse_packages s·€ð#Ð$5Ð6ˆØŸš™
œ
ˆ
à Ð/Ð/Ø×#Ò# EÑ*Ô*Ð*ð×7Ò7ØŒM×Ò˜o¨rÑ2Ô2ñ
ô
ˆð	×ÒØ%¨¸Ô);Ò;Ø”]Ø!Ô-ð	ñ	
ô	
ð	
õÔ#Ð2Ð2 kÐ2Ð2Ð2r6cóʇ—| ||j¦«}gd¢Šˆ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ó(•—i|]\}}|‰v¯	|¯||“ŒSr:r:)ryÚkrñÚ
valid_keyss   €r4ú
<dictcomp>zEConfigOptionsHandler.parse_section_packages__find.<locals>.<dictcomp>Ãs)ø€ÐVÐVÐV¡  1ÀÀZÀÀÐTUÀq˜!ÀÀÀr6rWNr)rôrÀr–r©)r‘rëÚsection_datarUrWr\s     @r4rQz1ConfigOptionsHandler.parse_section_packages__find¹sxø€ð×2Ò2°?ÀDÔDTÑUÔUˆà4Ð4Ð4ˆ
ØVÐVÐVÐV¨×(:Ò(:Ñ(<Ô(<ÐVÑVÔVˆà—’ Ñ(Ô(ˆØÐØ#(¨¤8ˆK˜Ñ àÐr6cóF—| ||j¦«}||d<dS)z`Parses `entry_points` configuration file section.

        :param dict section_options:
        rEN)rôrÀ©r‘rërps   r4Úparse_section_entry_pointsz/ConfigOptionsHandler.parse_section_entry_pointsËs,€ð
×,Ò,¨_¸dÔ>NÑOÔOˆØ%ˆˆ^ÑÐÐr6có`—| ||j¦«}tj|¦«Sr)rôrÀrÚcanonic_package_data)r‘rëÚpackage_datas   r4Ú_parse_package_dataz(ConfigOptionsHandler._parse_package_dataÓs+€Ø×2Ò2°?ÀDÔDTÑUÔUˆÝÔ*¨<Ñ8Ô8Ð8r6có6—| |¦«|d<dS)z`Parses `package_data` configuration file section.

        :param dict section_options:
        rdN©re©r‘rës  r4Úparse_section_package_dataz/ConfigOptionsHandler.parse_section_package_data×s"€ð
 $×7Ò7¸ÑHÔHˆˆ^ÑÐÐr6có6—| |¦«|d<dS)zhParses `exclude_package_data` configuration file section.

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

        :param dict section_options:
        có8•—‰ d|›d|¦«S)Nzextras_require[rû)r:)r[rñr‘s  €r4r§zCConfigOptionsHandler.parse_section_extras_require.<locals>.<lambda>ìs#ø€˜×6Ò6Ð7MÈÐ7MÐ7MÐ7MÈqÑQÔQ€r6Úextras_requireNrór`s`  r4Úparse_section_extras_requirez1ConfigOptionsHandler.parse_section_extras_requireås<ø€ð
×5Ò5ØØQÐQÐQÐQñ
ô
ˆð
"(ˆÐ
ÑÐÐr6có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   r4Úparse_section_data_filesz-ConfigOptionsHandler.parse_section_data_filesñs;€ð
×,Ò,¨_¸dÔ>NÑOÔOˆÝ#Ô6°v¸t¼}ÑMÔMˆˆ\ÑÐÐr6)rMr!rlr$r)r(rkr‹)rnrHr_rH)r¡r
rr[r’rr4r6r:rr¢rIrJrQrarerirlrprtr.r/s@r4rcrc_s6ø€€€€€Ø€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ðNr6rccó0—eZdZdZdZdZed„¦«ZdS)r€zAmbiguous 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   r4rƒz_AmbiguousMarker.messages0€àF°s´}ÐFÐFˆØ{Š{˜3œ<¨¬¸tÐQSˆ{ÑTÔTÐTr6N)r¡r
rr{r|ryrrƒr:r6r4r€r€úsG€€€€€Ø.€Hð€Hð:€IððUðUñ„[ðUðUðUr6r€có—eZdZdZdS)rz!userguide/declarative_config.htmlN)r¡r
rryr:r6r4rrs€€€€€Ø3€I€I€Ir6r)FF)r&rr'r(r)r(r*r+)r1r!r&rr*r!)r:F)
r1r!r&rr;r<r)r(r*r=)rMrNrOrH)r3rXr*r+)F)r`r!rJr$r)r(r*r=)rnrHrorHrprq)ArÚ
__future__rrörRr@ÚcollectionsrrrÚtypingrrr	r
rrr
rrrrÚpackaging.markersrr}Úpackaging.requirementsrrÚpackaging.specifiersrÚpackaging.versionrrÚ_pathrÚerrorsrrÚwarningsrrßrÚtyping_extensionsrr-r!Údistutils.distr"rHr#r
r$r%r5r9r/rWr0rIr‡r‰rfrcr€rr:r6r4ú<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à"& s¨E°#°s°(¬OÐ';Ô"<ÐÐ<Ð<Ð<Ñ<ðð
 $ CÐ)=Ð$=Ô>ÐÐ>Ð>Ð>Ñ>ØØ	ˆ˜>Ð+AÑ	BÔ	B€ðPUð+ð+ð+ð+ð+ð4ðððð&(Ø!&ð	ððððð>	ð	ð	ð	ððððð2"'ð+ð+ð+ð+ð+ð\2ð2ð2ð2ð@`ð`ð`ð`ð`G˜F”Oñ`ô`ð`ðF	JXðJXðJXðJXðJX˜MÐ*@ÔAñJXôJXðJXðZXNðXNðXNðXNðXN˜=¨Ô8ñXNôXNðXNðvUðUðUðUðUÐ3ñUôUðUð(4ð4ð4ð4ð4Ð4ñ4ô4ð4ð4ð4r6