Ë
    nûàg2  ã                   óZ  — d 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mZ  ej                  e«      ZdZ ej"                  dez   dz   ej$                  ej&                  z  «      Zded	efd
„ZdZ ej"                  de› d�ej&                  «      Zded	efd„Z	 	 ddlmZ ded	efd„Z ded	efd„Z"ded	efd„Z#d	efd„Z$ G d„ d«      Z%	 ddl&m'Z( ded	efd„Z)ded	efd„Z*ded	efd„Z+dZ, ej"                  de,› d�ej&                  «      Z-dZ. ej"                  de.› d�ej&                  «      Z/d Z0 ej"                  de0› d�ej&                  «      Z1ded	efd!„Z2ded	efd"„Z3ded	efd#„Z4ded	efd$„Z5ded	efd%„Z6ded	efd&„Z7ded	efd'„Z8dejr                  d	efd(„Z:dejr                  d	efd)„Z;dejr                  d	efd*„Z<dejr                  d	efd+„Z9y# e$ r
 ddlmZ Y �Œ?w xY w# e$ r ejC                  d«       ded	efd„Z Y �Œ\w xY w# e$ r  e%«       Z)Y �Œ@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.
é    N)Ú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*$ÚversionÚreturnc                 ó0   — t         j                  | «      duS )zpSee :ref:`PyPA's version specification <pypa:version-specifiers>`
    (initially introduced in :pep:`440`).
    N)ÚVERSION_REGEXÚmatch)r   s    úk/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject/formats.pyÚpep440r   <   s   € ô ×Ñ˜wÓ'¨tÐ3Ð3ó    z'([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])ú^ú$Únamec                 ó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	   )r   s    r
   Úpep508_identifierr   J   s   € ô #×(Ñ(¨Ó.°dÐ:Ð:r   )ÚrequirementsÚvaluec                 ó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`).
        TF)Ú_reqÚRequirementÚInvalidRequirement©r   s    r
   Úpep508r   Z   s0   € ð	Ü×Ñ˜UÔ#ØøÜ×&Ñ&ò 	Ùð	ús   ‚ ˜.­.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   k   s   € Ø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>t   s   øè ø€ Ò
/˜!ˆ1�Œ:Ñ
/ùs   ƒ)ú;ú]ú@FÚrequirement)Úanyr   r   s   `r
   Úpep508_versionspecr)   o   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_identifierr/   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.messager@   Úurllib.requestrA   Úcreate_default_contextÚ	getheaderÚreadÚdecodeÚ	get_param)rE   r@   rA   ÚurlrB   ÚresponseÚheaderss          r
   Ú_download_classifiersrP   ‘   s‚   € ÛÝ%Ý&à
:€CØ×(Ñ(Ó*€GÙ	�˜gÔ	&ð M¨(Ù“)ˆØ"*×"4Ñ"4°^À\Ó"Rˆ�ÑØ�}‰}‹×%Ñ% g×&7Ñ&7¸	À7Ó&KÓL÷M÷ Mò Mús   ­ABÂBc                   óv   — e Zd ZU dZej
                  ddej                  e   f   ed<   d
d„Z	d
d„Z
dedef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).
    NzLiteral[False]Ú
downloadedr   c                 ó.   — d | _         d| _        d| _        y )NFÚtrove_classifier)rS   Ú_skip_downloadÚ__name__©Úselfs    r
   Ú__init__z_TroveClassifier.__init__¨   s   € ØˆŒØ#ˆÔð +ˆ�r   c                 ó   — d| _         y r   )rV   rX   s    r
   Ú_disable_downloadz"_TroveClassifier._disable_download¯   s
   € à"ˆÕr   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 ::)rS   rV   ÚosÚgetenvÚ_loggerÚdebugÚsetrP   Ú
splitlinesÚ	ExceptionÚlowerÚ
startswith)rY   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)r   N)rW   Ú
__module__Ú__qualname__Ú__doc__ÚtypingÚUnionÚSetÚstrÚ__annotations__rZ   r\   Úboolrk   r   r   r
   rR   rR   ž   sH   … ñð —‘˜TÐ#3°V·Z±ZÀ±_ÐDÑEÓEó+ó#ðR˜cð R dô Rr   rR   )Úclassifiersc                 óT   — | t         v xs | j                  «       j                  d«      S )z!See https://pypi.org/classifiers/r`   )Ú_trove_classifiersrh   ri   r   s    r
   rU   rU   Ó   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`.
    r2   ú-stubsFN)r8   Ú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                  sIt        j	                  d| › �«       | j                  d«      s | 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‚   Úschemerc   Úwarningri   rt   Únetlocrg   )r   r‚   Úpartss      r
   rM   rM   î   s•   € õ
 &ðÙ˜“ˆØ�|Š|Ü�O‰Oð à %˜wð(ôð
 ×$Ñ$ SÔ)¨U×-=Ñ-=¸dÔ-CÀsÈeÁ|Ù  7¨5¨'Ð!2Ó3�ä�E—L‘LÒ1 U§\¡\Ó2Ð2øÜò Ùðús   ˆA?B Â	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
   r5   r5     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``).
    r2   Fc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr    r4   )r!   Úms     r
   r#   z.python_qualified_identifier.<locals>.<genexpr>  s   è ø€ Ò>¨Ô  ×#Ñ>ùó   ‚)ri   rz   r9   r8   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`).
    ú-Fry   r;   )ri   rz   r{   Úreplacer   s    r
   Úpython_module_name_relaxedr•   &  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˜   9  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_PATTERNrc   r‡   )r   rj   s     r
   Úpython_entrypoint_namer�   @  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        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>Z  s   è ø€ ÒX �!—'‘'—)ÑXùr1   z[]ú,c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr    )r   )r!   Úes     r
   r#   z.python_entrypoint_reference.<locals>.<genexpr>[  s   è ø€ Ò8¨AÔ$ Q×'Ñ8ùr�   ú`z4` - using extras for entry points is not recommendedr2   c              3   óN   K  — | ]  }t        |j                  «       «      –— Œ y ­wr    )r5   r.   r/   s     r
   r#   z.python_entrypoint_reference.<locals>.<genexpr>c  s   è ø€ ÒA°Ô  §¡£×+ÑAùs   ‚#%)	r6   r.   ÚstringÚ
