U
    d1                    @   s   d Z ddlZddlmZ ededededd	ZedZi dfd
dZi dfddZ	i dfddZ
i dfddZi dfddZi dfddZi dfddZi dfddZi dfddZi dfddZi dfddZi dfd d!ZdS )"z2.16.3    N   )JsonSchemaValueException^.*$.+^.+$z^[^@]+@[^@]+\.[^@]+\Z)r   r   r   idn-email_re_patternc                 C   s   t | ||pdd  | S )Ndata )[validate_https___packaging_python_org_en_latest_specifications_declaring_build_dependenciesr   custom_formatsname_prefix r   h/tmp/pip-install-xwugzb3_/setuptools/setuptools/config/_validate_pyproject/fastjsonschema_validations.pyvalidate   s    r   c              2      sT  t | t	std|pd d | d|p&d d dddddd	d
ddgdddddddddgddiddddddddgddddddgd dd!d"d#d$gddd%d&ddd'd(ddd)d*gd+d,d-d.d/gdd0d1d2d3gd+dd4d5dd6d7gd+id5gd8d9dd:d;id9gd8gid<dd=d>d?gd@dAid<gd8gdBgdCddDdEdFgdGdHd5ddIdJgd+id5gd8d9ddKdLdMgd+id9gd8gdNddOdPidQdRdSgdTddOdPidUdVgdTdddidWdXdddYdZd[d\d]gdTdd^dd_dd`daidbdcdddegdfdcdgdedhdigdfdjdkdldmgdndoidd_dOdciidpddqdOdridsddtdnd&idd_ddOdriduidvddwdxgdydzd{d|d}d~ddddddddddgidddgddgdddzidgdiddddddddddg	ddzgdgddPdddddddgd+dddd[dddcdddddddddgdndidd_dddgdddiddrddddddddddddddddgddddd;idddiiddĜddddddddddddddgdddddiduddgddd&dadԜddgddd&dadԜddd؜ddddiddۜddgdddidԜddddddddgdddOdiddOdigdCddddgdddddidOdigidddiidddddgddddndiddigiddddiduidddddgdddddgddddndiddigiddddiduidddddadddddddaddۜdd ddgdddddiduiddddddd	gdddd
daiddddidddgdddddddgdOdidOdigdCdOdidOdidOdidOdiddndidddOdiiddOdidd<ddiiigd5gdddddddddndidndigddd d!ddd5dddidddidugiid5gd"d#dd$d%gddd&ddiid&gd'dd(ddd)dd*d+gdd,dddid-dd.d/gddiddd0d/gddiddאd1d2gd+d3d4id5d6d7d8d9d:dd!d"d#d$gddd%d&ddd'd(ddd)d*gd+d,d-d.d/gdd0d1d2d3gd+dd4d5dd6d7gd+id5gd8d9dd:d;id9gd8gid<dd=d>d?gd@dAid<gd8gdBgdCddDdEdFgdGdHd5ddIdJgd+id5gd8d9ddKdLdMgd+id9gd8gdNddOdPidQdRdSgdTddOdPidUdVgdTdddidWdXdddYdZd[d\d]gdTdd^dd_dd`daidbdcdddegdfdcdgdedhdigdfdjdkdldmgdndoidd_dOdciidpddqdOdridsddtdnd&idd_ddOdriduidvddwdxgdydzd{d|d}d~ddddddddddgidddgddgdddzidgdiddddddddddg	ddzgdgddPdddddddgd+dddd[dddcdddddddddgdndidd_dddgdddiddrdddddddd;dd<t | t}|rPt|  }d=|kr|d= | d=  t  t
svtd|
pd d>  d|
p d d? dddddddgddiddddddddgddddddgd dd<t  t}|rt }t fd@dAdBD s$td|
pd dC  d|
pd d? dddddddgddiddddddddgddddddgd dDd<t  }d|kr4|d  d }t |tt	fstd|phd dE |d|p|d dF ddddgddiddd<t |tt	f}	|	r4t|}
t
|D ]l\}}t |ts0td|pd dGjf t  dH |d|p
d dGjf t  d ddidd<qƐdI|kr|dI  dI }t |tstd|pnd dJ |d|pd dK dddddd<t |tr|d |std|pd dL |d|pd dK dddddnd<dM|kr |dM  dM }t |tt	fsltd|p2d dN |d|pFd dO dddgdddddd<t |tt	f}|r t|}t
|D ]n\}}t |tstd|pd dPjf t  dH |d|pd dPjf t  d ddddd<q|rtd|pd dQ t| dR  d|p4d d? dddddddgddiddddddddgddddddgd dSd<dT|kr|dT | dT }t|||pddU  dV|kr|dV | dV }t |tstd|p d dW |d|pd dX dddddddddgddddd;idddiiddĜddddddddddddddgdddddiduddgddd&dadԜddgddd&dadԜddd؜ddddiddۜddgdddidԜddddddddgdddOdiddOdigdCddddgdddddidOdigidddiidddddgddddndiddigiddddiduidddddgdddddgddddndiddigiddddiduidddddadddddddaddۜdd ddgdddddiduiddddddd	gdddd
daiddddidddgdddddddgdOdidOdigdCdOdidOdidOdidOdiddndidddOdiiddOdidd<ddiiigd5gdddddddddndidndigddd d!ddd5dddidddidugiid5gd"d#dd$d%gddd&ddiid&gd'dd(ddd)dd*d+gdd,dddid-dd.d/gddiddd0d/gddiddאd1d2gd+d3d4id5d6d7d8d9dd<t |t}|rt| }dY|krP|dY |dY }t|||pFddZ  d[|kr|d[ |d[ }t|||pdd\  |rPtd|pd d] t| dR | d|pd d dddddd	d
ddgdddddddddgddiddddddddgddddddgd dd!d"d#d$gddd%d&ddd'd(ddd)d*gd+d,d-d.d/gdd0d1d2d3gd+dd4d5dd6d7gd+id5gd8d9dd:d;id9gd8gid<dd=d>d?gd@dAid<gd8gdBgdCddDdEdFgdGdHd5ddIdJgd+id5gd8d9ddKdLdMgd+id9gd8gdNddOdPidQdRdSgdTddOdPidUdVgdTdddidWdXdddYdZd[d\d]gdTdd^dd_dd`daidbdcdddegdfdcdgdedhdigdfdjdkdldmgdndoidd_dOdciidpddqdOdridsddtdnd&idd_ddOdriduidvddwdxgdydzd{d|d}d~ddddddddddgidddgddgdddzidgdiddddddddddg	ddzgdgddPdddddddgd+dddd[dddcdddddddddgdndidd_dddgdddiddrddddddddddddddddgddddd;idddiiddĜddddddddddddddgdddddiduddgddd&dadԜddgddd&dadԜddd؜ddddiddۜddgdddidԜddddddddgdddOdiddOdigdCddddgdddddidOdigidddiidddddgddddndiddigiddddiduidddddgdddddgddddndiddigiddddiduidddddadddddddaddۜdd ddgdddddiduiddddddd	gdddd
daiddddidddgdddddddgdOdidOdigdCdOdidOdidOdidOdiddndidddOdiiddOdidd<ddiiigd5gdddddddddndidndigddd d!ddd5dddidddidugiid5gd"d#dd$d%gddd&ddiid&gd'dd(ddd)dd*d+gdd,dddid-dd.d/gddiddd0d/gddiddאd1d2gd+d3d4id5d6d7d8d9d:dd!d"d#d$gddd%d&ddd'd(ddd)d*gd+d,d-d.d/gdd0d1d2d3gd+dd4d5dd6d7gd+id5gd8d9dd:d;id9gd8gid<dd=d>d?gd@dAid<gd8gdBgdCddDdEdFgdGdHd5ddIdJgd+id5gd8d9ddKdLdMgd+id9gd8gdNddOdPidQdRdSgdTddOdPidUdVgdTdddidWdXdddYdZd[d\d]gdTdd^dd_dd`daidbdcdddegdfdcdgdedhdigdfdjdkdldmgdndoidd_dOdciidpddqdOdridsddtdnd&idd_ddOdriduidvddwdxgdydzd{d|d}d~ddddddddddgidddgddgdddzidgdiddddddddddg	ddzgdgddPdddddddgd+dddd[dddcdddddddddgdndidd_dddgdddiddrdddddddd;dSd<| S (^  Nr	   r    must be object&http://json-schema.org/draft-07/schemazShttps://packaging.python.org/en/latest/specifications/declaring-build-dependencies/z+Data structure for ``pyproject.toml`` fileszKFile format containing build-time configurations for the Python ecosystem. zO:pep:`517` initially defined a build-system independent format for source treeszQwhich was complemented by :pep:`518` to provide a way of specifying dependencies zfor building Python projects.zYPlease notice the ``project`` table (as initially defined in  :pep:`621`) is not includedz3in this schema and should be considered separately.objectFz&Table used to store build-related dataarrayzKList of dependencies in the :pep:`508` format required to execute the buildz9system. Please notice that the resulting dependency graphz**MUST NOT contain cycles**typestringr   $$descriptionitemszLPython object that will be used to perform the build according to :pep:`517`zpep517-backend-referencer   descriptionformatzDList of directories to be prepended to ``sys.path`` when loading thezback-end, and running its hooksz0Should be a path (TODO: enforce it with format?))r   $comment)requiresbuild-backendbackend-pathr   )r   r   additionalProperties
propertiesrequiredQhttps://packaging.python.org/en/latest/specifications/declaring-project-metadata/0Package metadata stored in the ``project`` tableBData structure for the **project** table inside ``pyproject.toml``$(as initially defined in :pep:`621`)IThe name (primary identifier) of the project. MUST be statically defined.pep508-identifier6The version of the project as supported by :pep:`440`.pep440'The `summary description of the projectF<https://packaging.python.org/specifications/core-metadata/#summary>`_r   r   A`Full/detailed description of the project in the form of a README,<https://peps.python.org/pep-0621/#readme>`_Gwith meaning similar to the one defined in `core metadata's DescriptionJ<https://packaging.python.org/specifications/core-metadata/#description>`_DRelative path to a text file (UTF-8) containing the full descriptionDof the project. If the file path ends in case-insensitive ``.md`` or8``.rst`` suffixes, then the content-type is respectively#``text/markdown`` or ``text/x-rst``anyOffile<Relative path to a text file containing the full descriptionof the project.r"   r#   text!Full text describing the project.r   r   content-type2Content-type (:rfc:`1341`) of the full description>(e.g. ``text/markdown``). The ``charset`` parameter is assumedUTF-8 when not present."TODO: add regex pattern or format?r   r   r   r   ZallOfr   oneOfpep508-versionspec/`The Python version requirements of the projectO<https://packaging.python.org/specifications/core-metadata/#requires-python>`_.r   r   r   ?`Project license <https://peps.python.org/pep-0621/#license>`_.DRelative path to the file (UTF-8) which contains the license for theproject.7The license of the project whose meaning is that of the%`License field from the core metadataG<https://packaging.python.org/specifications/core-metadata/#license>`_.r   rG   $ref#/definitions/authorJThe people or organizations considered to be the 'authors' of the project.NThe exact meaning is open to interpretation (e.g. original or primary authors,/current maintainers, or owners of the package).r   r   r   NThe people or organizations considered to be the 'maintainers' of the project.FSimilarly to ``authors``, the exact meaning is open to interpretation.NList of keywords to assist searching for the distribution in a larger catalog.r   r   r   trove-classifier3`PyPI classifier <https://pypi.org/classifiers/>`_.r   r   r   4`Trove classifiers <https://pypi.org/classifiers/>`_which apply to the project.@URLs associated with the project in the form ``label => value``.r   urlr   r   r   r   r!   patternProperties#/definitions/entry-point-groupzDInstruct the installer to create command-line wrappers for the givenzL`entry points <https://packaging.python.org/specifications/entry-points/>`_.)rS   r   z;Instruct the installer to create GUI wrappers for the givenzJThe difference between ``scripts`` and ``gui-scripts`` is only relevant inzWindows.@Instruct the installer to expose the given modules/functions via9``entry-point`` discovery mechanism (useful for plugins).9More information available in the `Python packaging guide><https://packaging.python.org/specifications/entry-points/>`_.r   python-entrypoint-groupr   propertyNamesr!   rf   !Project (mandatory) dependencies.#/definitions/dependencyr   r   r   #Optional dependency for the projectr   r   r   r   rn   r!   rf   GSpecifies which fields are intentionally unspecified and expected to be#dynamically provided by build toolsenumversionr   readmerequires-pythonlicenseauthorsmaintainerskeywordsclassifiersurlsscriptsgui-scriptsentry-pointsdependenciesoptional-dependenciesnamerx   r   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   dynamicr   r   const version is listed in ``dynamic``containsr   r#   r"   According to :pep:`621`:H    If the core metadata specification lists a field as "Required", thenH    the metadata MUST specify the field statically or list it in dynamic"In turn, `core metadata`_ defines:=    The required fields are: Metadata-Version, Name, Version.&    All the other fields are optional.ISince ``Metadata-Version`` is defined by the build back-end, ``name`` andE``version`` are the only mandatory information in ``pyproject.toml``.M.. _core metadata: https://packaging.python.org/specifications/core-metadata/notz	$$comment=version should be statically defined in the ``version`` fieldr#   r   Author or Maintainer5https://peps.python.org/pep-0621/#authors-maintainersIMUST be a valid email name, i.e. whatever can be put as a name, before anemail, in :rfc:`822`.	idn-emailMUST be a valid email addressr   email$idtitler   r   r!   r"   Entry-pointsLEntry-points are grouped together to indicate what sort of capabilities theyprovide.See the `packaging guides=<https://packaging.python.org/specifications/entry-points/>`_and `setuptools docsC<https://setuptools.pypa.io/en/latest/userguide/entry_point.html>`_for more information.python-entrypoint-name6Reference to a Python object. It is either in the form<``importable.module``, or ``importable.module:object.attr``.python-entrypoint-reference9https://packaging.python.org/specifications/entry-points/r   r   r   r   r   r   r   r   rn   r!   rf   
Dependency5Project dependency specification according to PEP 508pep508r   r   r   r   r   authorzentry-point-group
dependency$schemar   r   r   r   r"   r#   r!   ifZthendefinitions"https://docs.python.org/3/install/``tool.distutils`` tableGOriginally, ``distutils`` allowed developers to configure arguments for7``setup.py`` scripts via `distutils configuration filesE<https://docs.python.org/3/install/#distutils-configuration-files>`_.@``tool.distutils`` subtables could be used with the same purpose(NOT CURRENTLY IMPLEMENTED).global4Global options applied to all ``distutils`` commandsr   CTODO: Is there a practical way of making this schema more specific?r   r   r   r   r   r"   rf   r   =https://setuptools.pypa.io/en/latest/references/keywords.html``tool.setuptools`` tableLPlease notice for the time being the ``setuptools`` project does not specify3a way of configuring builds via ``pyproject.toml``.MTherefore this schema should be taken just as a *"thought experiment"* on how@this *might be done*, by following the principles established inO`ini2toml <https://ini2toml.readthedocs.io/en/latest/setuptools_pep621.html>`_.,It considers only ``setuptools`` `parametersJ<https://setuptools.pypa.io/en/latest/userguide/declarative_config.html>`_Tthat can currently be configured via ``setup.cfg`` and are not covered by :pep:`621`Gbut intentionally excludes ``dependency_links`` and ``setup_requires``.INOTE: ``scripts`` was renamed to ``script-files`` to avoid confusion with2entry-point based scripts (defined in :pep:`621`).?Package and virtual package names contained within this package**(not supported by pip)**r   r   r   ,Packages which this package renders obsoleteDWhether the project can be safely installed and run from a zip file.booleanr   r   <Legacy way of defining scripts (entry-points are preferred).1TODO: is this field deprecated/should be removed?r   r   r   r   FResources that should be extracted together, if any of them is needed,<or if any C extensions included in the project are imported.5Packages that should be included in the distribution.7It can be given either as a list of package identifiers:or as a ``dict``-like structure with a single key ``find``&which corresponds to a dynamic call to4``setuptools.config.expand.find_packages`` function.MThe ``find`` key is associated with a nested ``dict``-like structure that canDcontain ``where``, ``include``, ``exclude`` and ``namespaces`` keys,;mimicking the keyword arguments of the associated function.#Array of Python package identifiers#/definitions/package-namer   r   r   #/definitions/find-directiveR:class:`dict`-like structure mapping from package names to directories where theircode can be found.FThe empty string (as key) means that all packages are contained inside9the given directory will be included in the distribution.rG   r   r   r   r!   rn   rf   5Mapping from package names to lists of glob patterns.LUsually this option is not needed when using ``include-package-data = true``MFor more information on how to include data files, check ``setuptools`` `docsB<https://setuptools.pypa.io/en/latest/userguide/datafiles.html>`_.python-module-name*CAutomatically include any data files inside the package directories%that are specified by ``MANIFEST.in``r   r   LMapping from package names to lists of glob patterns that should be excludedEhttps://setuptools.pypa.io/en/latest/userguide/package_discovery.htmlr   r   r   'Modules that setuptools will manipulate0TODO: clarify the relationship with ``packages``M**DEPRECATED**: dict-like structure where each key represents a directory andFthe value is a list of glob patterns that should be installed in them.BPlease notice this don't work with wheels. See `data files supportA<https://setuptools.pypa.io/en/latest/userguide/datafiles.html>`_r   r   rf   MMapping of distutils-style command names to ``setuptools.Command`` subclassesJwhich in turn should be represented by strings with a qualified class name+(i.e., "dotted" form with module), e.g.::

