§
    
Á³gÙ[  ã                   ó¾  — d Z ddlZddlZddlmZ ddlmZ g d¢Z ej        e	¦  «        Z
 G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z ej        d¦  «        Zd„ ZeZ G d„ de¦  «        Zd„ Z G d„ de¦  «        Z ej        d¦  «        df ej        d¦  «        df ej        d¦  «        df ej        d¦  «        df ej        d¦  «        df ej        d¦  «        df ej        d¦  «        df ej        d ¦  «        d!f ej        d"¦  «        d#f ej        d$¦  «        d%ff
Z ej        d&¦  «        df ej        d'¦  «        df ej        d(¦  «        df ej        d¦  «        df ej        d)¦  «        dffZ ej        d*¦  «        Zd+„ Zd,„ Z ej        d-ej        ¦  «        Zd.d.d/d.d0ddd1œZd2„ Z G d3„ d4e¦  «        Z  G d5„ d6e¦  «        Z! ej        d7ej        ¦  «        Z"d8„ Z#d9„ Z$ G d:„ d;e¦  «        Z% G d<„ d=e¦  «        Z& G d>„ d?e¦  «        Z' e'eee¦  «         e'ee!d@„ ¦  «         e'e$e&e¦  «        dAœZ(e(dB         e(dC<   dD„ Z)dS )Ez~
Implementation of a flexible versioning scheme providing support for PEP-440,
setuptools-compatible and semantic versioning.
é    Né   )Ústring_types©Úparse_requirement)ÚNormalizedVersionÚNormalizedMatcherÚLegacyVersionÚLegacyMatcherÚSemanticVersionÚSemanticMatcherÚUnsupportedVersionErrorÚ
get_schemec                   ó   — e Zd ZdZdS )r   zThis is an unsupported version.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úY/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_vendor/distlib/version.pyr   r      s   € € € € € Ø)Ð)Ø€Dr   r   c                   ól   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zed„ ¦   «         ZdS )ÚVersionc                 óÌ   — |                      ¦   «         x| _        }|                      |¦  «        x| _        }t	          |t
          ¦  «        sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   )ÚstripÚ_stringÚparseÚ_partsÚ
isinstanceÚtupleÚlen)ÚselfÚsÚpartss      r   Ú__init__zVersion.__init__   sY   € ØŸ7š7™9œ9Ð$ˆŒ�qØ"Ÿjšj¨™mœmÐ+ˆŒ�eÝ˜%¥Ñ'Ô'Ð'Ð'Ð'Ý�5‰zŒz˜AŠ~ˆ~ˆ~ˆ~ˆ~ˆ~r   c                 ó    — t          d¦  «        ‚)Nzplease implement in a subclass©ÚNotImplementedError©r!   r"   s     r   r   zVersion.parse%   s   € Ý!Ð"BÑCÔCÐCr   c                 óp   — t          | ¦  «        t          |¦  «        k    rt          d| ›d|›�¦  «        ‚d S ©Nzcannot compare z and )ÚtypeÚ	TypeError©r!   Úothers     r   Ú_check_compatiblezVersion._check_compatible(   s<   € Ý�‰:Œ:�˜e™œÒ$Ð$Ý�)¸$¸$¸$ÀÀÐFÑGÔGÐGð %Ð$r   c                 óL   — |                       |¦  «         | j        |j        k    S ©N©r/   r   r-   s     r   Ú__eq__zVersion.__eq__,   s%   € Ø×Ò˜uÑ%Ô%Ð%ØŒ{˜eœlÒ*Ð*r   c                 ó.   — |                       |¦  «         S r1   ©r3   r-   s     r   Ú__ne__zVersion.__ne__0   ó   € Ø—;’;˜uÑ%Ô%Ð%Ð%r   c                 óL   — |                       |¦  «         | j        |j        k     S r1   r2   r-   s     r   Ú__lt__zVersion.__lt__3   s%   € Ø×Ò˜uÑ%Ô%Ð%ØŒ{˜Uœ\Ò)Ð)r   c                 óX   — |                       |¦  «        p|                      |¦  «         S r1   ©r9   r3   r-   s     r   Ú__gt__zVersion.__gt__7   s(   € Ø—K’K Ñ&Ô&Ð<¨$¯+ª+°eÑ*<Ô*<Ð=Ð=r   c                 óV   — |                       |¦  «        p|                      |¦  «        S r1   r;   r-   s     r   Ú__le__zVersion.__le__:   ó%   € Ø�{Š{˜5Ñ!Ô!Ð7 T§[¢[°Ñ%7Ô%7Ð7r   c                 óV   — |                       |¦  «        p|                      |¦  «        S r1   )r<   r3   r-   s     r   Ú__ge__zVersion.__ge__=   r?   r   c                 ó*   — t          | j        ¦  «        S r1   )Úhashr   ©r!   s    r   Ú__hash__zVersion.__hash__A   s   € Ý�D”KÑ Ô Ð r   c                 ó0   — | j         j        ›d| j        ›d�S )Nz('z')©Ú	__class__r   r   rD   s    r   Ú__repr__zVersion.__repr__D   s   € Ø!œ^Ô4Ð4Ð4°d´l°l°lÐCÐCr   c                 ó   — | j         S r1   ©r   rD   s    r   Ú__str__zVersion.__str__G   ó
   € ØŒ|Ðr   c                 ó    — t          d¦  «        ‚)NzPlease implement in subclasses.r&   rD   s    r   Úis_prereleasezVersion.is_prereleaseJ   s   € å!Ð"CÑDÔDÐDr   N)r   r   r   r$   r   r/   r3   r6   r9   r<   r>   rA   rE   rI   rL   ÚpropertyrO   r   r   r   r   r      sñ   € € € € € ðð ð ðDð Dð DðHð Hð Hð+ð +ð +ð&ð &ð &ð*ð *ð *ð>ð >ð >ð8ð 8ð 8ð8ð 8ð 8ð!ð !ð !ðDð Dð Dðð ð ð ðEð Eñ „XðEð Eð Er   r   c            	       ó„   — e Zd ZdZd„ d„ d„ d„ d„ d„ d„ d	„ d
