Ë
    -Tbj<  ã                  óB  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z ej                  r
ddlZddlmZ  ej                   e«      ZdZ ej(                  dez   dz   ej*                  ej,                  z  «      Zd5d	„Zd
Z ej(                  de› d�ej,                  «      Zd6d„Z	 	 ddlmZ d7d„Z!d7d„Z#d7d„Z$d8d„Z% G d„ d«      Z&	 ddl'm(Z) d7d„Z*d7d„Z+d7d„Z,dZ- ej(                  de-› d�ej,                  «      Z.dZ/ ej(                  de/› d�ej,                  «      Z0dZ1 ej(                  de1› d�ej,                  «      Z2d7d„Z3d7d„Z4d7d „Z5d7d!„Z6d7d"„Z7d7d#„Z8d7d$„Z9d9d%„Z:d9d&„Z;d9d'„Z<d9d(„Z=d9d)„Z>d9d*„Z?d9d+„Z@d9d,„ZAd9d-„ZBd9d.„ZC	 dd/lmDZE d7d0„ZF ej(                  d3ej*                  «      ZGd7d4„ZHy# e$ r
 ddl mZ Y �Œw xY w# e$ r ejE                  d«       d7d„Z!Y �Œ2w xY w# e$ r  e&«       Z*Y �Œ$w xY w# e$ r ejE                  d1«       d7d2„ZFY Œ„w xY w):a@  
The functions in this module are used to validate schemas with the
`format JSON Schema keyword
<https://json-schema.org/understanding-json-schema/reference/string#format>`_.

The correspondence is given by replacing the ``_`` character in the name of the
function with a ``-`` to obtain the format name and vice versa.
é    )ÚannotationsN)Úchain)ÚLiterala•  
    v?
    (?:
        (?:(?P<epoch>[0-9]+)!)?                           # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
        (?P<pre>                                          # pre-release
            [-_\.]?
            (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc)
            [-_\.]?
            (?P<pre_n>[0-9]+)?
        )?
        (?P<post>                                         # post release
            (?:-(?P<post_n1>[0-9]+))
            |
            (?:
                [-_\.]?
                (?P<post_l>post|rev|r)
                [-_\.]?
                (?P<post_n2>[0-9]+)?
            )
        )?
        (?P<dev>                                          # dev release
            [-_\.]?
            (?P<dev_l>dev)
            [-_\.]?
            (?P<dev_n>[0-9]+)?
        )?
    )
    (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
z^\s*z\s*$c                ó0   — t         j                  | «      duS )zpSee :ref:`PyPA's version specification <pypa:version-specifiers>`
    (initially introduced in :pep:`440`).
    N)ÚVERSION_REGEXÚmatch)Úversions    ú`/var/www/html/venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/formats.pyÚpep440r   B   s   € ô ×Ñ˜wÓ'¨tÐ3Ð3ó    z'([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])ú^ú$c                ó0   — t         j                  | «      duS )zlSee :ref:`PyPA's name specification <pypa:name-format>`
    (initially introduced in :pep:`508#names`).
    N)ÚPEP508_IDENTIFIER_REGEXr   )Únames    r
   Úpep508_identifierr   P   s   € ô #×(Ñ(¨Ó.°dÐ:Ð:r   )Úrequirementsc                ób   — 	 t        j                  | «       y# t         j                  $ r Y yw xY w)z{See :ref:`PyPA's dependency specifiers <pypa:dependency-specifiers>`
        (initially introduced in :pep:`508`).
        FT)Ú_reqÚRequirementÚInvalidRequirement©Úvalues    r
   Úpep508r   `   s4   € ð	Ü×Ñ˜UÔ#ð øô ×&Ñ&ò 	Ùð	úó   ‚ ˜.­.z¡Could not find an installation of `packaging`. Requirements, dependencies and versions might not be validated. To enforce validation, please install `packaging`.c                 ó   — y©NT© r   s    r
   r   r   q   ó   € Ør   c                óJ   ‡ — t        ˆ fd„dD «       «      ryt        d‰ › �«      S )zÒExpression that can be used to specify/lock versions (including ranges)
    See ``versionspec`` in :ref:`PyPA's dependency specifiers
    <pypa:dependency-specifiers>` (initially introduced in :pep:`508`).
    c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­w©Nr   )Ú.0Úcr   s     €r
   ú	<genexpr>z%pep508_versionspec.<locals>.<genexpr>z   s   øè ø€ Ò
/˜!ˆ1�Œ:Ñ
/ùs   ƒ)ú;ú]ú@FÚrequirement)Úanyr   r   s   `r
   Úpep508_versionspecr+   u   s,   ø€ ô
 Ó