;    cmdclass = {mycmd = "pkg.subpkg.module.CommandClass"}

FThe command class should be a directly defined at the top-level of the%containing module (no class nesting).python-qualified-identifierKPROVISIONAL: List of glob patterns for all license files being distributed.%(might become standard with PEP 639).BBy default: ``['LICEN[CS]E*', 'COPYING*', 'NOTICE*', 'AUTHORS*']``HTODO: revise if PEP 639 is accepted. Probably ``project.license-files``?r   r   r   r   @Instructions for loading :pep:`621`-related metadata dynamicallyBA version dynamically loaded via either the ``attr:`` or ``file:``Mdirectives. Please make sure the given file or attribute respects :pep:`440`.#/definitions/attr-directive#/definitions/file-directivepython-identifierr   rn   r!   rf   r"   r7   r#   rx   r   r   r   r   r   ry   r   r   r!   r"   	platformsprovides	obsoleteszip-safescript-fileseager-resourcespackagespackage-dirpackage-datainclude-package-dataexclude-package-datanamespace-packages
py-modules
data-filescmdclasslicense-filesr   Valid package name+Valid package name (importable or PEP 561).pep561-stub-namer   r   r   r   r7   'file:' directiveBValue is read from a file (or list of files and then concatenated)r   r   r   r   r!   r"   r#   'attr:' directiveHValue is read from a module attribute. Supports callables and iterables;(unsupported types are cast via ``str()``attrr   r   r   r   r!   r"   r#   'find:' directivefindDynamic `package discoveryJ<https://setuptools.pypa.io/en/latest/userguide/package_discovery.html>`_.BDirectories to be searched for packages (Unix-style relative path)r   r   r   <Exclude packages that match the values listed in this field.6Can container shell-style wildcards (e.g. ``'pkg.*'``)BRestrict the found packages to just the ones listed in this field.CWhen ``True``, directories without a ``__init__.py`` file will also3be scanned for :pep:`420`-style implicit namespaceswhereexcludeinclude
namespacesr   r   r!   r"   r   r   r   r!   r"   zpackage-namezfile-directivezattr-directivezfind-directiver   r   r   r   r   r!   r"   r   )	distutils
setuptools)r   r"   )build-systemprojecttool)r   r   r   r   r   r!   r"   rR  valuer   Z
definitionZrulerQ  z.build-system must be objectz.build-systemc                 3   s   | ]}| kV  qd S Nr   .0propZdata__buildsystemr   r   	<genexpr>-   s     znvalidate_https___packaging_python_org_en_latest_specifications_declaring_build_dependencies.<locals>.<genexpr>)r   z2.build-system must contain ['requires'] propertiesr#   z$.build-system.requires must be arrayz.build-system.requiresz7.build-system.requires[{data__buildsystem__requires_x}] must be stringr   z*.build-system.build-backend must be stringz.build-system.build-backendz<.build-system.build-backend must be pep517-backend-referencer    z(.build-system.backend-path must be arrayz.build-system.backend-pathz>.build-system.backend-path[{data__buildsystem__backendpath_x}]z.build-system must not contain  propertiesr!   rR  z.projectrS  z.tool must be objectz.toolrO  z.tool.distutilsrP  z.tool.setuptools must not contain )
isinstancedictr   setkeysremovelenalllisttuple	enumeratestrr   localsYvalidate_https___packaging_python_org_en_latest_specifications_declaring_project_metadata*validate_https___docs_python_org_3_installFvalidate_https___setuptools_pypa_io_en_latest_references_keywords_html)r   r   r   data_is_dict	data_keysZdata__buildsystem_is_dictZdata__buildsystem_lenZdata__buildsystem_keysZdata__buildsystem__requiresZ#data__buildsystem__requires_is_listZdata__buildsystem__requires_lenZdata__buildsystem__requires_xZ data__buildsystem__requires_itemZdata__buildsystem__buildbackendZdata__buildsystem__backendpathZ&data__buildsystem__backendpath_is_listZ"data__buildsystem__backendpath_lenZ data__buildsystem__backendpath_xZ#data__buildsystem__backendpath_itemZdata__projectZ
data__toolZdata__tool_is_dictZdata__tool_keysZdata__tool__distutilsZdata__tool__setuptoolsr   rZ  r   r
      s             