œZd„ Zd„ Zd„ Zed„ ¦   «         Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚMatcherNc                 ó   — | |k     S r1   r   ©ÚvÚcÚps      r   ú<lambda>zMatcher.<lambda>T   ó
   € ˜Q šU€ r   c                 ó   — | |k    S r1   r   rT   s      r   rX   zMatcher.<lambda>U   rY   r   c                 ó   — | |k    p| |k     S r1   r   rT   s      r   rX   zMatcher.<lambda>V   ó   € ˜a 1šf˜o¨¨Aª€ r   c                 ó   — | |k    p| |k    S r1   r   rT   s      r   rX   zMatcher.<lambda>W   r\   r   c                 ó   — | |k    S r1   r   rT   s      r   rX   zMatcher.<lambda>X   ó
   € ˜a 1šf€ r   c                 ó   — | |k    S r1   r   rT   s      r   rX   zMatcher.<lambda>Y   s
   € ˜q Ašv€ r   c                 ó   — | |k    p| |k    S r1   r   rT   s      r   rX   zMatcher.<lambda>[   r\   r   c                 ó   — | |k    S r1   r   rT   s      r   rX   zMatcher.<lambda>\   r_   r   )ú<ú>ú<=ú>=ú==ú===ú~=ú!=c                 ó    — t          |¦  «        S r1   r   r(   s     r   r   zMatcher.parse_requirementa   s   € Ý  Ñ#Ô#Ð#r   c                 óZ  — | j         €t          d¦  «        ‚|                     ¦   «         x| _        }|                      |¦  «        }|st          d|z  ¦  «        ‚|j        | _        | j                             ¦   «         | _        g }|j        r‰|j        D ]�\  }}| 	                    d¦  «        r8|dvrt          d|z  ¦  «        ‚|d d…         d}}|                       |¦  «         n|                       |¦  «        d}}| 
                    |||f¦  «         Œ‚t          |¦  «        | _        d S )	NzPlease specify a version classzNot valid: %rz.*)rg   rj   z#'.*' not allowed for %r constraintséþÿÿÿTF)Úversion_classÚ
ValueErrorr   r   r   ÚnameÚlowerÚkeyÚconstraintsÚendswithÚappendr   r   )r!   r"   ÚrÚclistÚopÚvnÚprefixs          r   r$   zMatcher.__init__d   sM  € ØÔÐ%ÝÐ=Ñ>Ô>Ð>ØŸ7š7™9œ9Ð$ˆŒ�qØ×"Ò" 1Ñ%Ô%ˆØð 	2Ý˜_¨qÑ0Ñ1Ô1Ð1Ø”FˆŒ	Ø”9—?’?Ñ$Ô$ˆŒØˆØŒ=ð 	/àœð /ð /‘��AØ—:’:˜dÑ#Ô#ð >Ø Ð-Ð-Ý(ð *:Ø<>ñ*?ñ @ô @ð @ð "# 3 B 3¤¨˜�Bà×&Ò& rÑ*Ô*Ð*Ð*ð "&×!3Ò!3°AÑ!6Ô!6¸˜�BØ—’˜b " fÐ-Ñ.Ô.Ð.Ð.Ý˜E‘l”lˆŒˆˆr   c                 óX  — t          |t          ¦  «        r|                      |¦  «        }| j        D ]w\  }}}| j                             |¦  «        }t          |t          ¦  «        rt          | |¦  «        }|s |›d| j        j        ›�}t          |¦  «        ‚ ||||¦  «        s dS ŒxdS )zÉ
        Check if the provided version matches the constraints.

        :param version: The version to match against this instance.
        :type version: String or :class:`Version` instance.
        z not implemented for FT)