whitespacer8   r9   rc   r‡   r7   )	r   r:   r;   Úrestr<   Úextras_ÚextrasÚmodule_partsr=   s	            r
   Úpython_entrypoint_referencer®   M  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ÀL€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±   f  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³   k  ó   € à�Ö˜ÑÐÑÐr   c                 ó"   — d| cxk  xr dk  S c S )z3Unsigned 64-bit integer (:math:`0 \leq x < 2^{64}`)r   l            r   r   s    r
   Úuintr¶   p  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
   Úintr¸   u  s   € à�uÖ$˜uÑ$Ð$Ñ$Ð$r   )=rn   ÚbuiltinsÚloggingra   Úrer¨   ro   Ú	itertoolsr   r7   ÚTYPE_CHECKINGÚtyping_extensionsr   Ú	getLoggerrW   rc   ÚVERSION_PATTERNÚcompileÚXÚIr   rr   rt   r   ÚPEP508_IDENTIFIER_PATTERNr   r   Ú	packagingr   r   ÚImportErrorÚsetuptools._vendor.packagingr   r‡   r)   r>   rP   rR   Útrove_classifiersru   rw   rU   r€   rM   ÚENTRYPOINT_PATTERNrš   rœ   r›   ÚENTRYPOINT_GROUP_PATTERNr—   r5   r�   r{   r•   r˜   r�   r®   r¸   r±   r³   r¶   r   r   r
   ú<module>rË      s1  ðñó Û Û 	Û 	Û Û Ý %à	×ÒÝ)à
ˆ'×
Ñ
˜HÓ
%€ð
€ð> �—
‘
˜7 _Ñ4°wÑ>ÀÇÁÀrÇtÁtÁÓL€ð4�Cð 4˜Dó 4ð GÐ Ø$˜"Ÿ*™* qÐ)BÐ(CÀ1Ð%EÀrÇtÁtÓLÐ ð;˜Cð ; Dó ;ðð
Ý2ð�cð ˜dó ð*)˜cð ) dó )ð&? Cð ?¨Dó ?ð
M˜só 
M÷/Rñ /Rðd*ÝCðU ð U¨ó UðL˜Cð L Dó Lðˆsð �tó ð0 /Ð Ø�2—:‘: Ð"4Ð!5°QÐ7¸¿¹Ó>Ð Ø *Ð Ø(˜bŸj™j¨1Ð-JÐ,KÈ1Ð)MÈrÏtÉtÓTÐ Ø)Ð Ø#˜Ÿ™ aÐ(@Ð'AÀÐ$CÀRÇTÁTÓJÐ ð ˜Sð   Tó  ð? sð ?¨tó ?ð.˜cð . dó .ð7 cð 7¨dó 7ð&; 3ð ;¨4ó ;ð
 #ð 
¨$ó 
ðB sð B¨tó Bð2�—‘ð  $ó ð
�(—,‘,ð  4ó ð
�—‘ð  ó ð
%ˆx�|‰|ð % ô %øðC	 ò 
÷	
ð 	
ð
ûð  ò Ø‡O�Oð	=ôð�cð ˜dö ðûðf ò *Ù'Ó)Óð*úsB   Â,G# Â2G5 ÃH Ç#G2Ç.G5 Ç1G2Ç2G5 Ç5HÈHÈH*È)H*