v
x

FZ
<<
F\

    



         r
   c           x   1      s40  t | tstd|pd d | d|p&d d dddddd	d
dddddddgdddddidddgdddddddgdddddddd d!dddid"d#d$d%gdddidd&d'd(d)d*d+d,d-gd.dd/d0d1dd2d3id2d4igd5d6d7d8ddd9dd:d;gdd<dddid=dd>d?gddid@ddAd?gddid@ddBdCgdDdEdFidGgdHdIdJdKdLgdddMdNdid/d0d1dd2d3id2d4igd5gidOddiidPdQdRdSdTgdddMd2d3idNdUigidOdddididPdVdWdSdTgddXdYdSdTgdddMd2d3idNdUigidOdddididPddd3ddZd[d\ddd3dd]d#d^d_d`dagddOdddididbdcdddedfdgdhgddOddididbdddidjdkdlgdmdnddoddpdqgdrdsdtdugdddvddiidvgdwdxdydzddd{dMddidddidgiid{gd|gdHdxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dd2d}idd~dxdydzddd{dMddidddidgiid{gd|iddxdydzddd{dMddidddidgiid{gd|ddddiiigd{gddddd/d0d1dd2d3id2d4igd5dxdydzddd{dMddidddidgiid{gd|drdsdtdugdddvddiidvgdwd7d8ddd9dd:d;gdd<dddid=dd>d?gddid@ddAd?gddid@ddBdCgdDdEdFidGddddt | t}|0r0t|  }d|kr|d | d }t |ttfsxtd|pLd d |d|p^d d dddidddt |ttf}|rt|}t	|D ]d\}}	t |	t
std|pd djf t  d |	d|pd djf t  d ddiddqd|krd|d | d }
t |
ttfsntd|p:d d |
d|pLd d ddgdddddddt |
ttf}|rdt|
}t	|
D ]\}}t |t
std|pd djf t  d |d|pd djf t  d dddddt |t
r`|d |s`td|pd djf t  d |d|p<d djf t  d dddd2dqd|kr|d | d }t |ttfstd|pd d |d|pd d ddgdddddddt |ttf}|rt|}t	|D ]\}}t |t
sXtd|pd djf t  d |d|p4d djf t  d dddddt |t
r|d |std|p~d djf t  d |d|pd djf t  d dddd2dqd|k	r"|d | d }t |t	s"td|pd d |d|	pd d ddd ddd|k
r|d | d }t |ttf	std|	pZd d |d|	pld d d!dddid"d#ddt |ttf}|
rt|}t	|D ]d\}}t |t