r   r   rn   r   Ú
_operatorsÚgetÚgetattrrH   r   r'   )r!   ÚversionÚoperatorÚ
constraintrz   ÚfÚmsgs          r   ÚmatchzMatcher.match�   sÍ   € õ �g�|Ñ,Ô,ð 	2Ø×(Ò(¨Ñ1Ô1ˆGØ,0¬Kð 		ð 		Ñ(ˆH�j &Ø”×#Ò# HÑ-Ô-ˆAÝ˜!�\Ñ*Ô*ð %Ý˜D !Ñ$Ô$�Øð /à#+ 8 8¨T¬^Ô-DÐ-DðF�å)¨#Ñ.Ô.Ð.Ø�1�W˜j¨&Ñ1Ô1ð Ø�u�uðàˆtr   c                 óŠ   — d }t          | j        ¦  «        dk    r(| j        d         d         dv r| j        d         d         }|S )Nr   r   )rg   rh   )r    r   )r!   Úresults     r   Úexact_versionzMatcher.exact_version–   sF   € àˆÝˆtŒ{ÑÔ˜qÒ Ð  T¤[°¤^°AÔ%6¸-Ð%GÐ%GØ”[ ”^ AÔ&ˆFØˆr   c                 ó�   — t          | ¦  «        t          |¦  «        k    s| j        |j        k    rt          d| ›d|›�¦  «        ‚d S r*   )r+   rp   r,   r-   s     r   r/   zMatcher._check_compatible�   sK   € Ý�‰:Œ:�˜e™œÒ$Ð$¨¬	°U´ZÒ(?Ð(?Ý�)¸$¸$¸$ÀÀÐFÑGÔGÐGð )@Ð(?r   c                 ól   — |                       |¦  «         | j        |j        k    o| j        |j        k    S r1   )r/   rr   r   r-   s     r   r3   zMatcher.__eq__¡   s3   € Ø×Ò˜uÑ%Ô%Ð%ØŒx˜5œ9Ò$ÐD¨¬¸¼Ò)DÐDr   c                 ó.   — |                       |¦  «         S r1   r5   r-   s     r   r6   zMatcher.__ne__¥   r7   r   c                 óT   — t          | j        ¦  «        t          | j        ¦  «        z   S r1   )rC   rr   r   rD   s    r   rE   zMatcher.__hash__©   s   € Ý�D”H‰~Œ~¥ T¤[Ñ 1Ô 1Ñ1Ð1r   c                 ó0   — | j         j        ›d| j        ›d�S )Nú(ú)rG   rD   s    r   rI   zMatcher.__repr__¬   s   € Øœ>Ô2Ð2Ð2°D´L°L°LÐAÐAr   c                 ó   — | j         S r1   rK   rD   s    r   rL   zMatcher.__str__¯   rM   r   )r   r   r   rn   r|   r   r$   r„   rP   r‡   r/   r3   r6   rE   rI   rL   r   r   r   rR   rR   O   s  € € € € € Ø€Mð #Ð"Ø"Ð"Ø-Ð-Ø-Ð-Ø$Ð$Ø%Ð%à-Ð-Ø$Ð$ð
ð 
€Jð$ð $ð $ð#ð #ð #ð:ð ð ð* ðð ñ „XððHð Hð HðEð Eð Eð&ð &ð &ð2ð 2ð 2ðBð Bð Bðð ð ð ð r   rR   zk^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?(\.(post)(\d+))?(\.(dev)(\d+))?(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$c                 ó2  — |                       ¦   «         } t                               | ¦  «        }|st          d| z  ¦  «        ‚|                     ¦   «         }t          d„ |d                              d¦  «        D ¦   «         ¦  «        }t          |¦  «        dk    r5|d         dk    r)|d d…         }t          |¦  «        dk    r|d         dk    °)|d         sd}nt          |d         d d…         ¦  «        }|dd…         }|d	d
…         }|dd…         }|d         }|dk    rd}n|d         t          |d         ¦  «        f}|dk    rd}n|d         t          |d         ¦  «        f}|dk    rd}n|d         t          |d         ¦  «        f}|€d}nhg }	|                     d¦  «        D ]A}
|
 	                    ¦   «         rdt          |
¦  «        f}
nd|
f}
|	 
                    |
¦  «         ŒBt          |	¦  «        }|s	|s|rd}nd}|sd}|sd}||||||fS )NzNot a valid version: %sc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r1   ©Úint©Ú.0rU   s     r   ú	<genexpr>z_pep_440_key.<locals>.<genexpr>¾   s(   è è € Ð6Ð6˜A•�Q‘”Ð6Ð6Ð6Ð6Ð6Ð6r   r   ú.éÿÿÿÿr   é   é   é   é	   é
   é   é   )NNr   )Úar˜   )Úz)Ú_)Úfinal)r   ÚPEP440_VERSION_REr„   r   Úgroupsr   Úsplitr    r“   Úisdigitru   )r"   Úmr¥   ÚnumsÚepochÚpreÚpostÚdevÚlocalr#   Úparts              r   Ú_pep_440_keyr°   ¸   sc  € Ø	�Š‰	Œ	€AÝ×Ò Ñ"Ô"€AØð EÝ%Ð&?À!Ñ&CÑDÔDÐDØ�XŠX‰ZŒZ€FÝÐ6Ð6 ¨¤§¢°Ñ!5Ô!5Ð6Ñ6Ô6Ñ6Ô6€DÝ
