
     f "                     <   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        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 n# e$ r	 d dlmZ Y nw xY wdedefdZn(# e$ r  e
                    d           dedefdZY nw xY w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$n# e$ r  e             Z$Y nw xY w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Z* ej        d
e* dej                  Z+dedefdZ,dedefdZ-dedefd Z.dedefd!Z/dedefd"Z0dedefd#Z1dS )$    N)chaina  
    v?
    (?:
        (?:(?P<epoch>[0-9]+)!)?                           # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
        (?P<pre>                                          # pre-release
            [-_\.]?
            (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
            [-_\.]?
            (?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                 :    t                               |           d uS N)VERSION_REGEXmatch)r   s    p/var/www/api.educacionweb.es/myenv/lib/python3.11/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                 :    t                               |           d uS r   )PEP508_IDENTIFIER_REGEXr	   )r   s    r
   pep508_identifierr   :   s    "((..d::r   )requirementsvaluec                 \    	 t          j        |            dS # t           j        $ r Y dS w xY w)NTF)_reqRequirementInvalidRequirementr   s    r
   pep508r   E   sB    	U###4& 	 	 	55	s    ++zCould not find an installation of `packaging`. Requirements, dependencies and versions might not be validated. To enforce validation, please install `packaging`.c                     dS NT r   s    r
   r   r   S   s    tr   c                 b     t           fddD                       rdS t          d            S )zGExpression that can be used to specify/lock versions (including ranges)c              3       K   | ]}|v V  	d S r   r   ).0cr   s     r
   	<genexpr>z%pep508_versionspec.<locals>.<genexpr>Y   s'      
/
/!1:
/
/
/
/
/
/r   );]@Frequirement)anyr   r   s   `r
   pep508_versionspecr(   W   sH    

/
/
/
/
/
/
///  u '''(((r   c                     |                      d          \  }}}d t          |                    d          |                    d                    D             }t          d |D                       S )N:c              3   >   K   | ]}|                                 V  d S r   stripr    is     r
   r"   z+pep517_backend_reference.<locals>.<genexpr>i   s*      PP17799PPPPPPr   .c              3   8   K   | ]}|t          |          V  d S r   python_identifierr.   s     r
   r"   z+pep517_backend_reference.<locals>.<genexpr>j   s0      >>A> ##>>>>>>r   )	partition_chainsplitall)r   module_objidentifierss        r
   pep517_backend_referencer<   g   si    __S))NFAsPPfV\\#->->		#&O&OPPPK>>[>>>>>>r   c                  X   dd l } ddlm} ddlm} d}|                                 } |||          5 } |            }|                    dd          |d<   |                                                    |	                    d	d
                    cd d d            S # 1 swxY w Y   d S )Nr   )Message)urlopenz.https://pypi.org/pypi?:action=list_classifiers)contextzcontent-typez
text/plaincontent_typecharsetzutf-8)
sslemail.messager>   urllib.requestr?   create_default_context	getheaderreaddecode	get_param)rC   r>   r?   urlr@   responseheaderss          r
   _download_classifiersrN   q   s   JJJ%%%%%%&&&&&&
:C((**G	g	&	&	& M('))"*"4"4^\"R"R}}%%g&7&7	7&K&KLLM M M M M M M M M M M M M M M M M Ms   ABB#&B#c                   .    e Zd ZdZd Zd ZdedefdZdS )_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).
    c                 0    d | _         d| _        d| _        d S )NFtrove_classifier)
downloaded_skip_download__name__selfs    r
   __init__z_TroveClassifier.__init__   s    FJ# +r   c                     d| _         d S r   )rT   rV   s    r
   _disable_downloadz"_TroveClassifier._disable_download   s    "r   r   r   c                 6   | j         du s	| j        du rdS t          j        d          st          j        d          r%d| _         d}t                              |           dS | j         d}t                              |           	 t          t                                                                | _         n2# t          $ r% d| _         t                              d           Y dS w xY w|| j         v p&|
                                                    d          S )	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   rT   osgetenv_loggerdebugsetrN   
splitlines	Exceptionlower
startswith)rW   r   msgs      r
   __call__z_TroveClassifier.__call__   s&   ?e##t':d'B'B49\"" 	bi0O&P&P 	#DOP  MM#4?"P  MM#"%&;&=&=&H&H&J&J"K"K   "'JKKKtt
 'Q5;;==+C+CL+Q+QQs   2B9 9+C('C(N)	rU   
__module____qualname____doc__rX   rZ   strboolri   r   r   r
   rP   rP   ~   sf         + + +# # #Rc Rd R R R R R Rr   rP   )classifiersc                 b    | t           v p&|                                                     d          S )Nr^   )_trove_classifiersrf   rg   r   s    r
   rR   rR      s)    **Tekkmm.F.F|.T.TTr   c                 >   ddl m} 	  ||           }|j        sYt                              d|             |                     d          s'|                     d          sd| v s |d|            }t          |j        o|j                  S # t          $ r Y dS w xY w)	Nr   )urlparsezsFor maximum compatibility please make sure to include a `scheme` prefix in your URL (e.g. 'http://'). Given value: /\r%   zhttp://F)	urllib.parsers   schemera   warningrg   rn   netlocre   )r   rs   partss      r
   rK   rK      s    %%%%%%| 	4OO( %( (  
 $$S)) 4U-=-=d-C-C 4se|| !25!2!233EL1U\222   uus   BB 
BBz[^\[\s=]([^=]*[^\s=])?z[\w.-]+z\w+(\.\w+)*c                 *    |                                  S r   )isidentifierr   s    r
   r3   r3      s    r   c                     |                      d          s|                     d          rdS t          d |                     d          D                       S )Nr0   Fc              3   4   K   | ]}t          |          V  d S r   r2   )r    ms     r
   r"   z.python_qualified_identifier.<locals>.<genexpr>   s+      >> ##>>>>>>r   )rg   endswithr7   r6   r   s    r
   python_qualified_identifierr      sY     s 3 3 u>>U[[-=-=>>>>>>r   c                      t          |           S r   )r   r   s    r
   python_module_namer      s    &u---r   c                 :    t                               |           d uS r   )ENTRYPOINT_GROUP_REGEXr	   r   s    r
   python_entrypoint_groupr      s    !''..d::r   c                     t                               |           sdS t                              |           s*d|  d}|t          z  }t                              |           dS )NFzEntry point `z'` does not follow recommended pattern: T)ENTRYPOINT_REGEXr	   RECOMMEDED_ENTRYPOINT_REGEXRECOMMEDED_ENTRYPOINT_PATTERNra   rx   )r   rh   s     r
   python_entrypoint_namer      se    !!%(( u&,,U33 LeLLL,,4r   c                 N   |                      d          \  }}}d|v r|                     d          \  }}}|                                d         dk    rdS d |                    t          j        dz                                 d          D             }t          d	 |D                       sdS t                              d