std|	pd djf t  d |d|	pd djf t  d ddidd	qd|kr|d | d }t |ttf
s~td|
pLd d |d|
p^d d d$d%gdddidddt |ttf}|rt|}t	|D ]d\}}t |t
std|
pd djf t  d |d|
pd djf t  d ddidd
qd|kr(|d | d }d} | dk rzt |ttfstd|pPd d |d|pbd d d.dd/d0d1dd2d3id2d4igd5d6ddt |ttf}!|!rt|}"t	|D ]*\}#}$t|$||pddjf t   q| d7 } W n tk
r   Y nX | dk rHz"t|||pdd  | d7 } W n tk
rF   Y nX | dkr(td|p^d d dt
|  d  |d|pd d d&d'd(d)d*d+d,d-gd.dd/d0d1dd2d3id2d4igd5d6d7d8ddd9dd:d;gdd<dddid=dd>d?gddid@ddAd?gddid@ddBdCgdDdEdFidGgdHdMdd|kr|d | d }%t |%tstd|p\d d |%d|pnd d dIdJdKdLgdddMdNdid/d0d1dd2d3id2d4igd5gidOddiidPddt |%t}&|&rt|% }'|% D ]\}(})tdO |(rh|(|'kr|'|( t |)t
shtd|p&d djf t  d |)d|pFd djf t  d ddiddq|'rtd|p~d d t
|' d |%d|pd d dIdJdKdLgdddMdNdid/d0d1dd2d3id2d4igd5gidOddiidPddt|%}*|*dkrd}+|%D ]F}(z"d},|,dk r~zH|(dkr\td|p6d d |(d|pHd d dNdidNd|,d7 },W n tk
r|   Y nX |,dk rz"t|(||pdd  |,d7 },W n tk
r   Y nX |,dkr.td|pd d dt
|, d  |(d|pd d dMdNdid/d0d1dd2d3id2d4igd5gidMdW n tk
rJ   d}+Y nX q|+std|pbd d |%d|ptd d dIdJdKdLgdddMdNdid/d0d1dd2d3id2d4igd5gidOddiidPddd|kr|d | d }-t |-tsLtd|pd d |-d|p
d d dQdRdSdTgdddMd2d3idNdUigidOdddididPddt |-t}.|.rt|- }/|- D ]\}0}1tdO |0r|0|/kr|/|0 t |1ttfstd|pd djf t  d |1d|pd djf t  d dddidddt |1ttf}2|2rt|1}3t	|1D ]d\}4}5t |5t
std|pFd djf t  d |5d|pfd djf t  d ddiddq&qp|/rtd|pd d t
|/ d |-d|pd d dQdRdSdTgdddMd2d3idNdUigidOdddididPddt|-}6|6dkrd}7|-D ]h}0zDd}8|8dk rzXt |0t
r|d3 |0std|p\d d |0d|pnd d d2d3id2d|8d7 }8W n tk
r   Y nX |8dk rzH|0dUkrtd|pd d |0d|pd d dNdUidNd|8d7 }8W n tk
r   Y nX |8dkrftd|p$d d dt
|8 d  |0d|pFd d dMd2d3idNdUigidMdW n tk
r   d}7Y nX q|7std|pd d |-d|pd d dQdRdSdTgdddMd2d3idNdUigidOdddididPddd|krR|dá | d }9t |9tsRtd|p"d d |9d|p4d d dVdWdSdTgddXddd|krv|dơ | d }:t |:tstd|pd d |:d|pd d dYdSdTgdddMd2d3idNdUigidOdddididPddt |:t};|;rvt|: }<|: D ]\}=}>tdO |=r|=|<kr*|<|= t |>ttfstd|pFd djf t  d |>d|pfd djf t  d dddidddt |>ttf}?|?rt|>}@t	|>D ]d\}A}Bt |Bt
std|pd djf t  d |Bd|pd djf t  d ddiddqq|<rtd|p.d d t
|< d |:d|pLd d dYdSdTgdddMd2d3idNdUigidOdddididPddt|:}C|Cdkrvd}D|:D ]h}=zDd}E|Edk r.zXt |=t
r|d3 |=std|pd d |=d|pd d d2d3id2d|Ed7 }EW n tk
r,   Y nX |Edk rzH|=dUkrvtd|pPd d |=d|pbd d dNdUidNd|Ed7 }EW n tk
r   Y nX |Edkrtd|pd d dt
|E d  |=d|pd d dMd2d3idNdUigidMdW n tk
r   d}DY nX q|Dsvtd|p$d d |:d|p6d d dYdSdTgdddMd2d3idNdUigidOdddididPddd|kr|dС | d }Ft |Fttfstd|pd d |Fd|pd d ddd3ddZd[ddt |Fttf}G|Grt|F}Ht	|FD ]\}I}Jt |Jt
sftd|p"d djf t  d |Jd|pBd djf t  d dd3dddt |Jt
r|d3 |Jstd|pd djf t  d |Jd|pd djf t  d dd3dd2dqd|kr4|dա | d }Kt |Kttfs>td|pd d |Kd|pd d d\ddd3dd]d#ddt |Kttf}L|Lr4t|K}Mt	|KD ]\}N}Ot |Ot
std|pd djf t  d |Od|pd djf t  d dd3dddt |Ot
r0|d3 |Os0td|pd djf t  d |Od|pd djf t  d dd3dd2dqbd|kr|d١ | d }Pt |Ptstd|phd d |Pd|pzd d d^d_d`dagddOdddididbddt |Pt}Q|Qrt|P }R|P D ]\}S}TtdO |Sr|S|Rkr|R|S t |Tttfs^td|pd djf t  d |Td|p6d djf t  d dddidddt |Tttf}U|Urt|T}Vt	|TD ]d\}W}Xt |Xt
std|pd djf t  d |Xd|pd djf t  d ddiddqqd|krz|dޡ | d }Yt |Yts`td|p d d |Yd|p2d d dcdddedfdgdhgddOddididbddt |Yt}Z|Zrzt|Y }[|Y D ]\}\}]tdO |\rv|\|[kr|[|\ t |]t
std|pd djf t  d |]d|pd djf t  d ddidddt |]t
rv|di |]svtd|p2d djf t  d |]d|pRd djf t  d ddidd2dqd|k rr|d | d }^t |^ttfstd|pd d |^d|pd d dddidjdkdlgdmdnddt |^ttf}_|_ rrt|^}`t	|^D ]d\}a}bt |bt
 sntd| p,d djf t  d |bd| pLd djf t  d ddidd qd|k+r,|d | d }ct |ct"sltd| pd d |cd| pd d ddoddpdqgdrdsdtdugdddvddiidvgdwdxdydzddd{dMddidddidgiid{gd|gdHdxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dd2d}idd~dxdydzddd{dMddidddidgiid{gd|iddxdydzddd{dMddidddidgiid{gd|ddddiiigd{gdddddt |ct}d|d+r,t|c }ed|ek#r|ed |cd }fd}g|gdk "rz"t|f||"pdd  |gd7 }gW n tk
"r   Y nX |gdk #r0z"t|f||#pdd  |gd7 }gW n tk
#r.   Y nX |gdk#rtd|#pFd d dt
|g d  |fd|#phd d dpdqgdrdsdtdugdddvddiidvgdwdxdydzddd{dMddidddidgiid{gd|gdHdMdd|ek$r|ed |cd }ht|h||#pdd  d|ek$r4|ed |cd }it|i||$p,dd  d|ek$rf|ed |cd }jt|j||$p^dd  d|ek$r|ed |cd }kt|k||$pdd  d|ek'r|ed |cd }lt |lt%s,td|$pd d |ld|$pd d dd2d}idd~dxdydzddd{dMddidddidgiid{gd|idddt |lt}m|m'rt|l }n|l D ]N\}o}ptd~ |o%r|o|nk%r||n|o t|p||%pddjf t   %qP|n&rtd|%pd d t
|n d |ld|%pd d dd2d}idd~dxdydzddd{dMddidddidgiid{gd|idddt|l}q|qdk'rd}r|lD ]r}ozPt |ot
&r|d} |o&std|&pdd d |od|&pvd d d2d}id2dW n tk
&r   d}rY nX &q8|r'std|&pd d |ld|&pd d dd2d}idd~dxdydzddd{dMddidddidgiid{gd|idddd|ek)rF|ed |cd  d}s|s's~z"t ||'pTdd  |sd7 }sW n tk
'r|   Y nX |s(szt  t}t|t'rt  }ud|uk'r|ud  d }vt |vt
'std|'pd d |vd|'pd d ddidd|sd7 }sW n tk
(r   Y nX |s(std|(p0d d   d|(pDd d dxdydzddd{dMddidddidgiid{gd|ddddiiigd{gdddt  t}t|t)rFt }wt fdddD )sFtd|(pd d  d|(pd d dxdydzddd{dMddidddidgiid{gd|ddddiiigd{gddd|e+r,td|)pXd d t
|e d |cd|)pxd d ddoddpdqgdrdsdtdugdddvddiidvgdwdxdydzddd{dMddidddidgiid{gd|gdHdxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dd2d}idd~dxdydzddd{dMddidddidgiid{gd|iddxdydzddd{dMddidddidgiid{gd|ddddiiigd{gddddd|0r0td|+p>d d t
| d | d|+p^d d dddddd	d
dddddddgdddddidddgdddddddgdddddddd d!dddid"d#d$d%gdddidd&d'd(d)d*d+d,d-gd.dd/d0d1dd2d3id2d4igd5d6d7d8ddd9dd:d;gdd<dddid=dd>d?gddid@ddAd?gddid@ddBdCgdDdEdFidGgdHdIdJdKdLgdddMdNdid/d0d1dd2d3id2d4igd5gidOddiidPdQdRdSdTgdddMd2d3idNdUigidOdddididPdVdWdSdTgddXdYdSdTgdddMd2d3idNdUigidOdddididPddd3ddZd[d\ddd3dd]d#d^d_d`dagddOdddididbdcdddedfdgdhgddOddididbdddidjdkdlgdmdnddoddpdqgdrdsdtdugdddvddiidvgdwdxdydzddd{dMddidddidgiid{gd|gdHdxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dxdydzddd{dMddidddidgiid{gd|dd2d}idd~dxdydzddd{dMddidddidgiid{gd|iddxdydzddd{dMddidddidgiid{gd|ddddiiigd{gddddd/d0d1dd2d3id2d4igd5dxdydzddd{dMddidddidgiid{gd|drdsdtdugdddvddiidvgdwd7d8ddd9dd:d;gdd<dddid=dd>d?gddid@ddAd?gddid@ddBdCgdDdEdFidGdddd| S (	  Nr	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Fr   r   r   rs   r   r   r)   rd   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r/  r0  r   r   r1  r2  r   r   r;  r<  r=  r>  r?  r@  rA  rB  r   rC  rD  rE  r.   rF  rK  rL  rF   r   r   r   r   rG   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r6  r  r7  r8  r9  r:  r  r3  r4  r8   r5  r  r   r  r"   r?   r  r  r  r  rM  rN  rT  r  z.platforms must be arrayz
.platformsz.platforms[{data__platforms_x}]r\  r   z.provides must be arrayz	.providesz.provides[{data__provides_x}]z must be pep508-identifierr!  z.obsoletes must be arrayz
.obsoletesz.obsoletes[{data__obsoletes_x}]r"  z.zip-safe must be booleanz	.zip-safer#  z.script-files must be arrayz.script-filesz$.script-files[{data__scriptfiles_x}]r$  z.eager-resources must be arrayz.eager-resourcesz*.eager-resources[{data__eagerresources_x}]r%  r      z.packages must be arrayz	.packagesz.packages[{data__packages_x}]r   z1.packages must be valid exactly by one definition ( matches found)r&  z.package-dir must be objectz.package-dirz#.package-dir.{data__packagedir_key}z.package-dir must not contain r]  r!   Tz/.package-dir must be same as const definition: z4.package-dir must be valid exactly by one definitionz5.package-dir must be named by propertyName definitionrn   r'  z.package-data must be objectz.package-dataz%.package-data.{data__packagedata_key} must be arrayz@.package-data.{data__packagedata_key}[{data__packagedata_val_x}]z.package-data must not contain z(.package-data must be python-module-namez1.package-data must be same as const definition: *z5.package-data must be valid exactly by one definitionz6.package-data must be named by propertyName definitionr(  z%.include-package-data must be booleanz.include-package-datar)  z$.exclude-package-data must be objectz.exclude-package-dataz4.exclude-package-data.{data__excludepackagedata_key}zV.exclude-package-data.{data__excludepackagedata_key}[{data__excludepackagedata_val_x}]z'.exclude-package-data must not contain z0.exclude-package-data must be python-module-namez9.exclude-package-data must be same as const definition: *z=.exclude-package-data must be valid exactly by one definitionz>.exclude-package-data must be named by propertyName definitionr*  z!.namespace-packages must be arrayz.namespace-packagesz0.namespace-packages[{data__namespacepackages_x}] must be python-module-namer+  z.py-modules must be arrayz.py-modulesz .py-modules[{data__pymodules_x}]r,  z.data-files must be objectz.data-filesz!.data-files.{data__datafiles_key}z:.data-files.{data__datafiles_key}[{data__datafiles_val_x}]r-  z.cmdclass must be objectz	.cmdclassz.cmdclass.{data__cmdclass_key}z$ must be python-qualified-identifierr.  z.license-files must be arrayz.license-filesz&.license-files[{data__licensefiles_x}]r   z.dynamic must be object.dynamicrx   z.dynamic.versionz8.dynamic.version must be valid exactly by one definitionr   z.dynamic.classifiersr   z.dynamic.descriptionr   z.dynamic.dependenciesr   z.dynamic.entry-pointsr   z-.dynamic.optional-dependencies must be objectz.dynamic.optional-dependencieszH.dynamic.optional-dependencies.{data__dynamic__optionaldependencies_key}z0.dynamic.optional-dependencies must not contain z8.dynamic.optional-dependencies must be python-identifierzG.dynamic.optional-dependencies must be named by propertyName definitionry   z.dynamic.readmez+.dynamic.readme.content-type must be stringz.dynamic.readme.content-typez5.dynamic.readme cannot be validated by any definitionr7   c                 3   s   | ]}| kV  qd S rV  r   rW  Zdata__dynamic__readmer   r   r[    s     zYvalidate_https___setuptools_pypa_io_en_latest_references_keywords_html.<locals>.<genexpr>r8   z0.dynamic.readme must contain ['file'] propertiesr#   z.dynamic must not contain r^  )r_  r`  r   ra  rb  rc  rf  rg  rd  rh  ri  r   rj  bool`validate_https___setuptools_pypa_io_en_latest_references_keywords_html__definitions_package_namebvalidate_https___setuptools_pypa_io_en_latest_references_keywords_html__definitions_find_directiver   REGEX_PATTERNSsearchbvalidate_https___setuptools_pypa_io_en_latest_references_keywords_html__definitions_attr_directivebvalidate_https___setuptools_pypa_io_en_latest_references_keywords_html__definitions_file_directivere  )xr   r   r   rn  ro  Zdata__platformsZdata__platforms_is_listZdata__platforms_lenZdata__platforms_xZdata__platforms_itemZdata__providesZdata__provides_is_listZdata__provides_lenZdata__provides_xZdata__provides_itemZdata__obsoletesZdata__obsoletes_is_listZdata__obsoletes_lenZdata__obsoletes_xZdata__obsoletes_itemZdata__zipsafeZdata__scriptfilesZdata__scriptfiles_is_listZdata__scriptfiles_lenZdata__scriptfiles_xZdata__scriptfiles_itemZdata__eagerresourcesZdata__eagerresources_is_listZdata__eagerresources_lenZdata__eagerresources_xZdata__eagerresources_itemZdata__packagesZdata__packages_one_of_count1Zdata__packages_is_listZdata__packages_lenZdata__packages_xZdata__packages_itemZdata__packagedirZdata__packagedir_is_dictZdata__packagedir_keysZdata__packagedir_keyZdata__packagedir_valZdata__packagedir_lenZdata__packagedir_property_namesZ"data__packagedir_key_one_of_count2Zdata__packagedataZdata__packagedata_is_dictZdata__packagedata_keysZdata__packagedata_keyZdata__packagedata_valZdata__packagedata_val_is_listZdata__packagedata_val_lenZdata__packagedata_val_xZdata__packagedata_val_itemZdata__packagedata_lenZ data__packagedata_property_namesZ#data__packagedata_key_one_of_count3Zdata__includepackagedataZdata__excludepackagedataZ data__excludepackagedata_is_dictZdata__excludepackagedata_keysZdata__excludepackagedata_keyZdata__excludepackagedata_valZ$data__excludepackagedata_val_is_listZ data__excludepackagedata_val_lenZdata__excludepackagedata_val_xZ!data__excludepackagedata_val_itemZdata__excludepackagedata_lenZ'data__excludepackagedata_property_namesZ*data__excludepackagedata_key_one_of_count4Zdata__namespacepackagesZdata__namespacepackages_is_listZdata__namespacepackages_lenZdata__namespacepackages_xZdata__namespacepackages_itemZdata__pymodulesZdata__pymodules_is_listZdata__pymodules_lenZdata__pymodules_xZdata__pymodules_itemZdata__datafilesZdata__datafiles_is_dictZdata__datafiles_keysZdata__datafiles_keyZdata__datafiles_valZdata__datafiles_val_is_listZdata__datafiles_val_lenZdata__datafiles_val_xZdata__datafiles_val_itemZdata__cmdclassZdata__cmdclass_is_dictZdata__cmdclass_keysZdata__cmdclass_keyZdata__cmdclass_valZdata__licensefilesZdata__licensefiles_is_listZdata__licensefiles_lenZdata__licensefiles_xZdata__licensefiles_itemdata__dynamicZdata__dynamic_is_dictZdata__dynamic_keysZdata__dynamic__versionZ$data__dynamic__version_one_of_count5Zdata__dynamic__classifiersZdata__dynamic__descriptionZdata__dynamic__dependenciesZdata__dynamic__entrypointsZ#data__dynamic__optionaldependenciesZ+data__dynamic__optionaldependencies_is_dictZ(data__dynamic__optionaldependencies_keysZ'data__dynamic__optionaldependencies_keyZ'data__dynamic__optionaldependencies_valZ'data__dynamic__optionaldependencies_lenZ2data__dynamic__optionaldependencies_property_namesZ#data__dynamic__readme_any_of_count6Zdata__dynamic__readme_is_dictZdata__dynamic__readme_keysZ"data__dynamic__readme__contenttypeZdata__dynamic__readme_lenr   rv  r   rm  h   s\       


8R

@PT

@PT

4

<R

>R


N$ 
 


n


Rz



2 
 
fn

`


TVl


2 

2 
R`

<

^


TVj


2 

2 
R^

<PT

>PT

L


TV

L


PT

BR

 



 
 










l


$x
6l

 


2 v
v      rm  c                    sJ  t  ts`td|pd d  d|p$d d dddddd	d
ddidddidgiid	gdddt  t}|rFt }t fdddD std|pd d  d|pd d dddddd	d
ddidddidgiid	gdddt  }d	|kr|d	  d	 }d}|dk r|zJt |tsZtd|p4d d |d|pFd d ddidd|d7 }W n tk
rz   Y nX |dk r|zt |t	t
fstd|pd d |d|pd d dddidddt |t	t
f}|rZt|}	t|D ]d\}
}t |tstd|pd djf t  d |d|p4d djf t  d ddiddq|d7 }W n tk
rz   Y nX |dkrtd|pd d dt| d   |d|pd d d
ddidddidgid
d|rFtd|pd d! t| d"  d|p
d d dddddd	d
ddidddidgiid	gdd#d S )$Nr	   r   r   r  r3  r4  r   Fr8   rG   r   r   r   rs   r5  rT  c                 3   s   | ]}| kV  qd S rV  r   rW  r   r   r   r[    s     zuvalidate_https___setuptools_pypa_io_en_latest_references_keywords_html__definitions_file_directive.<locals>.<genexpr>rw  z! must contain ['file'] propertiesr#   r   rp  z.file must be stringz.filer   z.file must be arrayz.file[{data__file_x}]r\  z-.file must be valid exactly by one definitionrq  rr  r^  r]  r!   )r_  r`  r   rd  re  ra  rb  rc  ri  rf  rg  rh  r   rj  )r   r   r   rn  data_lenro  Z
data__fileZdata__file_one_of_count7Zdata__file_is_listZdata__file_lenZdata__file_xZdata__file_itemr   r  r   r~    sJ    
V
V


2 
8R 
Tfr~  c                    s  t  tsRtd|pd d  d|p$d d ddddgdd	d
ddiid
gdddt  t}|rt }t fdddD std|pd d  d|pd d ddddgdd	d
ddiid
gdddt  }d
|kr.|d
  d
 }t |ts.td|pd d |d|pd d ddidd|rtd|p@d d t| d  d|p^d d ddddgdd	d
ddiid
gddd S )Nr	   r   r   r6  r  r7  r8  r   Fr9  r   r   r:  rT  c                 3   s   | ]}| kV  qd S rV  r   rW  r  r   r   r[  ,  s     zuvalidate_https___setuptools_pypa_io_en_latest_references_keywords_html__definitions_attr_directive.<locals>.<genexpr>)r9  z! must contain ['attr'] propertiesr#   z.attr must be stringz.attrr^  r]  r!   )	r_  r`  r   rd  re  ra  rb  rc  ri  )r   r   r   rn  r  ro  Z
data__attrr   r  r   r}  &  s     
H
H

2Xr}  c                 C   s  t | tstd|pd d | d|p$d d ddddddd	d
gdddddiddddgddiddddgddiddddgdddidddt | t}|rt|  }d|kr0|d | d }t |tsNtd|pd d |d|pd d dd	d
gdddddiddddgddiddddgddiddddgdddddt |t}|r0t| }d|krZ|d |d }t |ttfstd|pd d |d|pd d  ddddidddt |ttf}	|	rZt|}
t	|D ]d\}}t |t
std|pd d!jf t  d" |d|p4d d!jf t  d ddiddqd#|krN|d# |d# }t |ttfstd|pd d$ |d|pd d% dddgddidddt |ttf}|rNt|}t	|D ]d\}}t |t
std|pd d&jf t  d" |d|p(d d&jf t  d ddiddqd'|krB|d' |d' }t |ttfstd|pd d( |d|pd d) dddgddidddt |ttf}|rBt|}t	|D ]d\}}t |t
std|pd d*jf t  d" |d|pd d*jf t  d ddiddqd+|kr|d+ |d+ }t |tstd|pvd d, |d|pd d- dddgddd|r0td|pd d. t
| d/ |d|pd d dd	d
gdddddiddddgddiddddgddiddddgdddd0d|rtd|pBd d1 t
| d/ | d|p`d d ddddddd	d
gdddddiddddgddiddddgddiddddgdddidd0d| S )2Nr	   r   r   r   r;  r   Fr<  r=  r>  r?  r   r   r   r@  rA  rB  r   rC  r   rD  rE  r.   rF  rK  rL  rT  z.find must be objectz.findrG  z.find.where must be arrayz.find.wherez".find.where[{data__find__where_x}]r\  rH  z.find.exclude must be arrayz.find.excludez&.find.exclude[{data__find__exclude_x}]rI  z.find.include must be arrayz.find.includez&.find.include[{data__find__include_x}]rJ  z .find.namespaces must be booleanz.find.namespacesz.find must not contain r]  r!   r^  )r_  r`  r   ra  rb  rc  rf  rg  rd  rh  ri  r   rj  rx  )r   r   r   rn  ro  Z
data__findZdata__find_is_dictZdata__find_keysZdata__find__whereZdata__find__where_is_listZdata__find__where_lenZdata__find__where_xZdata__find__where_itemZdata__find__excludeZdata__find__exclude_is_listZdata__find__exclude_lenZdata__find__exclude_xZdata__find__exclude_itemZdata__find__includeZdata__find__include_is_listZdata__find__include_lenZdata__find__include_xZdata__find__include_itemZdata__find__namespacesr   r   r   rz  8  sp    