ˆd‰)Œ)�aŠ-ˆ-˜D œH¨šM˜MØ�C�R�CŒyˆõ ˆd‰)Œ)�aŠ-ˆ-˜D œH¨šM˜Mð �!Œ9ð $Øˆˆå�F˜1”I˜c˜r˜c”NÑ#Ô#ˆØ
��1�Œ+€CØ�!�A�#Œ;€DØ
��B�Œ-€CØ�2ŒJ€EØ
ˆlÒÐØˆˆà�!Œf•c˜#˜aœ&‘k”kÐ!ˆØˆ|ÒÐØˆˆà�AŒw�˜D œG™œÐ$ˆØ
ˆlÒÐØˆˆà�!Œf•c˜#˜aœ&‘k”kÐ!ˆØ€}ØˆˆàˆØ—K’K Ñ$Ô$ð 	ð 	ˆDð �|Š|‰~Œ~ð !Ø�3˜t™9œ9�~��à˜4�y�Ø�LŠL˜ÑÔÐÐÝ�e‘”ˆØð àð 	˜ð 	àˆCˆCàˆCàð ØˆØð Øˆð �$˜˜T 3¨Ð-Ð-r   c                   óH   — e Zd ZdZd„ Z eg d¢¦  «        Zed„ ¦   «         ZdS )r   aI  A rational version.

    Good:
        1.2         # equivalent to "1.2.0"
        1.2.0
        1.2a1
        1.2.3a2
        1.2.3b1
        1.2.3c1
        1.2.3.4
        TODO: fill this out

    Bad:
        1           # minimum two numbers
        1.2a        # release level must have a release serial
        1.2.3b
    c                 óî   — t          |¦  «        }t                               |¦  «        }|                     ¦   «         }t	          d„ |d                              d¦  «        D ¦   «         ¦  «        | _        |S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r1   r’   r”   s     r   r–   z*NormalizedVersion.parse.<locals>.<genexpr>  s(   è è € Ð$JÐ$J°¥S¨¡V¤VÐ$JÐ$JÐ$JÐ$JÐ$JÐ$Jr   r   r—   )Ú_normalized_keyr¤   r„   r¥   r   r¦   Ú_release_clause)r!   r"   r†   r¨   r¥   s        r   r   zNormalizedVersion.parse
  se   € Ý  Ñ#Ô#ˆõ
 ×#Ò# AÑ&Ô&ˆØ—’‘”ˆÝ$Ð$JÐ$J°V¸A´Y·_²_ÀSÑ5IÔ5IÐ$JÑ$JÔ$JÑJÔJˆÔØˆr   )r    ÚbrV   Úrcr­   c                 óD   ‡ — t          ˆ fd„‰ j        D ¦   «         ¦  «        S )Nc              3   ó:   •K  — | ]}|¯|d          ‰j         v V — ŒdS )r   N)ÚPREREL_TAGS)r•   Útr!   s     €r   r–   z2NormalizedVersion.is_prerelease.<locals>.<genexpr>  s4   øè è € ÐFÐF°ÀAÐF�1�Q”4˜4Ô+Ð+ÐFÐFÐFÐFÐFÐFr   )Úanyr   rD   s   `r   rO   zNormalizedVersion.is_prerelease  s(   ø€ åÐFÐFÐFÐF°T´[ÐFÑFÔFÑFÔFÐFr   N)	r   r   r   r   r   Úsetrº   rP   rO   r   r   r   r   r   ø   sc   € € € € € ðð ð"	ð 	ð 	ð �#Ð2Ð2Ð2Ñ3Ô3€KàðGð Gñ „XðGð Gð Gr   r   c                 ó²   — t          | ¦  «        } t          |¦  «        }| |k    rdS |                      |¦  «        sdS t          |¦  «        }| |         dk    S )NTFr—   )ÚstrÚ
startswithr    )ÚxÚyÚns      r   Ú_match_prefixrÄ     sV   € ÝˆA‰Œ€AÝˆA‰Œ€AØˆA‚v€vØˆtØ�<Š<˜‰?Œ?ð ØˆuÝˆA‰Œ€AØˆQŒ4�3Š;Ðr   c            	       ó^   — e Zd ZeZddddddddd	œZd
„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ ZdS )r   Ú_match_compatibleÚ	_match_ltÚ	_match_gtÚ	_match_leÚ	_match_geÚ	_match_eqÚ_match_arbitraryÚ	_match_ne)ri   rc   rd   re   rf   rg   rh   rj   c                 óØ   — |rd|vo|j         d         }n|j         d          o|j         d         }|r6|j                             dd¦  «        d         }|                      |¦  «        }||fS )Nú+r˜   r   r   )r   r   r¦   rn   )r!   r   r�   rz   Ústrip_localr"   s         r   Ú_adjust_localzNormalizedMatcher._adjust_local6  sƒ   € Øð 	KØ ZÐ/ÐF°G´NÀ2Ô4FˆKˆKð )Ô/°Ô3Ð3ÐJ¸¼ÀrÔ8JˆKØð 	,Ø”×%Ò% c¨1Ñ-Ô-¨aÔ0ˆAØ×(Ò(¨Ñ+Ô+ˆGØ˜
Ð"Ð"r   c                 ó´   — |                       |||¦  «        \  }}||k    rdS |j        }d                     d„ |D ¦   «         ¦  «        }t          ||¦  «         S )NFr—   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   ©r¿   ©r•   Úis     r   ú
<listcomp>z/NormalizedMatcher._match_lt.<locals>.<listcomp>I  ó   € Ð7Ð7Ð7 1�˜A™œÐ7Ð7Ð7r   ©rÑ   rµ   ÚjoinrÄ   ©r!   r   r�   rz   Úrelease_clauseÚpfxs         r   rÇ   zNormalizedMatcher._match_ltD  ói   € Ø"×0Ò0°¸*ÀfÑMÔMÑˆ�Ø�jÒ Ð Ø�5Ø#Ô3ˆØ�hŠhÐ7Ð7¨Ð7Ñ7Ô7Ñ8Ô8ˆÝ  ¨#Ñ.Ô.Ð.Ð.r   c                 ó´   — |                       |||¦  «        \  }}||k    rdS |j        }d                     d„ |D ¦   «         ¦  «        }t          ||¦  «         S )NFr—   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   rÔ   rÕ   s     r   r×   z/NormalizedMatcher._match_gt.<locals>.<listcomp>Q  rØ   r   rÙ   rÛ   s         r   rÈ   zNormalizedMatcher._match_gtL  rÞ   r   c                 óB   — |                       |||¦  «        \  }}||k    S r1   ©rÑ   ©r!   r   r�   rz   s       r   rÉ   zNormalizedMatcher._match_leT  ó)   € Ø"×0Ò0°¸*ÀfÑMÔMÑˆ�Ø˜*Ò$Ð$r   c                 óB   — |                       |||¦  «        \  }}||k    S r1   râ   rã   s       r   rÊ   zNormalizedMatcher._match_geX  rä   r   c                 ól   — |                       |||¦  «        \  }}|s||k    }nt          ||¦  «        }|S r1   ©rÑ   rÄ   ©r!   r   r�   rz   r†   s        r   rË   zNormalizedMatcher._match_eq\  sF   € Ø"×0Ò0°¸*ÀfÑMÔMÑˆ�Øð 	8Ø Ò+ˆFˆFå" 7¨JÑ7Ô7ˆFØˆr   c                 óB   — t          |¦  «        t          |¦  «        k    S r1   rÔ   rã   s       r   rÌ   z"NormalizedMatcher._match_arbitraryd  s   € Ý�7‰|Œ|�s :™œÒ.Ð.r   c                 ón   — |                       |||¦  «        \  }}|s||k    }nt          ||¦  «         }|S r1   rç   rè   s        r   rÍ   zNormalizedMatcher._match_neg  sI   € Ø"×0Ò0°¸*ÀfÑMÔMÑˆ�Øð 	<Ø Ò+ˆFˆFå& w°
Ñ;Ô;Ð;ˆFØˆr   c                 óü   — |                       |||¦  «        \  }}||k    rdS ||k     rdS |j        }t          |¦  «        dk    r
|d d…         }d                     d„ |D ¦   «         ¦  «        }t	          ||¦  «        S )NTFr   r˜   r—   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   rÔ   rÕ   s     r   r×   z7NormalizedMatcher._match_compatible.<locals>.<listcomp>z  rØ   r   )rÑ   rµ   r    rÚ   rÄ   rÛ   s         r   rÆ   z#NormalizedMatcher._match_compatibleo  s™   € Ø"×0Ò0°¸*ÀfÑMÔMÑˆ�Ø�jÒ Ð Ø�4Ø�ZÒÐØ�5ð $Ô3ˆÝˆ~ÑÔ Ò"Ð"Ø+¨C¨R¨CÔ0ˆNØ�hŠhÐ7Ð7¨Ð7Ñ7Ô7Ñ8Ô8ˆÝ˜W cÑ*Ô*Ð*r   N)r   r   r   r   rn   r|   rÑ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÆ   r   r   r   r   r   '  sÆ   € € € € € Ø%€Mð "ØØØØØØ!Øð	ð 	€Jð#ð #ð #ð/ð /ð /ð/ð /ð /ð%ð %ð %ð%ð %ð %ðð ð ð/ð /ð /ðð ð ð+ð +ð +ð +ð +r   r   z[.+-]$Ú z^[.](\d)z0.\1z^[.-]z
^\((.*)\)$ú\1z^v(ersion)?\s*(\d+)z\2z^r(ev)?\s*(\d+)z[.]{2,}r—   z\b(alfa|apha)\bÚalphaz\b(pre-alpha|prealpha)\bz	pre.alphaz	\(beta\)$Úbetaz
^[:~._+-]+z
[,*")([\]]z[~:+_ -]z\.$z(\d+(\.\d+)*)c                 óÄ  — |                       ¦   «                              ¦   «         }t          D ]\  }}|                     ||¦  «        }Œ|sd}t                               |¦  «        }|sd}|}�n%|                     ¦   «         d                              d¦  «        }d„ |D ¦   «         }t          |¦  «        dk     r(| 	                    d¦  «         t          |¦  «        dk     °(t          |¦  «        dk    r|| 
                    ¦   «         d…         }nNd                     d„ |dd…         D ¦   «         ¦  «        || 
                    ¦   «         d…         z   }|dd…         }d                     d„ |D ¦   «         ¦  «        }|                      ¦   «         }|r#t          D ]\  }}|                     ||¦  «        }Œ|s|}nd	|v rd
