ž 7’ReÏc@sªdZddlmZddlZddlmZddlZddlZddlZddl m Z m Z ddl m Z mZmZddlmZdd lmZmZdd lmZmZejeƒZGd d „d e ƒZGd d„de ƒZGdd„de ƒZGdd„de ƒZdddgZdZ dZ!ej"dƒZ#dddddddd d!d"d#f Z$ddddd$dddd d!d"d#d%d&d'd(d)fZ%d'd(d)d%d&fZ&ddddd$dddd d!d"d*d+d#d%d&d,d-d.d/d0d1fZ'd.d/d0d,d1d*d+d-fZ(ddddd$dddd d!d"d*d+d#d%d&d,d-d.d/d0d1d2d3d4d5d6fZ)d2d6d3d4d5fZ*e+ƒZ,e,j-e$ƒe,j-e%ƒe,j-e'ƒe,j-e)ƒej"d7ƒZ.d8d9„Z/d:d;„Z0idd<6dd=6dd>6dd?6d$d@6ddA6ddB6ddC6d dD6d!dE6d"dF6d*dG6d+dH6d#dI6d%dJ6d&dK6d,dL6d.dM6d/dN6d4dO6d0dP6d1dQ6d)dR6d(dS6d'dT6d-dU6d2dV6d3dW6d5dX6d6dY6Z1d/d,d.fZ2d0fZ3dfZ4dd%d'd)d(d,d.d/d1d-d$d4d6d5fZ5d-fZ6dfZ7d!d*ddfZ8e9ƒZ:ej"dZƒZ;e<d[d\„Z=Gd]d^„d^e9ƒZ>d_Z?Gd`d„de9ƒZ@dS(auImplementation of the Metadata for Python packages PEPs. Supports all metadata formats (1.0, 1.1, 1.2, and 2.0 experimental). i(uunicode_literalsN(umessage_from_filei(uDistlibExceptionu __version__(uStringIOu string_typesu text_type(u interpret(uextract_by_keyu get_extras(u get_schemeuPEP426_VERSION_REcBs|EeZdZdZdS(uMetadataMissingErroruA required metadata is missingN(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuMetadataMissingErrorsuMetadataMissingErrorcBs|EeZdZdZdS(uMetadataConflictErroru>Attempt to read or write metadata fields that are conflictual.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuMetadataConflictError suMetadataConflictErrorcBs|EeZdZdZdS(u MetadataUnrecognizedVersionErroru Unknown metadata version number.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu MetadataUnrecognizedVersionError$su MetadataUnrecognizedVersionErrorcBs|EeZdZdZdS(uMetadataInvalidErroruA metadata value is invalidN(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuMetadataInvalidError(suMetadataInvalidErroruMetadatauPKG_INFO_ENCODINGuPKG_INFO_PREFERRED_VERSIONuutf-8u1.1u \|uMetadata-VersionuNameuVersionuPlatformuSummaryu DescriptionuKeywordsu Home-pageuAuthoru Author-emailuLicenseuSupported-Platformu Classifieru Download-URLu ObsoletesuProvidesuRequiresu MaintaineruMaintainer-emailuObsoletes-Distu Project-URLu Provides-Distu Requires-DistuRequires-PythonuRequires-ExternaluPrivate-Versionu Obsoleted-ByuSetup-Requires-Distu ExtensionuProvides-Extrau"extra\s*==\s*("([^"]+)"|'([^']+)')cCsP|dkrtS|dkr tS|dkr0tS|dkr@tSt|ƒ‚dS(Nu1.0u1.1u1.2u2.0(u _241_FIELDSu _314_FIELDSu _345_FIELDSu _426_FIELDSu MetadataUnrecognizedVersionError(uversion((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu_version2fieldlistfs    u_version2fieldlistc Csdd„}g}xB|jƒD]4\}}|gdd fkrFqn|j|ƒqWddddg}x®|D]¦}|tkržd|krž|jdƒn|tkrÆd|krÆ|jdƒn|tkrîd|krî|jdƒn|tkrpd|krp|jdƒqpqpWt|ƒdkr4|d St|ƒd krUt d ƒ‚nd|kom||t ƒ}d|koˆ||t ƒ}d|ko£||t ƒ}t |ƒt |ƒt |ƒdkrÛt d ƒ‚n| r| r| rt|krtSn|r dS|rdSdS( u5Detect the best version depending on the fields used.cSs%x|D]}||krdSqWdS(NTF(uTrueuFalse(ukeysumarkersumarker((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu _has_markerts  u"_best_version.._has_markeruUNKNOWNu1.0u1.1u1.2u2.0iiuUnknown metadata setu(You used incompatible 1.1/1.2/2.0 fieldsN(uitemsuNoneuappendu _241_FIELDSuremoveu _314_FIELDSu _345_FIELDSu _426_FIELDSulenuMetadataConflictErroru _314_MARKERSu _345_MARKERSu _426_MARKERSuintuPKG_INFO_PREFERRED_VERSION( ufieldsu _has_markerukeysukeyuvalueupossible_versionsuis_1_1uis_1_2uis_2_0((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu _best_versionrsB  & u _best_versionumetadata_versionunameuversionuplatformusupported_platformusummaryu descriptionukeywordsu home_pageuauthoru author_emailu maintainerumaintainer_emailulicenseu classifieru download_urluobsoletes_distu provides_distu requires_distusetup_requires_disturequires_pythonurequires_externalurequiresuprovidesu obsoletesu project_urluprivate_versionu obsoleted_byu extensionuprovides_extrau[^A-Za-z0-9.]+cCsG|r9tjd|ƒ}tjd|jddƒƒ}nd||fS(uhReturn the distribution name with version. If for_filename is true, return a filename-escaped form.u-u u.u%s-%s(u _FILESAFEusubureplace(unameuversionu for_filename((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu_get_name_and_versionÞs!u_get_name_and_versioncBs—|EeZdZdZd=d=d=ddd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zd>dd„Zdd„Zdd„Zdd „Zd!d"„Zd>d#d$„Zd>d%d&„Zd=d'd(„Zd)d*„Zed+d,„Zd>d-d.„Zd>d/d0„Zd1d2„Zd3d4„Zd5d6„Z d7d8„Z!d9d:„Z"d;d<„Z#d=S(?uLegacyMetadatauaThe legacy metadata of a release. Supports versions 1.0, 1.1 and 1.2 (auto-detected). You can instantiate the class with one of these arguments (or none): - *path*, the path to a metadata file - *fileobj* give a file-like object with metadata as content - *mapping* is a dict-like object - *scheme* is a version scheme name udefaultcCs³|||gjdƒdkr-tdƒ‚ni|_g|_d|_||_|dk rm|j|ƒnB|dk r‰|j|ƒn&|dk r¯|j |ƒ|j ƒndS(Niu'path, fileobj and mapping are exclusive( ucountuNoneu TypeErroru_fieldsurequires_filesu _dependenciesuschemeureadu read_fileuupdateuset_metadata_version(uselfupathufileobjumappinguscheme((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu__init__÷s        uLegacyMetadata.__init__cCst|jƒ|jd[s u,LegacyMetadata.read_file..uUNKNOWNN( umessage_from_fileu_fieldsu _ALL_FIELDSu _LISTFIELDSuget_allu_LISTTUPLEFIELDSuNoneusetuset_metadata_version(uselfufileobumsgufielduvaluesuvalue((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu read_fileNs     uLegacyMetadata.read_filec Cs>tj|dddƒ}z|j||ƒWd|jƒXdS(u&Write the metadata fields to filepath.uwuencodinguutf-8N(ucodecsuopenu write_fileuclose(uselfufilepathu skip_unknownufp((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuwritedsuLegacyMetadata.writecCs |jƒxøt|dƒD]æ}|j|ƒ}|rT|dgdgfkrTqn|tkr‚|j||dj|ƒƒqn|tkr»|dkr¯|jddƒ}n|g}n|tkrÝdd„|Dƒ}nx!|D]}|j|||ƒqäWqWd S( u0Write the PKG-INFO format data to a file object.uMetadata-VersionuUNKNOWNu,u Descriptionu u |cSsg|]}dj|ƒ‘qS(u,(ujoin(u.0uvalue((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu }s u-LegacyMetadata.write_file..N( uset_metadata_versionu_version2fieldlistugetu_ELEMENTSFIELDu _write_fieldujoinu _LISTFIELDSureplaceu_LISTTUPLEFIELDS(uselfu fileobjectu skip_unknownufielduvaluesuvalue((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu write_filels        uLegacyMetadata.write_filec s°‡fdd†}|sn^t|dƒrUxL|jƒD]}||||ƒq7Wn$x!|D]\}}|||ƒq\W|r¬x*|jƒD]\}}|||ƒqŒWndS(u…Set metadata values from the given iterable `other` and kwargs. Behavior is like `dict.update`: If `other` has a ``keys`` method, they are looped over and ``self[key]`` is assigned ``other[key]``. Else, ``other`` is an iterable of ``(key, value)`` iterables. Keys that don't match a metadata field or that have an empty value are dropped. cs2|tkr.|r.ˆjˆj|ƒ|ƒndS(N(u _ATTR2FIELDusetu _convert_name(ukeyuvalue(uself(u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu_setŒsu#LegacyMetadata.update.._setukeysN(uhasattrukeysuitems(uselfuotherukwargsu_setukuv((uselfu5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuupdate‚s uLegacyMetadata.updatec Cs |j|ƒ}|tks'|dkrtt|ttfƒ rtt|tƒrkdd„|jdƒDƒ}qºg}nF|tkrºt|ttfƒ rºt|tƒr±|g}qºg}ntj t j ƒrÏ|d}t |j ƒ}|tkrF|d k rFxÌ|D];}|j|jdƒdƒstjd|||ƒqqWqÏ|tkr‰|d k r‰|j|ƒsÌtjd |||ƒqÌqÏ|tkrÏ|d k rÏ|j|ƒsÌtjd |||ƒqÌqÏn|tkrü|d krü|j|ƒ}qün||j|¥s u&LegacyMetadata.set..u,uNameu;iu%r: %r is not valid (field %r)u(%r: %r is not a valid version (field %r)u DescriptionN(u _convert_nameu_ELEMENTSFIELDu isinstanceulistutupleu string_typesusplitu _LISTFIELDSuloggeru isEnabledForulogginguWARNINGu get_schemeuschemeu_PREDICATE_FIELDSuNoneuis_valid_matcheruwarningu_VERSIONS_FIELDSuis_valid_constraint_listu_VERSION_FIELDSuis_valid_versionu_UNICODEFIELDSu_remove_line_prefixu_fields(uselfunameuvalueu project_nameuschemeuv((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyusetžs@          uLegacyMetadata.setcCs|j|ƒ}||jkr@|tkr<|j|ƒ}n|S|tkr]|j|}|S|tkrØ|j|}|dkr†gSg}xE|D]=}|tkrµ|j|ƒq“|j|d|dfƒq“W|S|t kr|j|}t |t ƒr|j dƒSn|j|S(uGet a metadata field.iiu,N( u _convert_nameu_fieldsu_MISSINGu_default_valueu_UNICODEFIELDSu _LISTFIELDSuNoneu_LISTTUPLEFIELDSuappendu_ELEMENTSFIELDu isinstanceu string_typesusplit(uselfunameudefaultuvalueuresuval((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyugetÊs.          uLegacyMetadata.getc sx|jƒgg}}x*d D]"}||kr|j|ƒqqW|rx|gkrxddj|ƒ}t|ƒ‚nx*d D]"}||kr|j|ƒqqW|ddkr¿||fSt|jƒ‰‡fd d †}x‹t|ftˆjft ˆj ffD]b\}}xS|D]K} |j | dƒ} | dk r|| ƒ r|jd | | fƒqqWqW||fS(ukCheck if the metadata is compliant. If strict is True then raise if no Name or Version are provideduNameuVersionumissing required metadata: %su, u Home-pageuAuthoruMetadata-Versionu1.2cs5x.|D]&}ˆj|jdƒdƒsdSqWdS(Nu;iFT(uis_valid_matcherusplituFalseuTrue(uvalueuv(uscheme(u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuare_valid_constraintss u3LegacyMetadata.check..are_valid_constraintsuWrong value for %r: %s(uNameuVersion(u Home-pageuAuthorN( uset_metadata_versionuappendujoinuMetadataMissingErroru get_schemeuschemeu_PREDICATE_FIELDSu_VERSIONS_FIELDSuis_valid_constraint_listu_VERSION_FIELDSuis_valid_versionugetuNone( uselfustrictumissinguwarningsuattrumsguare_valid_constraintsufieldsu controllerufielduvalue((uschemeu5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyucheckçs2          "uLegacyMetadata.checkcCs0|jƒdB}i}x;|D]3\}}| s?||jkr|||||D]3\}}| s||jkrò||||@s u)LegacyMetadata.todict..u1.1uprovidesuProvidesurequiresuRequiresu obsoletesu Obsoletes(umetadata_versionuMetadata-Version(unameuName(uversionuVersion(usummaryuSummary(u home_pageu Home-page(uauthoruAuthor(u author_emailu Author-email(ulicenseuLicense(u descriptionu Description(ukeywordsuKeywords(uplatformuPlatform(u classifieru Classifier(u download_urlu Download-URL( (umetadata_versionuMetadata-Version(unameuName(uversionuVersion(usummaryuSummary(u home_pageu Home-page(uauthoruAuthor(u author_emailu Author-email(ulicenseuLicense(u descriptionu Description(ukeywordsuKeywords(uplatformuPlatform(u classifieru Classifier(u download_urlu Download-URL(u requires_distu Requires-Dist(urequires_pythonuRequires-Python(urequires_externaluRequires-External(u provides_distu Provides-Dist(uobsoletes_distuObsoletes-Dist(u project_urlu Project-URL(u maintaineru Maintainer(umaintainer_emailuMaintainer-email((u requires_distu Requires-Dist(urequires_pythonuRequires-Python(urequires_externaluRequires-External(u provides_distu Provides-Dist(uobsoletes_distuObsoletes-Dist(u project_urlu Project-URL(u maintaineru Maintainer(umaintainer_emailuMaintainer-email(uprovidesuProvides(urequiresuRequires(u obsoletesu Obsoletes((uprovidesuProvides(urequiresuRequires(u obsoletesu Obsoletes(uset_metadata_versionu_fields(uselfu skip_missingu mapping_1_0udataukeyu field_nameu mapping_1_2u mapping_1_1((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyutodictsP  %uLegacyMetadata.todictcCsL|ddkr:x'dD]}||kr||=qqWn|d|7as u)LegacyMetadata.values..(ukeys(uself((uselfu5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuvalues`suLegacyMetadata.valuescs‡fdd†ˆjƒDƒS(Ncs g|]}|ˆ|f‘qS(((u.0ukey(uself(u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu ds u(LegacyMetadata.items..(ukeys(uself((uselfu5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuitemscsuLegacyMetadata.itemscCsd|jj|j|jfS(Nu <%s %s %s>(u __class__u__name__unameuversion(uself((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu__repr__fsuLegacyMetadata.__repr__NF($u__name__u __module__u __qualname__u__doc__uNoneu__init__uset_metadata_versionu _write_fieldu __getitem__u __setitem__u __delitem__u __contains__u _convert_nameu_default_valueu_remove_line_prefixu __getattr__uFalseu get_fullnameuis_fielduis_multi_fieldureadu read_fileuwriteu write_fileuupdateusetu_MISSINGugetucheckutodictuadd_requirementsukeysu__iter__uvaluesuitemsu__repr__(u __locals__((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuLegacyMetadataës>                 ,,;    uLegacyMetadatau pydist.jsoncBsÌ|EeZdZdZejdƒZejdejƒZe Z ejdƒZ dZ de Zifd6fd6dQd 6Zd Zd Zieffd 6edRfd6e dSfd6e dTfd 6ZdUZdPdPdPddd„ZedVƒZdPefZdPefZi defd6defd6ed6ed6ed6defd6ed6ed 6ed!6ed"6d#efd$6dWd&6dXd 6Z[[d(d)„ZdPd*d+„Zd,d-„Ze d.d/„ƒZ!e d0d1„ƒZ"e"j#d2d1„ƒZ"dPdPd3d4„Z$e d5d6„ƒZ%e d7d8„ƒZ&e&j#d9d8„ƒZ&d:d;„Z'd<d=„Z(d>d?„Z)d@dA„Z*idBd6dCd6dDd6dEd 6dFdG6d#d$6Z+dHdI„Z,dPdPdYdZdJdK„Z/dLdM„Z0dNdO„Z1dPS([uMetadatauÊ The metadata of a release. This implementation uses 2.0 (JSON) metadata where possible. If not possible, it wraps a LegacyMetadata instance which handles the key-value metadata format. u ^\d+(\.\d+)*$u!^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$u .{1,2047}u2.0u distlib (%s)unameuversionulegacyusummaryuqname version license summary description author author_email keywords platform home_page classifiers download_urluwextras run_requires test_requires build_requires dev_requires provides meta_requires obsoleted_by supports_environmentsumetadata_versionu_legacyu_datauschemeudefaultcCsª|||gjdƒdkr-tdƒ‚nd|_d|_||_|dk r«y|j||ƒ||_Wq¦tk r§td|d|ƒ|_|j ƒYq¦Xnûd}|rÞt |dƒ}|j ƒ}WdQXn|ró|j ƒ}n|dkri|j d6|j d6|_n‡t|tƒs@|jdƒ}ny)tj|ƒ|_|j|j|ƒWn:tk r¥td t|ƒd|ƒ|_|j ƒYnXdS( Niu'path, fileobj and mapping are exclusiveumappinguschemeurbumetadata_versionu generatoruutf-8ufileobj(ucountuNoneu TypeErroru_legacyu_datauschemeu_validate_mappingu MetadataUnrecognizedVersionErroruLegacyMetadatauvalidateuopenureaduMETADATA_VERSIONu GENERATORu isinstanceu text_typeudecodeujsonuloadsu ValueErroruStringIO(uselfupathufileobjumappinguschemeudatauf((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu__init__˜s>          uMetadata.__init__ulicenseukeywordsu Requires-Distu run_requiresuSetup-Requires-Distubuild_requiresu dev_requiresu test_requiresu meta_requiresuProvides-Extrauextrasumodulesu namespacesuexportsucommandsu Classifieru classifiersu Download-URLu source_urluMetadata-VersioncCstj|dƒ}tj|dƒ}||kr»||\}}|jrˆ|dkrs|dkrgdn|ƒ}q¸|jj|ƒ}q |dkršdn|ƒ}|jj||ƒ}nQ||krÜtj||ƒ}n0|jrú|jj|ƒ}n|jj|ƒ}|S(Nu common_keysu mapped_keys(uobjectu__getattribute__u_legacyuNoneugetu_data(uselfukeyucommonumappedulkumakeruresultuvalue((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu__getattribute__Üs      uMetadata.__getattribute__cCso||jkrk|j|\}}|p.|j|krk|j|ƒ}|shtd||fƒ‚qhqkndS(Nu*%r is an invalid value for the %r property(uSYNTAX_VALIDATORSuschemeumatchuMetadataInvalidError(uselfukeyuvalueuschemeupatternu exclusionsum((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu_validate_valueñsuMetadata._validate_valuecCs"|j||ƒtj|dƒ}tj|dƒ}||krŽ||\}}|jr~|dkrnt‚n||j|}||krL|dkrsd }n|}||||.process_entriesuProvides-Extrau Requires-DistuSetup-Requires-Dist( u_datau_legacyuAssertionErroruLegacyMetadatauLEGACY_MAPPINGuitemsu run_requiresu meta_requiresubuild_requiresu dev_requiresuextrasusorted(uselfuprocess_entriesuresultunmdunkuokur1ur2((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu _to_legacy®s     uMetadata._to_legacycCs||gjdƒdkr*tdƒ‚n|jƒ|r|jrO|j}n |jƒ}|rw|j|d|ƒq|j|d|ƒnŒ|jr¥|jƒ}n |j }|rÙt j ||dd dddd ƒn@t j|dd ƒ)}t j ||dd dddd ƒWdQXdS( Niu)Exactly one of path and fileobj is neededu skip_unknownu ensure_asciiuindentiu sort_keysuwuutf-8T(ucountuNoneu ValueErroruvalidateu_legacyu _to_legacyuwriteu write_fileu _from_legacyu_dataujsonudumpuTrueucodecsuopen(uselfupathufileobjulegacyu skip_unknownu legacy_mduduf((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuwriteÓs&       uMetadata.writecCsÄ|jr|jj|ƒn¤|jjdgƒ}d}x0|D](}d|kr>d|kr>|}Pq>q>W|dkr–i|d6}|jd|ƒn*t|dƒt|ƒB}t|ƒ|d(unameuversionu __class__u__name__umetadata_version(uselfunameuversion((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu__repr__þs uMetadata.__repr__N(ulegacy(ulegacy(ulegacy(ulegacy(u_legacyu_datauscheme(unameuversionulicenseukeywordsusummary(u Download-URLN(uMetadata-VersionNFT(2u__name__u __module__u __qualname__u__doc__ureucompileuMETADATA_VERSION_MATCHERuIu NAME_MATCHERuPEP426_VERSION_REuVERSION_MATCHERuSUMMARY_MATCHERuMETADATA_VERSIONu __version__u GENERATORuMANDATORY_KEYSu INDEX_KEYSuDEPENDENCY_KEYSuSYNTAX_VALIDATORSu __slots__uNoneu__init__usetu common_keysulistu none_listudictu none_dictu mapped_keysu__getattribute__u_validate_valueu __setattr__upropertyuname_and_versionuprovidesusetteruget_requirementsu dictionaryu dependenciesu_validate_mappinguvalidateutodictu _from_legacyuLEGACY_MAPPINGu _to_legacyuFalseuTrueuwriteuadd_requirementsu__repr__(u __locals__((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyuMetadatans€      ,           *     % (Au__doc__u __future__uunicode_literalsucodecsuemailumessage_from_fileujsonuloggingureuuDistlibExceptionu __version__ucompatuStringIOu string_typesu text_typeumarkersu interpretuutiluextract_by_keyu get_extrasuversionu get_schemeuPEP426_VERSION_REu getLoggeru__name__uloggeruMetadataMissingErroruMetadataConflictErroru MetadataUnrecognizedVersionErroruMetadataInvalidErroru__all__uPKG_INFO_ENCODINGuPKG_INFO_PREFERRED_VERSIONucompileu _LINE_PREFIXu _241_FIELDSu _314_FIELDSu _314_MARKERSu _345_FIELDSu _345_MARKERSu _426_FIELDSu _426_MARKERSusetu _ALL_FIELDSuupdateuEXTRA_REu_version2fieldlistu _best_versionu _ATTR2FIELDu_PREDICATE_FIELDSu_VERSIONS_FIELDSu_VERSION_FIELDSu _LISTFIELDSu_LISTTUPLEFIELDSu_ELEMENTSFIELDu_UNICODEFIELDSuobjectu_MISSINGu _FILESAFEuFalseu_get_name_and_versionuLegacyMetadatauMETADATA_FILENAMEuMetadata(((u5/tmp/pip-zej_zi-build/pip/_vendor/distlib/metadata.pyu sÚ                                         8            ÿ