x


:R

>R

>R

8rz  c                 C   s|  t | tsLtd|pd d | d|p$d d dddddd	idd
igdddd}|szPt | tr|d	 | std|pvd d | d|pd d dd	idd|d7 }W n tk
r   Y nX |s,zTt | tr
|d
 | s
td|pd d | d|pd d dd
idd|d7 }W n tk
r*   Y nX |sxtd|p>d d | d|pPd d dddddd	idd
igddd| S )Nr	   r   r\  r   r/  r0  r   r   r   r1  r2  r   rT  r   rt  r   z must be pep561-stub-namez& cannot be validated by any definitionr7   r_  ri  r   )r   r   r   Zdata_any_of_count8r   r   r   ry  r  s,    
B
. . Fry  c                 C   sb  t | tsbtd|pd d | d|p$d d dddddd	d
dgdddddidddiiddddt | t}|r^t|  }d|kr|d | d }t |tstd|pd d |d|pd d ddddd|  D ]\}}td |r||kr|| t |tstd|pd dj	f t
  d |d|p:d dj	f t
  d ddiddq| S )Nr	   r   r   r   r   r   r   r   r   r   r   r   r   r   r>   r   r   r   r   rT  z.global must be objectz.global.{data_key})r_  r`  r   ra  rb  rc  r   r{  r|  r   rj  )r   r   r   rn  ro  Zdata__globaldata_keydata_valr   r   r   rl    s"    
X


0


Prl  c           Q   +      s%  t  tstd|pd d  d|p&d d dddddgd	d
dddd
dddd
ddgdddddgd
ddddgdd	ddd
ddgdidgdd d
d!d"id gdgid#d
d$d%d&gd'd(id#gdgd)gd*d
d+d,d-gd.d/dd
d0d1gdidgdd d
d2d3d4gdid gdgd5d6d7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdBdCdDgdEd6d7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdFdGgdEd6dHd
idIdJd6d
dKdLd?dMdNgdEd	dOd:dPd
dQdRidSdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddedfdgdhgd]diid:dPdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdciddidjd6dkdldmd
dndodpdqd	drd]did:dPd6dldmd
dndodpdsidtd6dudvgdwdxdydzd{d|d}d~ddddddddgidddgd:dgdddxidgdiddddddddddg	ddxgdgdd7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddldmd
dndodpdddHdt  t}|#rt }t fdddD s|td|pd d  d|pd d dddddgd	d
dddd
dddd
ddgdddddgd
ddddgdd	ddd
ddgdidgdd d
d!d"id gdgid#d
d$d%d&gd'd(id#gdgd)gd*d
d+d,d-gd.d/dd
d0d1gdidgdd d
d2d3d4gdid gdgd5d6d7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdBdCdDgdEd6d7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdFdGgdEd6dHd
idIdJd6d
dKdLd?dMdNgdEd	dOd:dPd
dQdRidSdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddedfdgdhgd]diid:dPdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdciddidjd6dkdldmd
dndodpdqd	drd]did:dPd6dldmd
dndodpdsidtd6dudvgdwdxdydzd{d|d}d~ddddddddgidddgd:dgdddxidgdiddddddddddg	ddxgdgdd7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddldmd
dndodpddddt  }d|kr6|d  d }t |tstd|pd d |d|pd d d
ddddHdt |tr6|d |s6td|pd d |d|pd d d
dddd]ddx|kr|dx  dx }t |tstd|pjd d |d|p|d d d
ddddHdt |tr|d |std|pd d |d|pd d d
dddd]ddy|k	rD|dy  dy }t |t	sDtd|	pd d |d|	p*d d d
ddgddHddz|kr|dz  dz d}	|	dk 	rzTt t	std|	pd d d|	pd d d
ddddgddHd|	d7 }	W n tk
	r   Y nX |	dk rzt t
svtd|
p d d d|
pd d d	ddd
ddgdidgdd d
d!d"id gdgid#d
d$d%d&gd'd(id#gdgd)dHdd}
|
szt t}|rbt}tfdddD 
std|
pd d d|
pd d dd
ddgdidgdddt }d|krb|d d }t |tsbtd|p6d d |d|pHd d d
ddgddHd|
d7 }
W n tk
r   Y nX |
szt t}|rdt}tfdddD std|pd d d|pd d d d
d!d"id gdddt }d |krd|d  d  }t |tsdtd|p<d d |d|pNd d d
d!d"dHd|
d7 }
W n tk
r   Y nX |
std|pd d d|pd d ddd
ddgdidgdd d
d!d"id gdgiddt t}|rt}tfdddD sbtd|p&d d d|p8d d d#d
d$d%d&gd'd(id#gdddt }d#|kr|d# d# }t |tstd|pd d |d|pd d d
d$d%d&gd'd(dHd|	d7 }	W n tk
r   Y nX |	dkrtd|p
d d dt|	 d  d|p,d d ddddgd
ddddgdd	ddd
ddgdidgdd d
d!d"id gdgid#d
d$d%d&gd'd(id#gdgd)gd*ddd{|krf|d{  d{ }t |tstd|pd d |d|pd d d
d+d,d-gd.dHdt |trf|d+ |sftd|p8d d |d|pJd d d
d+d,d-gd.d]dd||kr&|d|  d| d}|dk rzt t}|rrt}tfdddD std|pd d d|pd d dd
d0d1gdidgdddt }d|krr|d d }t |tsrtd|pFd d |d|pXd d d
d0d1gddHd|d7 }W n tk
r   Y nX |dk rzt t}|rt}tfdddD std|pd d d|pd d d d
d2d3d4gdid gdddt }d |kr|d  d  }t |tstd|pVd d |d|phd d d
d2d3d4gddHd|d7 }W n tk
r   Y nX |dkr&td|pd d dt| d  d|pd d d/dd
d0d1gdidgdd d
d2d3d4gdid gdgd5ddd}|kr|d}  d} }t |t	t
fstd|p^d d |d|ppd d d6d7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdBdCdDgdEdHdt |t	t
f}|rt|}t|D ]*\}}t|||pddjf t   qd~|kr|d~  d~ }t |t	t
fstd|p<d d |d|pNd d d6d7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdFdGgdEdHdt |t	t
f}|rt|}t|D ]*\} }!t|!||pddjf t   qd|kr|d  d }"t |"t	t
fsFtd|pd d |"d|p*d d d6dHd
idIdJdHdt |"t	t
f}#|#rt|"}$t|"D ]d\}%}&t |&tstd|pd djf t  d |&d|pd djf t  d dHd
idHdqjd|kr8|d  d }'t |'t	t
fs>td|pd d |'d|pd d d6d
dKdLd?dMdNgdEdHdt |'t	t
f}(|(r8t|'})t|'D ]\}*}+t |+tstd|pd djf t  d |+d|pd djf t  d d
dKdLd?dHdt |+tr4|dK |+s4td|pd djf t  d |+d|pd djf t  d d
dKdLd?d]dqbd|kr|d  d },t |,tstd|pld d |,d|p~d d d	dOd:dPd
dQdRidSdHdt |,t}-|-rt|, }.|, D ]\}/}0tdP |/r|/|.kr|.|/ t |0tsNtd|p
d djf t  d |0d|p*d djf t  d d
dQdRdHdt |0tr|dQ |0std|ptd djf t  d |0d|pd djf t  d d
dQdRd]dq|.rtd|pd d t|. d |,d|pd d d	dOd:dPd
dQdRidSddd|krB|d  d }1t|1||p:dd  d|krt|d  d }2t|2||pldd  d|kr|d  d }3t |3t}4|4rt|3 }5|3 D ]N\}6}7tdP |6r |6|5kr|5|6 t|7||pddjf t   q|5rtd|pd d t|5 d |3d|p4d d dedfdgdhgd]diid:dPdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdciddidjddt|3}8|8dkrd}9|3D ]r}6zPt |6tr|di |6std|pd d |6d|pd d d]diid]dW n tk
r   d:}9Y nX q|9std|p2d d |3d|pDd d dedfdgdhgd]diid:dPdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdciddidjddd|kr`|d  d }:t |:t	t
fstd|pd d |:d|pd d d6dkdldmd
dndodpdqdHdt |:t	t
f};|;r`t|:}<t|:D ]*\}=}>t|>||pJddjf t   q4d|kr:|d  d }?t |?tstd|pd d |?d|pd d d	drd]did:dPd6dldmd
dndodpdsidtdHdt |?t}@|@r:t|? }A|? D ]\}B}CtdP |Br|B|Akr,|A|B t |Ct	t
fstd|pHd djf t  d |Cd|phd djf t  d d6dldmd
dndodpdsdHdt |Ct	t
f}D|Drt|C}Et|CD ]*\}F}Gt|G||pddjf t   qq |ArRtd|pd d t|A d |?d|pd d d	drd]did:dPd6dldmd
dndodpdsidtddt|?}H|Hdkr:d}I|?D ]r}BzPt |Btr|d |Bstd|pd d |Bd|pd d d]did]dW n tk
r   d:}IY nX ql|Is:td|pd d |?d|pd d d	drd]did:dPd6dldmd
dndodpdsidtddd|krh|d  d }Jt |Jt	t
fstd|prd d |Jd|pd d d6dudvgdwdxdydzd{d|d}d~ddddddddgiddHdt |Jt	t
f}K|Krht|J}Lt|JD ]\}M}N|Ndkrdtd|pd djf t  d |Nd|p$d djf t  d dwdxdydzd{d|d}d~ddddddddgidwdq|#rtd|pzd d  t| d  d|pd d dddddgd	d
dddd
dddd
ddgdddddgd
ddddgdd	ddd
ddgdidgdd d
d!d"id gdgid#d
d$d%d&gd'd(id#gdgd)gd*d
d+d,d-gd.d/dd
d0d1gdidgdd d
d2d3d4gdid gdgd5d6d7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdBdCdDgdEd6d7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdFdGgdEd6dHd
idIdJd6d
dKdLd?dMdNgdEd	dOd:dPd
dQdRidSdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddedfdgdhgd]diid:dPdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdciddidjd6dkdldmd
dndodpdqd	drd]did:dPd6dldmd
dndodpdsidtd6dudvgdwdxdydzd{d|d}d~ddddddddgidddgd:dgdddxidgdiddddddddddg	ddxgdgdd7d8d9d	d:d
d;d<gdd
d=d>d?d@dAdTdUd	dVdWdXdYdZd[d\gd]d^id:dPd
d_d`gdadbdcidddldmd
dndodpddddzzvt  t}|$rt }t fdddD #std|#pfd d  d|#pzd d dgdddxidgdidddt  }d|k$r|d  d }Jt |Jt	t
f}K|K$rd:}O|JD ]l}PzN|Pdxk$r*td|$pd d |Pd|$pd d ddxiddd}OW  $qTW n tk
$rN   Y nX #q|O$std|$pfd d |Jd|$pzd d ddxidgdddW n tk
$r   Y ndX td|$pd d  d|$pd d dgdddxidgdiddddddddddg	dddW n tk
%r,   Y npX t  t}|%rt }t fd	dd
D %std|%pnd d  d|%pd d dxgdgddd S (  Nr	   r   r   r   r$   r%   r&   r'   r   r   r(   r)   r   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   r   rT   r   r   Fr   r   r   r   r_   r   r   rU   rV   rW   rX   rY   rZ   r   r[   r\   r]   r^   r`   ra   rb   r   rc   rd   re   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rl   rm   ro   rp   r   r   r   r   rq   rr   rs   rt   ru   rv   rw   rx   r   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rT  c                 3   s   | ]}| kV  qd S rV  r   rW  r  r   r   r[    s     zlvalidate_https___packaging_python_org_en_latest_specifications_declaring_project_metadata.<locals>.<genexpr>)r   z! must contain ['name'] propertiesr#   .name must be string.namez.name must be pep508-identifierz.version must be stringz.versionz.version must be pep440z.description must be stringz.descriptionr   rp  z.readme must be stringz.readmer   z.readme must be objectc                 3   s   | ]}| kV  qd S rV  r   rW  data__readmer   r   r[    s     rw  z(.readme must contain ['file'] propertiesz.readme.file must be stringz.readme.filec                 3   s   | ]}| kV  qd S rV  r   rW  r  r   r   r[    s     )r<   z(.readme must contain ['text'] propertiesz.readme.text must be stringz.readme.textz-.readme cannot be validated by any definitionc                 3   s   | ]}| kV  qd S rV  r   rW  r  r   r   r[    s     )r?   z0.readme must contain ['content-type'] propertiesz#.readme.content-type must be stringz.readme.content-typez/.readme must be valid exactly by one definitionrq  rr  rG   z.requires-python must be stringz.requires-pythonz+.requires-python must be pep508-versionspecc                 3   s   | ]}| kV  qd S rV  r   rW  data__licenser   r   r[    s     z).license must contain ['file'] propertiesz.licensez.license.file must be stringz.license.filec                 3   s   | ]}| kV  qd S rV  r   rW  r  r   r   r[    s     z).license must contain ['text'] propertiesz.license.text must be stringz.license.textz0.license must be valid exactly by one definitionz.authors must be arrayz.authorsz.authors[{data__authors_x}]z.maintainers must be arrayz.maintainersz#.maintainers[{data__maintainers_x}]z.keywords must be arrayz	.keywordsz.keywords[{data__keywords_x}]r\  z.classifiers must be arrayz.classifiersz#.classifiers[{data__classifiers_x}]z must be trove-classifierz.urls must be objectz.urlsz.urls.{data__urls_key}z must be urlz.urls must not contain r]  r!   z.scriptsz.gui-scriptsz%.entry-points.{data__entrypoints_key}z.entry-points must not contain z.entry-pointsTz-.entry-points must be python-entrypoint-groupz6.entry-points must be named by propertyName definitionrn   z.dependencies must be arrayz.dependenciesz%.dependencies[{data__dependencies_x}]z%.optional-dependencies must be objectz.optional-dependenciesz7.optional-dependencies.{data__optionaldependencies_key}rs  z[.optional-dependencies.{data__optionaldependencies_key}[{data__optionaldependencies_val_x}]z(.optional-dependencies must not contain z0.optional-dependencies must be pep508-identifierz?.optional-dependencies must be named by propertyName definitionz.dynamic must be arrayru  )rx   r   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   z.dynamic[{data__dynamic_x}]z must be one of ['version', 'description', 'readme', 'requires-python', 'license', 'authors', 'maintainers', 'keywords', 'classifiers', 'urls', 'scripts', 'gui-scripts', 'entry-points', 'dependencies', 'optional-dependencies']r^  c                 3   s   | ]}| kV  qd S rV  r   rW  r  r   r   r[    s     )r   z$ must contain ['dynamic'] propertiesz2.dynamic must be same as const definition: versionz0.dynamic must contain one of contains definitionr   z' must NOT match a disallowed definitionr   c                 3   s   | ]}| kV  qd S rV  r   rW  r  r   r   r[    s     )rx   z$ must contain ['version'] properties)r_  r`  r   rd  re  ra  rb  rc  ri  rf  rg  rh  nvalidate_https___packaging_python_org_en_latest_specifications_declaring_project_metadata___definitions_authorr   rj  r   r{  r|  yvalidate_https___packaging_python_org_en_latest_specifications_declaring_project_metadata___definitions_entry_point_grouprvalidate_https___packaging_python_org_en_latest_specifications_declaring_project_metadata___definitions_dependency)Qr   r   r   rn  r  ro  
data__nameZdata__versionZdata__descriptionZdata__readme_one_of_count9Zdata__readme_any_of_count10Zdata__readme_is_dictZdata__readme_lenZdata__readme_keysZdata__readme__fileZdata__readme__textZdata__readme__contenttypeZdata__requirespythonZdata__license_one_of_count11Zdata__license_is_dictZdata__license_lenZdata__license_keysZdata__license__fileZdata__license__textZdata__authorsZdata__authors_is_listZdata__authors_lenZdata__authors_xZdata__authors_itemZdata__maintainersZdata__maintainers_is_listZdata__maintainers_lenZdata__maintainers_xZdata__maintainers_itemZdata__keywordsZdata__keywords_is_listZdata__keywords_lenZdata__keywords_xZdata__keywords_itemZdata__classifiersZdata__classifiers_is_listZdata__classifiers_lenZdata__classifiers_xZdata__classifiers_itemZ
data__urlsZdata__urls_is_dictZdata__urls_keysZdata__urls_keyZdata__urls_valZdata__scriptsZdata__guiscriptsZdata__entrypointsZdata__entrypoints_is_dictZdata__entrypoints_keysZdata__entrypoints_keyZdata__entrypoints_valZdata__entrypoints_lenZ data__entrypoints_property_namesZdata__dependenciesZdata__dependencies_is_listZdata__dependencies_lenZdata__dependencies_xZdata__dependencies_itemZdata__optionaldependenciesZ"data__optionaldependencies_is_dictZdata__optionaldependencies_keysZdata__optionaldependencies_keyZdata__optionaldependencies_valZ&data__optionaldependencies_val_is_listZ"data__optionaldependencies_val_lenZ data__optionaldependencies_val_xZ#data__optionaldependencies_val_itemZdata__optionaldependencies_lenZ)data__optionaldependencies_property_namesr  Zdata__dynamic_is_listZdata__dynamic_lenZdata__dynamic_xZdata__dynamic_itemZdata__dynamic_containsZdata__dynamic_keyr   )r   r  r  r   rk    s      
   

66

66

8


< 

D

8 
@

4 ^
H

< 


::



D

8 

F

: 
v

b$

`$