nd}||z   |z   }t          |¦  «        sd}|S )z€
    Try to suggest a semantic form for a version for which
    _suggest_normalized_version couldn't come up with anything.
    z0.0.0r   r—   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   r’   rÕ   s     r   r×   z-_suggest_semantic_version.<locals>.<listcomp>ª  s   € Ð)Ð)Ð)˜Q•#�a‘&”&Ð)Ð)Ð)r   é   Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS r   rÔ   rÕ   s     r   r×   z-_suggest_semantic_version.<locals>.<listcomp>°  s   € Ð:Ð:Ð:¨!�s 1™vœvÐ:Ð:Ð:r   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   rÔ   rÕ   s     r   r×   z-_suggest_semantic_version.<locals>.<listcomp>²  s   € Ð2Ð2Ð2 a�3˜q™6œ6Ð2Ð2Ð2r   r­   ú-rÏ   )r   rq   Ú_REPLACEMENTSÚsubÚ_NUMERIC_PREFIXr„   r¥   r¦   r    ru   ÚendrÚ   Ú_SUFFIX_REPLACEMENTSÚ	is_semver)r"   r†   ÚpatÚreplr¨   rz   ÚsuffixÚseps           r   Ú_suggest_semantic_versionr  –  sø  € ð
 �WŠW‰YŒY�_Š_ÑÔ€FÝ"ð 'ð '‰	ˆˆTØ—’˜˜vÑ&Ô&ˆˆØð Øˆõ
 	×Ò˜fÑ%Ô%€AØð  ØˆØˆ‰à—’‘”˜A”×$Ò$ SÑ)Ô)ˆØ)Ð) &Ð)Ñ)Ô)ˆÝ�&‰kŒk˜AŠoˆoØ�MŠM˜!ÑÔÐõ �&‰kŒk˜AŠoˆoåˆv‰;Œ;˜!ÒÐØ˜AŸEšE™GœG˜H˜HÔ%ˆFˆFà—X’XÐ:Ð:¨v°a°b°b¬zÐ:Ñ:Ô:Ñ;Ô;¸fÀQÇUÂUÁWÄWÀXÀXÔ>NÑNˆFØ˜B˜Q˜B”ZˆFØ—’Ð2Ð2¨6Ð2Ñ2Ô2Ñ3Ô3ˆØ—’‘”ˆØð +õ .ð 	+ð 	+‰IˆC�Ø—W’W˜T 6Ñ*Ô*ˆFˆFàð 'Øˆˆà˜f�_�_ˆcˆc¨#ˆØ˜#‘ Ñ&ˆÝ�VÑÔð ØˆØ€Mr   c                 óò  — 	 t          | ¦  «         | S # t          $ r Y nw xY w|                      ¦   «         }dD ]\  }}|                     ||¦  «        }Œt	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd	|¦  «        }t	          j        d
