o
    5‘ðiã1  ã                	   @  sÄ  U d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZ ddlmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ g d
¢Zeeeeee f gef Z e	d Z!ddhZ"h d£Z#G dd„ de$ƒZ%G dd„ de$ƒZ&G dd„ de$ƒZ'G dd„ deƒZ(dLdd„Z)dMdd„Z*	 dNdOd&d'„Z+d(d)„ d*d)„ d+d)„ ej,ej,ej-ej,d,d)„ d-œZ.d.e/d/< dPd7d8„Z0dQd:d;„Z1dRd?d@„Z2dSdCdD„Z3dTdEdF„Z4G dGdH„ dHƒZ5dUdJdK„Z6dS )Vé    )ÚannotationsN)ÚAbstractSetÚCallableÚLiteralÚMappingÚ	TypedDictÚUnionÚcasté   )Ú
MarkerAtomÚ
MarkerListÚOpÚValueÚVariable)Úparse_marker)ÚParserSyntaxError)ÚInvalidSpecifierÚ	Specifier©Úcanonicalize_name)ÚEnvironmentÚEvaluateContextÚInvalidMarkerÚMarkerÚUndefinedComparisonÚUndefinedEnvironmentNameÚdefault_environment)ÚmetadataÚ	lock_fileÚrequirementÚextrasÚdependency_groups>   Úpython_versionÚplatform_releaseÚpython_full_versionÚimplementation_versionc                   @  ó   e Zd ZdZdS )r   zE
    An invalid marker was found, users should refer to PEP 508.
    N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r,   r,   úc/root/parts/websockify/install/lib/python3.10/site-packages/setuptools/_vendor/packaging/markers.pyr   (   ó    r   c                   @  r&   )r   zP
    An invalid operation was attempted on a value that doesn't support it.
    Nr'   r,   r,   r,   r-   r   .   r.   r   c                   @  r&   )r   z\
    A name was attempted to be used that does not exist inside of the
    environment.
    Nr'   r,   r,   r,   r-   r   4   r.   r   c                   @  sz   e Zd ZU ded< 	 ded< 	 ded< 	 ded< 	 ded< 	 ded< 	 ded< 	 ded	< 	 ded
< 	 ded< 	 ded< dS )r   ÚstrÚimplementation_namer%   Úos_nameÚplatform_machiner#   Úplatform_systemÚplatform_versionr$   Úplatform_python_implementationr"   Úsys_platformN)r(   r)   r*   Ú__annotations__r,   r,   r,   r-   r   ;   s.   
 r   ÚresultúMarkerList | MarkerAtom | strÚreturnc                 C  sp   t | tƒs| S | \}}}t |tƒr |jdkr t|jƒ}t|ƒ}nt |tƒr3|jdkr3t|jƒ}t|ƒ}|||fS )NÚextra)Ú
isinstanceÚtupler   Úvaluer   r   )r8   ÚlhsÚopÚrhsÚnormalized_extrar,   r,   r-   Ú_normalize_extrasƒ   s   





rC   Úresultsr   c                 C  s   dd„ | D ƒS )z!
    Normalize extra values.
    c                 S  s   g | ]}t |ƒ‘qS r,   )rC   )Ú.0Úrr,   r,   r-   Ú
<listcomp>˜   ó    z+_normalize_extra_values.<locals>.<listcomp>r,   )rD   r,   r,   r-   Ú_normalize_extra_values“   s   rI   TÚmarkerúlist[str] | MarkerAtom | strÚfirstúbool | Noner/   c                 C  s¢   t | tttfƒs
J ‚t | tƒr$t| ƒdkr$t | d ttfƒr$t| d ƒS t | tƒr@dd„ | D ƒ}|r7d |¡S dd |¡ d S t | tƒrOd dd	„ | D ƒ¡S | S )
Nr
   r   c                 s  s   � | ]	}t |d d�V  qdS )F)rL   N)Ú_format_marker©rE   Úmr,   r,   r-   Ú	<genexpr>¬   s   € z!_format_marker.<locals>.<genexpr>ú ú(ú)c                 S  s   g | ]}|  ¡ ‘qS r,   )Ú	serializerO   r,   r,   r-   rG   ²   rH   z"_format_marker.<locals>.<listcomp>)r<   Úlistr=   r/   ÚlenrN   Újoin)rJ   rL   Úinnerr,   r,   r-   rN   ›   s   ÿÿ