:R

BRV

B


PTN








$
6|

B$

T


\(`
6T

\
p   
H


4 
B f
:rk  c              
   C   s   t | ts@td|pd d | d|p$d d dddddd	d
dt | tr|d | std|p`d d | d|ppd d dddddd	dd| S )Nr	   r   r\  rp   r   r   r   r   r   r   rT  z must be pep508r   r  r   r   r   r   r    s    
6
6r  c           	      C   s  t | tshtd|pd d | d|p$d d dddddd	d
dddgddidddddgdddidddt | t}|rt|  }|  D ]\}}td |r||kr|| t |t	std|pd dj
f t  d |d|pd dj
f t  d dddgdddddt |t	r|d |std|p6d dj
f t  d |d|pVd dj
f t  d dddgdddddq|rtd|pd d t	| d | d|pd d dddddd	d
dddgddidddddgdddidd dt| }|d!krd"}| D ]r}zPt |t	rd|d |sdtd|p>d d# |d|pPd d ddiddW n tk
r   d}Y nX q|std|pd d$ | d|pd d dddddd	d
dddgddidddddgdddidd%d| S )&Nr	   r   r   rg   r   r   r   r   r   r   r   r   r   r   r   Fr   r   r   r   r   r   r   r   r   rT  r  r\  z$ must be python-entrypoint-referencer^  r]  r!   r   Tz must be python-entrypoint-namez) must be named by propertyName definitionrn   )r_  r`  r   ra  rb  r   r{  r|  rc  ri  r   rj  rd  )	r   r   r   rn  ro  r  r  r  Zdata_property_namesr   r   r   r    s:    
^

T
Zn
6br  c                 C   s  t | tsZtd|pd d | d|p$d d dddddd	d
dgdd	dddddddt | t}|rt|  }d|kr|d | d }t |tstd|pd d |d|pd d d	d
dgdddd|kr~|d | d }t |ts,td|pd d |d|pd d d	dddddt |tr~td |s~td|pTd d |d|pfd d d	ddddd|rtd|pd d t| d | d|pd d dddddd	d
dgdd	ddddddd| S ) Nr	   r   r   rT   r   r   r   Fr   r   r   r.   r   r   r_   r   r   r   rT  r   r  r  r   z.email must be stringz.emailr   z.email must be idn-emailr   r^  r]  r!   )	r_  r`  r   ra  rb  rc  ri  r{  match)r   r   r   rn  ro  r  Zdata__emailr   r   r   r    s*    
P


4

66`r  )VERSIONreZfastjsonschema_exceptionsr   compiler{  r   ZNoneTyper   r
   rm  r~  r}  rz  ry  rl  rk  r  r  r  r   r   r   r   <module>   s2   I   %:  G