d|¦  «        }|                     d¦  «        r
|dd…         }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd|¦  «        }t	          j        dd |¦  «        }	 t          |¦  «         n# t          $ r d}Y nw xY w|S )!aè  Suggest a normalized version close to the given version string.

    If you have a version string that isn't rational (i.e. NormalizedVersion
    doesn't like it) then you might be able to get an equivalent (or close)
    rational version from this function.

    This does a number of simple normalizations to the given string, based
    on observation of versions currently in use on PyPI. Given a dump of
    those version during PyCon 2009, 4287 of them:
    - 2312 (53.93%) match NormalizedVersion without change
      with the automatic suggestion
    - 3474 (81.04%) match when using this suggestion method

    @param s {str} An irrational version string.
    @returns A rational version string, or None, if couldn't determine one.
    ))z-alphar    )z-betar¶   )rï   r    )rð   r¶   )r·   rV   )z-finalrí   )z-prerV   )z-releaserí   )z.releaserí   )z-stablerí   )rÏ   r—   )r¢   r—   )ú rí   )z.finalrí   )r£   rí   zpre$Úpre0zdev$Údev0z([abc]|rc)[\-\.](\d+)$z\1\2z[\-\.](dev)[\-\.]?r?(\d+)$z.\1\2z[.~]?([abc])\.?rî   rU   r   Nz\b0+(\d+)(?!\d)z(\d+[abc])$z\g<1>0z\.?(dev-r|dev\.r)\.?(\d+)$z.dev\2z-(a|b|c)(\d+)$z[\.\-](dev|devel)$z.dev0z(?![\.\-])dev$z(final|stable)$rí   z\.?(r|-|-r)\.?(\d+)$z.post\2z\.?(dev|git|bzr)\.?(\d+)$z\.?(pre|preview|-c)(\d+)$zc\g<2>zp(\d+)$z.post\1)r´   r   rq   ÚreplaceÚrerø   rÀ   )r"   ÚrsÚorigrþ   s       r   Ú_suggest_normalized_versionr
  Ä  s1  € ð"Ý˜ÑÔÐØˆøÝ"ð ð ð Øˆðøøøð 
�Š‰Œ€Bð&ð $ð $‰
ˆˆdð �ZŠZ˜˜dÑ#Ô#ˆˆõ 
Œ�˜ "Ñ	%Ô	%€BÝ	Œ�˜ "Ñ	%Ô	%€Bõ
 
ŒÐ)¨7°BÑ	7Ô	7€Bõ 
ŒÐ-¨x¸Ñ	<Ô	<€Bõ 
ŒÐ" E¨2Ñ	.Ô	.€Bð 
‡}‚}�SÑÔð Ø���ŒVˆõ
 
ŒÐ" E¨2Ñ	.Ô	.€Bõ
 
Œ� 	¨2Ñ	.Ô	.€Bõ 
ŒÐ-¨y¸"Ñ	=Ô	=€Bõ 
ŒÐ! 7¨BÑ	/Ô	/€Bõ 
ŒÐ% x°Ñ	4Ô	4€Bõ 
ŒÐ! 8¨RÑ	0Ô	0€Bõ 
ŒÐ" B¨Ñ	+Ô	+€Bõ 
ŒÐ'¨°RÑ	8Ô	8€Bõ 
ŒÐ,¨i¸Ñ	<Ô	<€Bõ 
ŒÐ,¨i¸Ñ	<Ô	<€Bõ 
Œ�
˜J¨Ñ	+Ô	+€BðÝ˜ÑÔÐÐøÝ"ð ð ð Øˆˆˆðøøøà€Is   ‚ “
 Ÿ ÇG% Ç%G4Ç3G4z([a-z]+|\d+|[\.-])rV   zfinal-ú@)r«   Úpreviewrö   r·   r­   rí   r—   c                 óf  — d„ }g } || ¦  «        D ]’}|                      d¦  «        rf|dk     r0|r.|d         dk    r"|                     ¦   «          |r|d         dk    °"|r.|d         dk    r"|                     ¦   «          |r|d         dk    °"|                     |¦  «         Œ“t          |¦  «        S )Nc                 ó\  — g }t                                |                      ¦   «         ¦  «        D ]g}t                               ||¦  «        }|rHd|d d…         cxk    rdk    rn n|                     d¦  «        }nd|z   }|                     |¦  «         Œh|                     d¦  «         |S )NÚ0r   Ú9é   Ú*ú*final)Ú_VERSION_PARTr¦   rq   Ú_VERSION_REPLACEr}   Úzfillru   )r"   r†   rW   s      r   Ú	get_partsz_legacy_key.<locals>.get_partsC  s·   € ØˆÝ×$Ò$ Q§W¢W¡Y¤YÑ/Ô/ð 	!ð 	!ˆAÝ ×$Ò$ Q¨Ñ*Ô*ˆAØð !Ø˜!˜B˜Q˜Bœ%Ð&Ð&Ò&Ð& 3Ò&Ð&Ð&Ð&Ð&ØŸš ™