/˜Ô
/Ô/ð ô �K ˜wÐ'Ó(Ð(r   c                ó²   — | j                  d«      \  }}}d„ t        |j                  d«      |j                  d«      «      D «       }t        d„ |D «       «      S )zÂSee PyPA's specification for defining build-backend references
    introduced in :pep:`517#source-trees`.

    This is similar to an entry-point reference (e.g., ``package.module:object``).
    ú:c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr"   ©Ústrip©r#   Úis     r
   r%   z+pep517_backend_reference.<locals>.<genexpr>�   s   è ø€ ÒP �1—7‘7—9ÑPùó   ‚ú.c              3  ó8   K  — | ]  }|sŒt        |«      –— Œ y ­wr"   ©Úpython_identifierr1   s     r
   r%   z+pep517_backend_reference.<locals>.<genexpr>�   s   è ø€ Ò>¨ºAÔ  ×#Ñ>ùs   ‚Š)Ú	partitionÚ_chainÚsplitÚall)r   ÚmoduleÚ_ÚobjÚidentifierss        r
   Úpep517_backend_referencer@   ˆ   sK   € ð —_‘_ SÓ)�N€FˆAˆsÙP¤f¨V¯\©\¸#Ó->ÀÇ	Á	È#ÃÓ&OÔP€KÜÑ>¨[Ô>Ó>Ð>r   c                 ó  — dd l } ddlm} ddlm} d}| j                  «       } |||¬«      5 } |«       }|j                  dd«      |d<   |j                  «       j                  |j                  d	d
«      «      cd d d «       S # 1 sw Y   y xY w)Nr   )ÚMessage)Úurlopenz.https://pypi.org/pypi?:action=list_classifiers)Úcontextzcontent-typez
text/plainÚcontent_typeÚcharsetzutf-8)
ÚsslÚemail.messagerB   Úurllib.requestrC   Úcreate_default_contextÚ	getheaderÚreadÚdecodeÚ	get_param)rG   rB   rC   ÚurlrD   ÚresponseÚheaderss          r
   Ú_download_classifiersrR   —   s‚   € ÛÝ%Ý&à
:€CØ×(Ñ(Ó*€GÙ	�˜gÔ	&ð M¨(Ù“)ˆØ"*×"4Ñ"4°^À\Ó"Rˆ�ÑØ�}‰}‹×%Ñ% g×&7Ñ&7¸	À7Ó&KÓL÷M÷ Mò Mús   ­ABÂBc                  ó6   — e Zd ZU dZded<   	 dd„Zdd„Zd	d„Zy)
Ú_TroveClassifierak  The ``trove_classifiers`` package is the official way of validating classifiers,
    however this package might not be always available.
    As a workaround we can still download a list from PyPI.
    We also don't want to be over strict about it, so simply skipping silently is an
    option (classifiers will be validated anyway during the upload to PyPI).
    z None | Literal[False] | set[str]Ú
downloadedc                ó.   — d | _         d| _        d| _        y )NFÚtrove_classifier)rU   Ú_skip_downloadÚ__name__©Úselfs    r
   Ú__init__z_TroveClassifier.__init__³   s   € ØˆŒØ#ˆÔØ*ˆ�r   c                ó   — d| _         y r   )rX   rZ   s    r
   Ú_disable_downloadz"_TroveClassifier._disable_download¸   s
   € à"ˆÕr   c                ó  — | j                   du s| j                  du ryt        j                  d«      st        j                  d«      rd| _         d}t        j                  |«       y| j                   €>d}t        j                  |«       	 t        t        «       j                  «       «      | _         || j                   v xs |j                  «       j                  d«      S # t        $ r d| _         t        j                  d«       Y yw xY w)	NFTÚ