|  d           n|}|                    d          }|r#t          ||                    d                    n|}t          d |D                       S )Nr*   [r$   Fc              3   >   K   | ]}|                                 V  d S r   r,   )r    xs     r
   r"   z.python_entrypoint_reference.<locals>.<genexpr>   s*      XX!''))XXXXXXr   z[],c              3   4   K   | ]}t          |          V  d S r   )r   )r    es     r
   r"   z.python_entrypoint_reference.<locals>.<genexpr>   s+      88A$Q''888888r   `z4` - using extras for entry points is not recommendedr0   c              3   X   K   | ]%}t          |                                          V  &d S r   )r3   r-   r.   s     r
   r"   z.python_entrypoint_reference.<locals>.<genexpr>  s3      AA ++AAAAAAr   )	r4   r-   string
whitespacer6   r7   ra   rx   r5   )	r   r8   r9   restr:   extras_extrasmodule_partsr;   s	            r
   python_entrypoint_referencer      s'   ooc**OFAt
d{{..--Q==??2#%%5XXW]]63Dt3K%L%L%R%RSV%W%WXXX8888888 	5WEWWWXXXX<<$$L:>P&syy~~666LKAA[AAAAAAr   )2loggingr_   rer   typing	itertoolsr   r5   	getLoggerrU   ra   VERSION_PATTERNcompileXIr   rm   rn   r   PEP508_IDENTIFIER_PATTERNr   r   	packagingr   r   ImportErrorsetuptools._vendor.packagingr   rx   r(   r<   rN   rP   trove_classifiersro   rq   rR   rK   ENTRYPOINT_PATTERNr   r   r   ENTRYPOINT_GROUP_PATTERNr   r3   r   r   r   r   r   r   r   r
   <module>r      s_    				 				   % % % % % %
'
H
%
%
> 
7_4w>rtLL4C 4D 4 4 4 4 G $"*%E)B%E%E%ErtLL ;C ;D ; ; ; ;F2222222 F F FEEEEEEEEFc d         OO	=  c d      	)c 	)d 	) 	) 	) 	) ?C ?D ? ? ? ?
Ms 
M 
M 
M 
M-R -R -R -R -R -R -R -R`*CCCCCCU U U U U U U  * * *''))*s t    ( / 2:7"4777>>  * (bj)M-J)M)M)MrtTT ) #$C(@$C$C$CRTJJ  S  T        ?s ?t ? ? ? ?.c .d . . . .;3 ;4 ; ; ; ;# $    Bs Bt B B B B B BsB   ?B B  BB  BB   "CC,C; ;DD