œ
�A�Aà˜a™�AØ—’˜aÑ Ô Ð øØ�Š�hÑÔÐØˆr   r  r  r˜   z*final-Ú00000000)rÀ   Úpopru   r   )r"   r  r†   rW   s       r   Ú_legacy_keyr  B  sã   € ðð ð ð €FØˆY�q‰\Œ\ð ð ˆØ�<Š<˜ÑÔð 	Ø�8Š|ˆ|Øð ! ¨¤¨yÒ!8Ð!8Ø—J’J‘L”L�Lð ð ! ¨¤¨yÒ!8Ð!8àð ˜V BœZ¨:Ò5Ð5Ø—
’
‘”�ð ð ˜V BœZ¨:Ò5Ð5à�Š�aÑÔÐÐÝ�‰=Œ=Ðr   c                   ó*   — e Zd Zd„ Zed„ ¦   «         ZdS )r	   c                 ó    — t          |¦  «        S r1   )r  r(   s     r   r   zLegacyVersion.parse]  s   € Ý˜1‰~Œ~Ðr   c                 ó†   — d}| j         D ]6}t          |t          ¦  «        r|                     d¦  «        r
|dk     rd} nŒ7|S )NFr  r  T)r   r   r   rÀ   )r!   r†   rÁ   s      r   rO   zLegacyVersion.is_prerelease`  sV   € àˆØ”ð 	ð 	ˆAÝ˜1�lÑ+Ô+ð °·²¸SÑ0AÔ0Að Ø�H’�Ø�Ø�øØˆr   N©r   r   r   r   rP   rO   r   r   r   r	   r	   \  s>   € € € € € ðð ð ð ðð ñ „Xðð ð r   r	   c                   ób   — e Zd ZeZ eej        ¦  «        Zded<    ej	        d¦  «        Z
d„ ZdS )r
   rÆ   ri   z^(\d+(\.\d+)*)c                 ó4  — ||k     rdS | j                              t          |¦  «        ¦  «        }|st                               d||¦  «         dS |                     ¦   «         d         }d|v r|                     dd¦  «        d         }t          ||¦  «        S )NFzACannot compute compatible match for version %s  and constraint %sTr   r—   r   )Ú
numeric_rer„   r¿   ÚloggerÚwarningr¥   ÚrsplitrÄ   )r!   r   r�   rz   r¨   r"   s         r   rÆ   zLegacyMatcher._match_compatibles  sŸ   € Ø�ZÒÐØ�5ØŒO×!Ò!¥# j¡/¤/Ñ2Ô2ˆØð 	Ý�NŠNð 0Ø18¸*ñFô Fð Fà�4Ø�HŠH‰JŒJ�qŒMˆØ�!ˆ8ˆ8Ø—’˜˜aÑ Ô  Ô#ˆAÝ˜W aÑ(Ô(Ð(r   N)r   r   r   r	   rn   ÚdictrR   r|   r  Úcompiler!  rÆ   r   r   r   r
   r
   k  sV   € € € € € Ø!€Mà��gÔ(Ñ)Ô)€JØ*€JˆtÑà�”Ð-Ñ.Ô.€Jð)ð )ð )ð )ð )r   r
   zN^(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+(\.[a-z0-9-]+)*)?(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$c                 ó6   — t                                | ¦  «        S r1   )Ú
_SEMVER_REr„   )r"   s    r   rü   rü   ‰  s   € Ý×Ò˜AÑÔÐr   c                 óø   — d„ }t          | ¦  «        }|st          | ¦  «        ‚|                     ¦   «         }d„ |d d…         D ¦   «         \  }}} ||d         d¦  «         ||d         d¦  «        }}|||f||fS )Nc                 ó~   — | €|f}n6| dd …                               d¦  «        }t          d„ |D ¦   «         ¦  «        }|S )Nr   r—   c                 ód   — g | ]-}|                      ¦   «         r|                     d ¦  «        n|‘Œ.S )r  )r§   r  )r•   rW   s     r   r×   z5_semantic_key.<locals>.make_tuple.<locals>.<listcomp>•  s3   € ÐLÐLÐLÀ¨!¯)ª)©+¬+Ð<˜AŸGšG A™JœJ˜J¸1ÐLÐLÐLr   )r¦   r   )r"   Úabsentr†   r#   s       r   Ú
make_tuplez!_semantic_key.<locals>.make_tupleŽ  sL   € Øˆ9Ø�YˆFˆFà�a�b�b”E—K’K Ñ$Ô$ˆEõ ÐLÐLÀeÐLÑLÔLÑMÔMˆFØˆr   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   r’   rÕ   s     r   r×   z!_semantic_key.<locals>.<listcomp>œ  s   € Ð6Ð6Ð6 a�3˜q™6œ6Ð6Ð6Ð6r   ró   ú|é   r  )rü   r   r¥   )	r"   r-  r¨   r¥   ÚmajorÚminorÚpatchr«   Úbuilds	            r   Ú_semantic_keyr5  �  s    € ðð ð õ 	�!‰Œ€AØð )Ý% aÑ(Ô(Ð(Ø�XŠX‰ZŒZ€FØ6Ð6¨6°"°1°"¬:Ð6Ñ6Ô6Ñ€Eˆ5�%à�˜F 1œI sÑ+Ô+¨Z¨Z¸¸q¼	À3Ñ-GÔ-Gˆ€CØ�5˜%Ð  # uÐ,Ð,r   c                   ó*   — e Zd Zd„ Zed„ ¦   «         ZdS )r   c                 ó    — t          |¦  «        S r1   )r5  r(   s     r   r   zSemanticVersion.parse£  s   € Ý˜QÑÔÐr   c                 ó0   — | j         d         d         dk    S )Nr   r   r/  )r   rD   s    r   rO   zSemanticVersion.is_prerelease¦  s   € àŒ{˜1Œ~˜aÔ  CÒ'Ð'r   Nr  r   r   r   r   r   ¢  s>   € € € € € ð ð  ð  ð ð(ð (ñ „Xð(ð (ð (r   r   c                   ó   — e Zd ZeZdS )r   N)r   r   r   r   rn   r   r   r   r   r   «  s   € € € € € Ø#€M€M€Mr   r   c                   ó.   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ ZdS )ÚVersionSchemeNc                 ó0   — || _         || _        || _        d S r1   )rr   ÚmatcherÚ	suggester)r!   rr   r=  r>  s       r   r$   zVersionScheme.__init__°  s   € ØˆŒØˆŒØ"ˆŒˆˆr   c                 óf   — 	 | j                              |¦  «         d}n# t          $ r d}Y nw xY w|S ©NTF)r=  rn   r   ©r!   r"   r†   s      r   Úis_valid_versionzVersionScheme.is_valid_versionµ  sM   € ð	ØŒL×&Ò& qÑ)Ô)Ð)ØˆFˆFøÝ&ð 	ð 	ð 	ØˆFˆFˆFð	øøøàˆs   ‚ Ÿ.­.c                 ó\   — 	 |                       |¦  «         d}n# t          $ r d}Y nw xY w|S r@  )r=  r   rA  s      r   Úis_valid_matcherzVersionScheme.is_valid_matcher½  sF   € ð	Ø�LŠL˜‰OŒOˆOØˆFˆFøÝ&ð 	ð 	ð 	ØˆFˆFˆFð	øøøàˆs   ‚ š)¨)c                 óp   — |                      d¦  «        r
|dd…         }|                      d|z  ¦  «        S )z:
        Used for processing some metadata fields
        ú,Nr˜   zdummy_name (%s))rt   rD  r(   s     r   Úis_valid_constraint_listz&VersionScheme.is_valid_constraint_listÅ  s=   € ð
 �:Š:�c‰?Œ?ð 	Ø�#�2�#”ˆAØ×$Ò$Ð%6¸Ñ%:Ñ;Ô;Ð;r   c                 óD   — | j         €d }n|                       |¦  «        }|S r1   )r>  rA  s      r   ÚsuggestzVersionScheme.suggestÎ  s'   € ØŒ>Ð!ØˆFˆFà—^’^ AÑ&Ô&ˆFØˆr   r1   )r   r   r   r$   rB  rD  rG  rI  r   r   r   r;  r;  ¯  sd   € € € € € ð#ð #ð #ð #ð
ð ð ðð ð ð<ð <ð <ðð ð ð ð r   r;  c                 ó   — |S r1   r   r(   s     r   rX   rX   Ø  s   € È€ r   )Ú
normalizedÚlegacyÚsemanticrK  Údefaultc                 óR   — | t           vrt          d| z  ¦  «        ‚t           |          S )Nzunknown scheme name: %r)Ú_SCHEMESro   )rp   s    r   r   r   à  s+   € Ø•8ÐÐÝÐ2°TÑ9Ñ:Ô:Ð:Ý�DŒ>Ðr   )*r   Úloggingr  Úcompatr   Úutilr   Ú__all__Ú	getLoggerr   r"  ro   r   Úobjectr   rR   r&  r¤   r°   r´   r   rÄ   r   r÷   rû   rù   r  r
  ÚIr  r  r  r	   r
   r(  rü   r5  r   r   r;  rP  r   r   r   r   ú<module>rX     sø  ððð ð
 €€€Ø 	€	€	€	à  Ð  Ð  Ð  Ð  Ð  Ø #Ð #Ð #Ð #Ð #Ð #ð4ð 4ð 4€ð
 
ˆÔ	˜8Ñ	$Ô	$€ð	ð 	ð 	ð 	ð 	˜jñ 	ô 	ð 	ð
.Eð .Eð .Eð .Eð .Eˆfñ .Eô .Eð .Eðbað að að að aˆfñ aô að aðH �B”Jð  Fñ Gô GÐ ð
:.ð :.ð :.ðz €ð!Gð !Gð !Gð !Gð !G˜ñ !Gô !Gð !GðHð ð ðT+ð T+ð T+ð T+ð T+˜ñ T+ô T+ð T+ðn €R„Z�ÑÔ˜2ÐØ€R„Z�ÑÔ˜gÐ&Ø€R„Z�ÑÔ˜"ÐØ€R„Z�ÑÔ Ð&Ø€R„ZÐ&Ñ'Ô'¨Ð/Ø€R„ZÐ"Ñ#Ô# UÐ+Ø€R„Z�	ÑÔ˜CÐ Ø€R„ZÐ"Ñ#Ô# WÐ-Ø€R„ZÐ+Ñ,Ô,Øðà€R„Z�ÑÔ˜vÐ&ð€ð €R„Z�ÑÔ˜rÐ"Ø€R„Z�ÑÔ Ð#Ø€R„Z�
ÑÔ˜SÐ!Ø€R„Z�	ÑÔ˜CÐ Ø€R„Z�ÑÔ˜ÐðÐ ð �"”*Ð-Ñ.Ô.€ð+ð +ð +ð\lð lð lðd �”
Ð0°"´$Ñ7Ô7€àØØ	Ø
ØØØ	ðð Ð ðð ð ð4ð ð ð ð �Gñ ô ð ð)ð )ð )ð )ð )�Gñ )ô )ð )ð2 ˆRŒZð :à;=¼4ñAô A€
ð
ð ð ð-ð -ð -ð*(ð (ð (ð (ð (�gñ (ô (ð (ð$ð $ð $ð $ð $�gñ $ô $ð $ð$ð $ð $ð $ð $�Fñ $ô $ð $ðN  �- Ð1BØ ;ñ=ô =àˆm˜K¨Ð8IÐ8IÑJÔJØ�˜m¨_Ø7ñ9ô 9ð	ð €ð ˜|Ô,€ˆÑ ðð ð ð ð r   