rN   c                 C  s   | |v S ©Nr,   ©r?   rA   r,   r,   r-   Ú<lambda>¸   ó    r\   c                 C  s   | |vS rZ   r,   r[   r,   r,   r-   r\   ¹   r]   c                 C  ó   dS ©NFr,   ©Ú_lhsÚ_rhsr,   r,   r-   r\   º   ó    c                 C  r^   r_   r,   r`   r,   r,   r-   r\   ¿   rc   )Úinznot inú<z<=z==z!=z>=ú>zdict[str, Operator]Ú
_operatorsr?   r@   r   rA   ústr | AbstractSet[str]ÚkeyÚboolc                C  s~   |  ¡ }|tv r#z
t|› |› �ƒ}W n	 ty   Y nw |j| dd�S t |¡}|d u r:td|›d| ›d|›d�ƒ‚|| |ƒS )NT)Úprereleasesz
Undefined z on z and Ú.)rU   ÚMARKERS_REQUIRING_VERSIONr   r   Úcontainsrg   Úgetr   )r?   r@   rA   ri   Úop_strÚspecÚoperr,   r,   r-   Ú_eval_opÃ   s   ÿ

rs   ú"tuple[str, str | AbstractSet[str]]c                 C  sb   |dkrt |tƒsJ dƒ‚| |fS |tv r-t |tƒr"t| ƒt|ƒfS t| ƒdd„ |D ƒfS | |fS )Nr;   zextra value must be a stringc                 S  s   h | ]}t |ƒ’qS r,   r   )rE   Úvr,   r,   r-   Ú	<setcomp>ã   rH   z_normalize.<locals>.<setcomp>)r<   r/   ÚMARKERS_ALLOWING_SETr   )r?   rA   ri   r,   r,   r-   Ú
_normalizeÔ   s   
rx   ÚmarkersÚenvironmentú!dict[str, str | AbstractSet[str]]c           
   	   C  sô   g g}| D ]k}t |tƒr|d  t||ƒ¡ qt |tƒr[|\}}}t |tƒr1|j}|| }|j}	n
|j}|j}|| }	t |tƒsDJ dƒ‚t||	|d�\}}	|d  t	|||	|d�¡ q|dkre| g ¡ q|dkrjqt
d|›�ƒ‚tdd„ |D ƒƒS )	Néÿÿÿÿzlhs must be a string)ri   ÚorÚandzUnexpected marker c                 s  s   � | ]}t |ƒV  qd S rZ   )Úall)rE   Úitemr,   r,   r-   rQ     s   € z$_evaluate_markers.<locals>.<genexpr>)r<   rV   ÚappendÚ_evaluate_markersr=   r   r>   r/   rx   rs   Ú	TypeErrorÚany)
ry   rz   ÚgroupsrJ   r?   r@   rA   Úenvironment_keyÚ	lhs_valueÚ	rhs_valuer,   r,   r-   r‚   é   s,   



r‚   Úinfoúsys._version_infoc                 C  sB   | j › d| j› d| j› �}| j}|dkr||d t| jƒ 7 }|S )Nrl   Úfinalr   )ÚmajorÚminorÚmicroÚreleaselevelr/   Úserial)r‰   ÚversionÚkindr,   r,   r-   Úformat_full_version
  s
   r“   c                  C  s^   t tjjƒ} tjj}|| tjt ¡ t ¡ t 	¡ t ¡ t 
¡ t ¡ d t ¡ d d… ¡tjdœS )Nrl   é   )r0   r%   r1   r2   r#   r3   r4   r$   r5   r"   r6   )r“   ÚsysÚimplementationr‘   ÚnameÚosÚplatformÚmachineÚreleaseÚsystemr"   Úpython_implementationrX   Úpython_version_tuple)Úiverr0   r,   r,   r-   r     s   õr   c                   @  sN   e Zd Zddd„Zddd„Zdd	d
„Zddd„Zddd„Z		dd dd„ZdS )!r   rJ   r/   r:   ÚNonec              
   C  sB   g | _ z
tt|ƒƒ| _ W d S  ty  } ztt|ƒƒ|‚d }~ww rZ   )Ú_markersrI   Ú_parse_markerr   r   r/   )ÚselfrJ   Úer,   r,   r-   Ú__init__%  s   €ÿzMarker.__init__c                 C  s
   t | jƒS rZ   )rN   r¡   ©r£   r,   r,   r-   Ú__str__C  s   
zMarker.__str__c                 C  s   d| j j› d| › d�S )Nre   z('z')>)Ú	__class__r(   r¦   r,   r,   r-   Ú__repr__F  s   zMarker.__repr__Úintc                 C  s   t t| ƒƒS rZ   )Úhashr/   r¦   r,   r,   r-   Ú__hash__I  s   zMarker.__hash__ÚotherÚobjectrj   c                 C  s   t |tƒstS t| ƒt|ƒkS rZ   )r<   r   ÚNotImplementedr/   )r£   r­   r,   r,   r-   Ú__eq__L  s   
zMarker.__eq__Nr   rz   ú+Mapping[str, str | AbstractSet[str]] | NoneÚcontextr   c                 C  s„   t dtƒ ƒ}|dkr|jtƒ tƒ d� n|dkrd|d< |dur:| |¡ d|v r:t d|d ƒ}|r6t|ƒnd|d< t| jt|ƒƒS )	a?  Evaluate a marker.

        Return the boolean from evaluating the given marker against the
        environment. environment is an optional argument to override all or
        part of the determined environment. The *context* parameter specifies what
        context the markers are being evaluated for, which influences what markers
        are considered valid. Acceptable values are "metadata" (for core metadata;
        default), "lock_file", and "requirement" (i.e. all other situations).

        The environment is determined from the current Python process.
        r{   r   )r    r!   r   Ú r;   Nz
str | None)r	   r   ÚupdateÚ	frozensetr   r‚   r¡   Ú_repair_python_full_version)r£   rz   r²   Úcurrent_environmentr;   r,   r,   r-   ÚevaluateR  s"   ÿÿ

ÿzMarker.evaluate)rJ   r/   r:   r    )r:   r/   )r:   rª   )r­   r®   r:   rj   )Nr   )rz   r±   r²   r   r:   rj   )	r(   r)   r*   r¥   r§   r©   r¬   r°   r¸   r,   r,   r,   r-   r   $  s    




ýr   Úenvc                 C  s*   t d| d ƒ}| d¡r|› d�| d< | S )zƒ
    Work around platform.python_version() returning something that is not PEP 440
    compliant for non-tagged Python builds.
    r/   r$   ú+Úlocal)r	   Úendswith)r¹   r$   r,   r,   r-   r¶   z  s   
r¶   )r8   r9   r:   r9   )rD   r   r:   r   )T)rJ   rK   rL   rM   r:   r/   )
r?   r/   r@   r   rA   rh   ri   r/   r:   rj   )r?   r/   rA   rh   ri   r/   r:   rt   )ry   r   rz   r{   r:   rj   )r‰   rŠ   r:   r/   )r:   r   )r¹   r{   r:   r{   )7Ú
__future__r   Úoperatorr˜   r™   r•   Útypingr   r   r   r   r   r   r	   Ú_parserr   r   r   r   r   r   r¢   Ú
_tokenizerr   Ú
specifiersr   r   Úutilsr   Ú__all__r/   rj   ÚOperatorr   rw   rm   Ú
ValueErrorr   r   r   r   rC   rI   rN   ÚeqÚnerg   r7   rs   rx   r‚   r“   r   r   r¶   r,   r,   r,   r-   Ú<module>   sP   $

H
	ÿø



!
V