NO_NETWORKÚVALIDATE_PYPROJECT_NO_NETWORKzxInstall ``trove-classifiers`` to ensure proper validation. Skipping download of classifiers list from PyPI (NO_NETWORK).zxInstall ``trove-classifiers`` to ensure proper validation. Meanwhile a list of classifiers will be downloaded from PyPI.z*Problem with download, skipping validationú
private ::)rU   rX   ÚosÚgetenvÚ_loggerÚdebugÚsetrR   Ú
splitlinesÚ	ExceptionÚlowerÚ
startswith)r[   r   Úmsgs      r
   Ú__call__z_TroveClassifier.__call__¼   sé   € Ø�?‰?˜eÑ# t×':Ñ':¸dÑ'BØä�9‰9�\Ô"¤b§i¡iÐ0OÔ&PØ#ˆDŒOðPð ô �M‰M˜#ÔØà�?‰?Ð"ðPð ô �M‰M˜#ÔðÜ"%Ô&;Ó&=×&HÑ&HÓ&JÓ"K�”ð ˜Ÿ™Ð'ÒQ¨5¯;©;«=×+CÑ+CÀLÓ+QÐQøô ò Ø"'�”Ü—‘ÐJÔKÙðús   Â&C  Ã %DÄDN)ÚreturnÚNone©r   Ústrrn   Úbool)rY   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r\   r^   rm   r   r   r
   rT   rT   ¤   s$   … ñð 1Ó0ðó+ó
#ôRr   rT   )Úclassifiersc                óT   — | t         v xs | j                  «       j                  d«      S )z!See https://pypi.org/classifiers/rb   )Ú_trove_classifiersrj   rk   r   s    r
   rW   rW   Ü   s$   € àÔ*Ð*ÒT¨e¯k©k«m×.FÑ.FÀ|Ó.TÐTr   c           	     ó    — | j                  d«      ^}}|j                  d«      syt        dj                  |dt	        d«        g|¢«      «      S )z—Name of a directory containing type stubs.
    It must follow the name scheme ``<package>-stubs`` as defined in
    :pep:`561#stub-only-packages`.
    r4   ú-stubsFN)r:   ÚendswithÚpython_module_nameÚjoinÚlen)r   ÚtopÚchildrens      r
   Úpep561_stub_namer‚   è   sO   € ð
 —[‘[ Ó%€N€Cˆ(Ø�<‰<˜Ô!ØÜ˜cŸh™h¨Ð,<¬s°8«}¨nÐ(=Ð'IÀÐ'IÓJÓKÐKr   c                ó  — ddl m} 	  || «      }|j                  s8t        j	                  d| › �«       | j                  d«      sd| v s |d| › �«      }t        |j                  xr |j                  «      S # t        $ r Y yw xY w)z§Valid URL (validation uses :obj:`urllib.parse`).
    For maximum compatibility please make sure to include a ``scheme`` prefix
    in your URL (e.g. ``http://``).
    r   )ÚurlparsezsFor maximum compatibility please make sure to include a `scheme` prefix in your URL (e.g. 'http://'). Given value: )ú/ú\r(   zhttp://F)	Úurllib.parser„   Úschemere   Úwarningrk   rr   Únetlocri   )r   r„   Úpartss      r
   rO   rO   ÷   sˆ   € õ
 &ðÙ˜“ˆØ�|Š|Ü�O‰Oð à %˜wð(ôð
 ×$Ñ$ [Ô1°S¸E±\Ù  7¨5¨'Ð!2Ó3�ä�E—L‘LÒ1 U§\¡\Ó2Ð2øÜò Ùðús   ˆA.A7 Á7	BÂBz[^\[\s=]([^=]*[^\s=])?z[\w.-]+z\w+(\.\w+)*c                ó"   — | j                  «       S )zXCan be used as identifier in Python.
    (Validation uses :obj:`str.isidentifier`).
    )Úisidentifierr   s    r
   r7   r7     s   € ð ×ÑÓÐr   c                óŠ   — | j                  d«      s| j                  d«      ryt        d„ | j                  d«      D «       «      S )z•
    Python "dotted identifier", i.e. a sequence of :obj:`python_identifier`
    concatenated with ``"."`` (e.g.: ``package.module.submodule``).
    r4   Fc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr"   r6   )r#   Úms     r
   r%   z.python_qualified_identifier.<locals>.<genexpr>'  s   è ø€ Ò>¨Ô  ×#Ñ>ùó   ‚)rk   r|   r;   r:   r   s    r
   Úpython_qualified_identifierr’      s:   € ð
 ×Ñ˜Ô §¡¨sÔ 3ØÜÑ>¨U¯[©[¸Ó-=Ô>Ó>Ð>r   c                ó   — t        | «      S )zsModule name that can be used in an ``import``-statement in Python.
    See :obj:`python_qualified_identifier`.
    )r’   r   s    r
   r}   r}   *  s   € ô ' uÓ-Ð-r   c                ó¢   — | j                  d«      s| j                  d«      ry| j                  d«      ryt        | j                  dd«      «      S )a±  Similar to :obj:`python_module_name`, but relaxed to also accept
    dash characters (``-``) and cover special cases like ``pip-run``.

    It is recommended, however, that beginners avoid dash characters,
    as they require advanced knowledge about Python internals.

    The following are disallowed:

    * names starting/ending in dashes,
    * names ending in ``-stubs`` (potentially collide with :obj:`pep561_stub_name`).
    ú-Fr{   r=   )rk   r|   r}   Úreplacer   s    r
   Úpython_module_name_relaxedr—   1  sE   € ð ×Ñ˜Ô §¡¨sÔ 3ØØ‡~�~�hÔØÜ˜eŸm™m¨C°Ó5Ó6Ð6r   c                ó0   — t         j                  | «      duS )zhSee ``Data model > group`` in the :ref:`PyPA's entry-points specification
    <pypa:entry-points>`.
    N)ÚENTRYPOINT_GROUP_REGEXr   r   s    r
   Úpython_entrypoint_grouprš   D  s   € ô "×'Ñ'¨Ó.°dÐ:Ð:r   c                ó¢   — t         j                  | «      syt        j                  | «      s$d| › d�}|t        z  }t        j                  |«       y)zgSee ``Data model > name`` in the :ref:`PyPA's entry-points specification
    <pypa:entry-points>`.
    FzEntry point `z'` does not follow recommended pattern: T)ÚENTRYPOINT_REGEXr   ÚRECOMMEDED_ENTRYPOINT_REGEXÚRECOMMEDED_ENTRYPOINT_PATTERNre   r‰   )r   rl   s     r
   Úpython_entrypoint_namerŸ   K  sL   € ô ×!Ñ! %Ô(ØÜ&×,Ñ,¨UÔ3Ø˜e˜WÐ$KÐLˆØÔ,Ñ,ˆÜ�‰˜ÔØr   c                óð  — | j                  d«      \  }}}d|v r‘|j                  d«      \  }}}|j                  «       d   dk7  ryd„ |j                  t        j                  dz   «      j	                  d«      D «       }t        d	„ |D «       «      syt        j                  d
| › d�«       n|}|j	                  d«      }|rt        ||j	                  d«      «      n
t        |«      }t        d„ |D «       «      S )zÑReference to a Python object using in the format::

        importable.module:object.attr

    See ``Data model >object reference`` in the :ref:`PyPA's entry-points specification
    <pypa:entry-points>`.
    r-   ú[éÿÿÿÿr'   Fc              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wr"   r/   )r#   Úxs     r
   r%   z.python_entrypoint_reference.<locals>.<genexpr>e  s   è ø€ ÒX �!—'‘'—)ÑXùr3   z[]ú,c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr"   )r   )r#   Úes     r
   r%   z.python_entrypoint_reference.<locals>.<genexpr>f  s   è ø€ Ò8¨AÔ$ Q×'Ñ8ùr‘   ú`z4` - using extras for entry points is not recommendedr4   c              3  óN   K  — | ]  }t        |j                  «       «      –— Œ y ­wr"   )r7   r0   r1   s     r
   r%   z.python_entrypoint_reference.<locals>.<genexpr>n  s   è ø€ ÒA°Ô  §¡£×+ÑAùs   ‚#%)
r8   r0   ÚstringÚ
whitespacer:   r;   re   r‰   r9   Úiter)	r   r<   r=   Úrestr>   Úextras_ÚextrasÚmodule_partsr?   s	            r
   Úpython_entrypoint_referencer±   X  sÛ   € ð —o‘o cÓ*�O€FˆAˆtØ
ˆd�{ØŸ.™.¨Ó-‰ˆˆQ�Ø�=‰=‹?˜2Ñ #Ò%ØÙX W§]¡]´6×3DÑ3DÀtÑ3KÓ%L×%RÑ%RÐSVÓ%WÔXˆÜÑ8°Ô8Ô8ØÜ�‰˜!˜E˜7Ð"VÐWÕXàˆà—<‘< Ó$€LÙ:>”&˜ s§y¡y°£~Ô6ÄDÈÓDV€KÜÑA°[ÔAÓAÐAr   c                ó"   — d| cxk  xr dk  S c S )z/Unsigned 8-bit integer (:math:`0 \leq x < 2^8`)r   é   r   r   s    r
   Úuint8r´   q  s   € à�Ö˜ÑÐÑÐr   c                ó"   — d| cxk  xr dk  S c S )z3Unsigned 16-bit integer (:math:`0 \leq x < 2^{16}`)r   i   r   r   s    r
   Úuint16r¶   v  ó   € à�Ö˜ÑÐÑÐr   c                ó"   — d| cxk  xr dk  S c S )z3Unsigned 32-bit integer (:math:`0 \leq x < 2^{32}`)r   l        r   r   s    r
   Úuint32r¹   {  r·   r   c                ó"   — d| cxk  xr dk  S c S )z3Unsigned 64-bit integer (:math:`0 \leq x < 2^{64}`)r   ì            r   r   s    r
   Úuint64r¼   €  r·   r   c                ó"   — d| cxk  xr dk  S c S )z1Signed 64-bit integer (:math:`0 \leq x < 2^{64}`)r   r»   r   r   s    r
   Úuintr¾   …  r·   r   c                ó"   — d| cxk  xr dk  S c S )z4Signed 8-bit integer (:math:`-2^{7} \leq x < 2^{7}`)i€ÿÿÿé€   r   r   s    r
   Úint8rÁ   Š  s   € à�eÖ"˜dÑ"Ð"Ñ"Ð"r   c                ó"   — d| cxk  xr dk  S c S )z7Signed 16-bit integer (:math:`-2^{15} \leq x < 2^{15}`)i €ÿÿi €  r   r   s    r
   Úint16rÃ   �  ó   € à�uÖ$˜uÑ$Ð$Ñ$Ð$r   c                ó"   — d| cxk  xr dk  S c S )z7Signed 32-bit integer (:math:`-2^{31} \leq x < 2^{31}`)i   €l        r   r   s    r
   Úint32rÆ   ”  rÄ   r   c                ó"   — d| cxk  xr dk  S c S ©z7Signed 64-bit integer (:math:`-2^{63} \leq x < 2^{63}`)lûÿÿÿ         l            r   r   s    r
   Úint64rÉ   ™  rÄ   r   c                ó"   — d| cxk  xr dk  S c S rÈ   r   r   s    r
   ÚintrË   ž  rÄ   r   )Úlicensesc                ób   — 	 t        j                  | «       y# t         j                  $ r Y yw xY w)z‚See :ref:`PyPA's License-Expression specification
        <pypa:core-metadata-license-expression>` (added in :pep:`639`).
        FT)Ú	_licensesÚcanonicalize_license_expressionÚInvalidLicenseExpressionr   s    r
   ÚSPDXrÑ   ¦  s4   € ð	Ü×5Ñ5°eÔ<ð øô ×1Ñ1ò 	Ùð	úr   zžCould not find an up-to-date installation of `packaging`. License expressions might not be validated. To enforce validation, please install `packaging>=24.2`.c                 ó   — yr   r   r   s    r
   rÑ   rÑ   ·  r   r   aP  
    ^                                  # start of string
        [A-Za-z_][A-Za-z_0-9]+         # a valid Python identifier
        (?:\.[A-Za-z_][A-Za-z_0-9]*)*  # optionally followed by .identifier's
    (?:\s*;\s*private)?                # optionally followed by ; private
    $                                  # end of string
    c                ó¶   — t         j                  | «      €y| j                  d«      \  }}}t        d„ |j	                  «       j                  d«      D «       «      S )z´This is a valid import name. It has to be series of python identifiers
    (not keywords), separated by dots, optionally followed by a semicolon and
    the keyword "private".
    Fr&   c              3  óH   K  — | ]  }t        j                  |«       –— Œ y ­wr"   )ÚkeywordÚ	iskeyword)r#   Úidents     r
   r%   zimport_name.<locals>.<genexpr>Ð  s   è ø€ ÒT°”7×$Ñ$ UÓ+Ô+ÑTùs   ‚ "r4   )ÚVALID_IMPORT_NAMEr   r8   r;   Úrstripr:   )r   Úidentsr=   s      r
   Úimport_namerÛ   Ç  sN   € ô
 ×Ñ˜uÓ%Ð-Øà—?‘? 3Ó'�L€FˆAˆqÜÑT¸¿¹»×9NÑ9NÈsÓ9SÔTÓTÐTr   )r	   rq   rn   rr   )r   rq   rn   rr   rp   )rn   rq   )r   zbuiltins.intrn   rr   )Iru   Ú
__future__r   rÕ   Úloggingrc   Úrerª   ÚtypingÚ	itertoolsr   r9   ÚTYPE_CHECKINGÚbuiltinsÚtyping_extensionsr   Ú	getLoggerrY   re   ÚVERSION_PATTERNÚcompileÚVERBOSEÚ
IGNORECASEr   r   ÚPEP508_IDENTIFIER_PATTERNr   r   Ú	packagingr   r   ÚImportErrorÚsetuptools._vendor.packagingr   r‰   r+   r@   rR   rT   Útrove_classifiersrw   ry   rW   r‚   rO   ÚENTRYPOINT_PATTERNrœ   rž   r�   ÚENTRYPOINT_GROUP_PATTERNr™   r7   r’   r}   r—   rš   rŸ   r±   r´   r¶   r¹   r¼   r¾   rÁ   rÃ   rÆ   rÉ   rË   rÌ   rÎ   rÑ   rØ   rÛ   r   r   r
   ú<module>rð      s„  ðñõ #ã Û Û 	Û 	Û Û Ý %à	×ÒÛå)à
ˆ'×
Ñ
˜HÓ
%€ð
€ð> �—
‘
ØˆoÑ Ñ'¨¯©°b·m±mÑ)Có€ó
4ð GÐ Ø$˜"Ÿ*™* qÐ)BÐ(CÀ1Ð%EÀrÇ}Á}ÓUÐ ó;ðð
Ý2óó*)ó&?ó
M÷2Rñ 2Rðj*ÝCóUóLóð0 /Ð Ø�2—:‘: Ð"4Ð!5°QÐ7¸¿¹ÓGÐ Ø *Ð Ø(˜bŸj™jØÐ%Ð& aÐ(¨"¯-©-óÐ ð *Ð Ø#˜Ÿ™ aÐ(@Ð'AÀÐ$CÀRÇ]Á]ÓSÐ ó ó?ó.ó7ó&;ó
óBó2ó
ó
ó
ó
ó
#ó
%ó
%ó
%ó
%ð
Ý/óð* �B—J‘Jðð ‡J�Jó	Ð ô	Uøð[ ò 
÷	
ð 	
ð
ûð  ò Ø‡O�Oð	=ôöðûðl ò *Ù'Ó)Óð*ûð` ò Ø‡O�Oð	CôõðúsT   Â.F; Â4G Ã
G. Æ
H Æ;G
ÇG Ç	G
Ç
G ÇG+Ç*G+Ç.G>Ç=G>ÈHÈH