Ë
    ��h¯\  ã                   óâ  — 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ej"                  «      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)y)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y)r   zThis is an unsupported version.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_vendor/distlib/version.pyr   r      s   „ Ù)Ør   r   c                   ód   — 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y)ÚVersionc                 ó¦   — |j                  «       x| _        }| j                  |«      x| _        }t	        |t
        «      sJ ‚t        |«      dkD  sJ ‚y )Nr   )ÚstripÚ_stringÚparseÚ_partsÚ
isinstanceÚtupleÚlen)ÚselfÚsÚpartss      r   Ú__init__zVersion.__init__   sH   € ØŸ7™7›9Ð$ˆŒ�qØ"Ÿj™j¨›mÐ+ˆŒ�eÜ˜%¤Ô'Ð'Ð'Ü�5‹z˜AŠ~Ð‰~r   c                 ó   — t        d«      ‚)Nzplease implement in a subclass©ÚNotImplementedError©r!   r"   s     r   r   zVersion.parse%   s   € Ü!Ð"BÓCÐCr   c                 óT   — t        | «      t        |«      k7  rt        d| ›d|›�«      ‚y ©Nzcannot compare z and )ÚtypeÚ	TypeError©r!   Úothers     r   Ú_check_compatiblezVersion._check_compatible(   s'   € Ü�‹:œ˜e›Ò$Ýº$ÁÐFÓGÐGð %r   c                 óV   — | j                  |«       | j                  |j                  k(  S ©N©r/   r   r-   s     r   Ú__eq__zVersion.__eq__,   s#   € Ø×Ñ˜uÔ%Ø�{‰{˜eŸl™lÑ*Ð*r   c                 ó&   — | j                  |«       S r1   ©r3   r-   s     r   Ú__ne__zVersion.__ne__0   ó   € Ø—;‘;˜uÓ%Ð%Ð%r   c                 óV   — | j                  |«       | j                  |j                  k  S r1   r2   r-   s     r   Ú__lt__zVersion.__lt__3   s#   € Ø×Ñ˜uÔ%Ø�{‰{˜UŸ\™\Ñ)Ð)r   c                 óL   — | j                  |«      xs | j                  |«       S r1   ©r9   r3   r-   s     r   Ú__gt__zVersion.__gt__7   s"   € Ø—K‘K Ó&Ò<¨$¯+©+°eÓ*<Ð=Ð=r   c                 óJ   — | j                  |«      xs | j                  |«      S r1   r;   r-   s     r   Ú__le__zVersion.__le__:   ó   € Ø�{‰{˜5Ó!Ò7 T§[¡[°Ó%7Ð7r   c                 óJ   — | j                  |«      xs | j                  |«      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‘KÓ Ð r   c                 óN   — | j                   j                  ›d| j                  ›d�S )Nz('z')©Ú	__class__r   r   rD   s    r   Ú__repr__zVersion.__repr__D   s   € Ø!Ÿ^™^×4Ó4°d·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ÐDr   N)r   r   r   r$   r   r/   r3   r6   r9   r<   r>   rA   rE   rI   rL   ÚpropertyrO   r   r   r   r   r      sW   „ òòDòHò+ò&ò*ò>ò8ò8ò!òDòð ñ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y)ÚMatcherNc                 ó   — | |k  S r1   r   ©ÚvÚcÚps      r   ú<lambda>zMatcher.<lambda>T   ó
   € ˜Q ™U€ r   c                 ó   — | |kD  S r1   r   rT   s      r   rX   zMatcher.<lambda>U   rY   r   c                 ó   — | |k(  xs | |k  S r1   r   rT   s      r   rX   zMatcher.<lambda>V   ó   € ˜a 1™fšo¨¨A©€ r   c                 ó   — | |k(  xs | |kD  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(  xs | |kD  S r1   r   rT   s      r   rX   zMatcher.<lambda>[   r\   r   c                 ó   — | |k7  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                 ó,  — | j                   €t        d«      ‚|j                  «       x| _        }| j	                  |«      }|st        d|z  «      ‚|j
                  | _        | j
                  j                  «       | _        g }|j                  rw|j                  D ]h  \  }}|j                  d«      r+|dvrt        d|z  «      ‚|d d d}}| j                  |«       n| j                  |«      d}}|j                  |||f«       Œj t        |«      | _        y )	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   s  € Ø×ÑÐ%ÜÐ=Ó>Ð>ØŸ7™7›9Ð$ˆŒ�qØ×"Ñ" 1Ó%ˆÙÜ˜_¨qÑ0Ó1Ð1Ø—F‘FˆŒ	Ø—9‘9—?‘?Ó$ˆŒØˆØ�=Š=àŸ™ò /‘��AØ—:‘:˜dÔ#Ø Ñ-Ü(ð *:Ø<>ñ*?ó @ð @ð "# 3 B ¨˜�Bà×&Ñ& rÕ*ð "&×!3Ñ!3°AÓ!6¸˜�BØ—‘˜b " fÐ-Õ.ð/ô ˜E“lˆ�r   c                 óF  — t        |t        «      r| j                  |«      }| j                  D ]q  \  }}}| j                  j                  |«      }t        |t        «      rt        | |«      }|s&|›d| j                  j                  ›�}t        |«      ‚ ||||«      rŒq y y)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œ|Ô,Ø×(Ñ(¨Ó1ˆGØ,0¯K©Kò 		Ñ(ˆH�j &Ø—‘×#Ñ# HÓ-ˆAÜ˜!œ\Ô*Ü˜D !Ó$�Ùâ#+¨T¯^©^×-DÒ-DðF�ä)¨#Ó.Ð.Ù�W˜j¨&Õ1Ùð		ð r   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–   sC   € àˆÜˆt�{‰{Ó˜qÒ  T§[¡[°¡^°AÑ%6¸-Ñ%GØ—[‘[ ‘^ AÑ&ˆFØˆr   c                 ó†   — t        | «      t        |«      k7  s| j                  |j                  k7  rt        d| ›d|›�«      ‚y r*   )r+   rp   r,   r-   s     r   r/   zMatcher._check_compatible�   s7   € Ü�‹:œ˜e›Ò$¨¯	©	°U·Z±ZÒ(?Ýº$ÁÐFÓGÐGð )@r   c                 óŒ   — | j                  |«       | j                  |j                  k(  xr | j                  |j                  k(  S r1   )r/   rr   r   r-   s     r   r3   zMatcher.__eq__¡   s5   € Ø×Ñ˜uÔ%Ø�x‰x˜5Ÿ9™9Ñ$ÒD¨¯©¸¿¹Ñ)DÐDr   c                 ó&   — | j                  |«       S r1   r5   r-   s     r   r6   zMatcher.__ne__¥   r7   r   c                 óX   — t        | j                  «      t        | j                  «      z   S r1   )rC   rr   r   rD   s    r   rE   zMatcher.__hash__©   s   € Ü�D—H‘H‹~¤ T§[¡[Ó 1Ñ1Ð1r   c                 óN   — | j                   j                  ›d| j                  ›d�S )Nú(ú)rG   rD   s    r   rI   zMatcher.__repr__¬   s   € ØŸ>™>×2Ó2°D·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   sl   „ Ø€Mñ #Ù"Ù-Ù-Ù$Ù%á-Ù$ñ
€Jò$ò#ò:ð* ñó ðòHòEò&ò2òBór   rR   z�^v?(\d+!)?(\d+(\.\d+)*)((a|alpha|b|beta|c|rc|pre|preview)(\d+)?)?(\.(post|r|rev)(\d+)?)?([._-]?(dev)(\d+)?)?(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$c                 ón  — | j                  «       } t        j                  | «      }|st        d| z  «      ‚|j	                  «       }t        d„ |d   j                  d«      D «       «      }t        |«      dkD  r$|d   dk(  r|d d }t        |«      dkD  r	|d   dk(  rŒ|d   sd}nt        |d   d d «      }|dd }|d	d
 }|dd }|d   }|dk(  rd}n |d   €|d   df}n|d   t        |d   «      f}|dk(  rd}n |d   €|d   df}n|d   t        |d   «      f}|dk(  rd}n |d   €|d   df}n|d   t        |d   «      f}|€d}nVg }	|j                  d«      D ]5  }
|
j                  «       rdt        |
«      f}
nd|
f}
|	j                  |
«       Œ7 t        |	«      }|s	|s|rd}nd}|sd}|sd}||||||fS )NzNot a valid version: %sc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr1   ©Úint©Ú.0rU   s     r   ú	<genexpr>z_pep_440_key.<locals>.<genexpr>¾   s   è ø€ Ò6˜A”�Q—Ñ6ùó   ‚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±   ¸   s  € Ø	�‰‹	€AÜ×Ñ Ó"€AÙÜ%Ð&?À!Ñ&CÓDÐDØ�X‰X‹Z€FÜÑ6 ¨¡§¡°Ó!5Ô6Ó6€DÜ
ˆd‹)�aŠ-˜D ™H¨šMØ�C�Rˆyˆô ˆd‹)�aŠ-˜D ™H¨›Mð �!Š9Ø‰ä�F˜1‘I˜c˜r�NÓ#ˆØ
��1ˆ+€CØ�!�Aˆ;€DØ
��Bˆ-€CØ�2‰J€EØ
ˆlÒØ‰àˆq‰6ˆ>Ø�a‘&˜!�)‰Cà�a‘&œ#˜c !™f›+Ð%ˆCØˆ|ÒØ‰à�‰7ˆ?Ø˜‘7˜A�:‰Dà˜‘7œC  Q¡›LÐ(ˆDØ
ˆlÒØ‰àˆq‰6ˆ>Ø�a‘&˜!�)‰Cà�a‘&œ#˜c !™f›+Ð%ˆCØ€}Ø‰àˆØ—K‘K Ó$ò 	ˆDð �|‰|Œ~Øœ3˜t›9�~‘à˜4�y�Ø�L‰L˜Õð	ô �e“ˆÙá™à‰CàˆCáØˆÙØˆà�$˜˜T 3¨Ð-Ð-r   c                   ó:   — e Zd ZdZd„ Z eg d¢«      Zed„ «       Zy)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        j                  |«      }|j                  «       }t	        d„ |d   j                  d«      D «       «      | _        |S )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr1   r’   r”   s     r   r–   z*NormalizedVersion.parse.<locals>.<genexpr>  s   è ø€ Ò$J°¤S¨§VÑ$Jùr—   r   r˜   )Ú_normalized_keyr¥   r„   r¦   r   r§   Ú_release_clause)r!   r"   r†   r©   r¦   s        r   r   zNormalizedVersion.parse  sN   € Ü  Ó#ˆô
 ×#Ñ# AÓ&ˆØ—‘“ˆÜ$Ñ$J°V¸A±Y·_±_ÀSÓ5IÔ$JÓJˆÔØˆr   )r¡   ÚbrV   Úrcr®   c                 ó@   ‡ — t        ˆ fd„‰ j                  D «       «      S )Nc              3   óF   •K  — | ]  }|sŒ|d    ‰j                   v –— Œ y­w)r   N)ÚPREREL_TAGS)r•   Útr!   s     €r   r–   z2NormalizedVersion.is_prerelease.<locals>.<genexpr>!  s"   øè ø€ ÒF°ÂA�1�Q‘4˜4×+Ñ+Ô+ÑFùs   ƒ!‹!)Úanyr   rD   s   `r   rO   zNormalizedVersion.is_prerelease  s   ø€ äÓF°T·[±[ÔFÓFÐFr   N)	r   r   r   r   r   Úsetr»   rP   rO   r   r   r   r   r      s-   „ ñò"	ñ Ò2Ó3€KàñGó ñGr   r   c                 ó„   — t        | «      } t        |«      }| |k(  ry| j                  |«      syt        |«      }| |   dk(  S )NTFr˜   )ÚstrÚ
startswithr    )ÚxÚyÚns      r   Ú_match_prefixrÅ   $  sC   € ÜˆA‹€AÜˆA‹€AØˆA‚vØØ�<‰<˜Œ?ØÜˆ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y)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xr |j                   d   }n!|j                   d    xr |j                   d   }|r0|j                  j                  dd«      d   }| j                  |«      }||fS )Nú+r™   r   r   )r   r   r§   rn   )r!   r   r�   rz   Ústrip_localr"   s         r   Ú_adjust_localzNormalizedMatcher._adjust_local>  sy   € ÙØ ZÐ/ÒF°G·N±NÀ2Ñ4F‰Kð )×/Ñ/°Ñ3Ð3ÒJ¸¿¹ÀrÑ8JˆKÙØ—‘×%Ñ% c¨1Ó-¨aÑ0ˆAØ×(Ñ(¨Ó+ˆGØ˜
Ð"Ð"r   c                 óÆ   — | j                  |||«      \  }}||k\  ry|j                  }dj                  |D �cg c]  }t        |«      ‘Œ c}«      }t	        ||«       S c c}w ©NFr˜   ©rÒ   r¶   ÚjoinrÀ   rÅ   ©r!   r   r�   rz   Úrelease_clauseÚiÚpfxs          r   rÈ   zNormalizedMatcher._match_ltL  óc   € Ø"×0Ñ0°¸*ÀfÓMÑˆ�Ø�jÒ ØØ#×3Ñ3ˆØ�h‰h¨Ö7 1œ˜A�Ò7Ó8ˆÜ  ¨#Ó.Ð.Ð.ùò 8ó   ¸Ac                 óÆ   — | j                  |||«      \  }}||k  ry|j                  }dj                  |D �cg c]  }t        |«      ‘Œ c}«      }t	        ||«       S c c}w rÔ   rÕ   r×   s          r   rÉ   zNormalizedMatcher._match_gtT  rÛ   rÜ   c                 ó8   — | j                  |||«      \  }}||k  S r1   ©rÒ   ©r!   r   r�   rz   s       r   rÊ   zNormalizedMatcher._match_le\  ó&   € Ø"×0Ñ0°¸*ÀfÓMÑˆ�Ø˜*Ñ$Ð$r   c                 ó8   — | j                  |||«      \  }}||k\  S r1   rß   rà   s       r   rË   zNormalizedMatcher._match_ge`  rá   r   c                 ó\   — | j                  |||«      \  }}|s||k(  }|S t        ||«      }|S r1   ©rÒ   rÅ   ©r!   r   r�   rz   r†   s        r   rÌ   zNormalizedMatcher._match_eqd  sB   € Ø"×0Ñ0°¸*ÀfÓMÑˆ�ÙØ Ñ+ˆFð ˆô # 7¨JÓ7ˆFØˆr   c                 ó0   — t        |«      t        |«      k(  S r1   )rÀ   rà   s       r   rÍ   z"NormalizedMatcher._match_arbitraryl  s   € Ü�7‹|œs :›Ñ.Ð.r   c                 ó^   — | j                  |||«      \  }}|s||k7  }|S t        ||«       }|S r1   rä   rå   s        r   rÎ   zNormalizedMatcher._match_neo  sE   € Ø"×0Ñ0°¸*ÀfÓMÑˆ�ÙØ Ñ+ˆFð ˆô ' w°
Ó;Ð;ˆFØˆr   c                 óö   — | j                  |||«      \  }}||k(  ry||k  ry|j                  }t        |«      dkD  r|d d }dj                  |D �cg c]  }t	        |«      ‘Œ c}«      }t        ||«      S c c}w )NTFr   r™   r˜   )rÒ   r¶   r    rÖ   rÀ   rÅ   r×   s          r   rÇ   z#NormalizedMatcher._match_compatiblew  s†   € Ø"×0Ñ0°¸*ÀfÓMÑˆ�Ø�jÒ ØØ�ZÒØð $×3Ñ3ˆÜˆ~Ó Ò"Ø+¨C¨RÐ0ˆNØ�h‰h¨Ö7 1œ˜A�Ò7Ó8ˆÜ˜W cÓ*Ð*ùò 8s   ÁA6N)r   r   r   r   rn   r|   rÒ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÇ   r   r   r   r   r   /  sU   „ Ø%€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                 óv  — | j                  «       j                  «       }t        D ]  \  }}|j                  ||«      }Œ |sd}t        j                  |«      }|sd}|}�n|j                  «       d   j                  d«      }|D �cg c]  }t        |«      ‘Œ }}t        |«      dk  r |j                  d«       t        |«      dk  rŒ t        |«      dk(  r||j                  «       d }nDdj                  |dd D �cg c]  }t        |«      ‘Œ c}«      ||j                  «       d z   }|dd }dj                  |D �cg c]  }t        |«      ‘Œ c}«      }|j                  «       }|r t        D ]  \  }}|j                  ||«      }Œ |s|}nd|v rdnd}||z   |z   }t        |«      sd}|S c c}w c c}w c c}w )	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˜   é   Nr®   ú-rÐ   )r   rq   Ú_REPLACEMENTSÚsubÚ_NUMERIC_PREFIXr„   r¦   r§   r“   r    ru   ÚendrÖ   rÀ   Ú_SUFFIX_REPLACEMENTSÚ	is_semver)	r"   r†   ÚpatÚreplr©   rz   ÚsuffixrÙ   Úseps	            r   Ú_suggest_semantic_versionrú   Ÿ  s§  € ð
 �W‰W‹Y�_‰_Ó€FÜ"ò '‰	ˆˆTØ—‘˜˜vÓ&‰ð'áØˆô
 	×Ñ˜fÓ%€AÙØˆØŠà—‘“˜A‘×$Ñ$ SÓ)ˆØ"(Ö)˜Q”#�a•&Ð)ˆÐ)Ü�&‹k˜AŠoØ�M‰M˜!Ôô �&‹k˜A‹oäˆv‹;˜!ÒØ˜AŸE™E›G˜HÐ%‰Fà—X‘X¨v°a°b¨zÖ:¨!œs 1�vÒ:Ó;¸fÀQÇUÁUÃWÀXÐ>NÑNˆFØ˜B˜Q�ZˆFØ—‘¨6Ö2 aœ3˜q�6Ò2Ó3ˆØ—‘“ˆÙô .ò 	+‰IˆC�Ø—W‘W˜T 6Ó*‰Fð	+ñ Ø‰à˜f‘_‰c¨#ˆØ˜#‘ Ñ&ˆÜ�VÔØˆØ€Mùò/ *ùò ;ùâ2s   ÂF,Ã<F1Ä=F6c                 óà  — 	 t        | «       | S # t        $ r Y nw xY w| j                  «       }dD ]  \  }}|j                  ||«      }Œ t	        j
                  dd|«      }t	        j
                  dd|«      }t	        j
                  dd|«      }t	        j
                  dd	|«      }t	        j
                  d
d|«      }|j                  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        |«       |S # t        $ r d}Y |S w xY w)!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  Í  sì  € ð"Ü˜ÔØˆøÜ"ò Ùðúð 
�‰‹€Bð&ò $‰
ˆˆdð �Z‰Z˜˜dÓ#‰ð$ô 
�‰�˜ "Ó	%€BÜ	�‰�˜ "Ó	%€Bô
 
�‰Ð)¨7°BÓ	7€Bô 
�‰Ð-¨x¸Ó	<€Bô 
�‰Ð" E¨2Ó	.€Bð 
‡}�}�SÔØ��ˆVˆô
 
�‰Ð" E¨2Ó	.€Bô
 
�‰� 	¨2Ó	.€Bô 
�‰Ð-¨y¸"Ó	=€Bô 
�‰Ð! 7¨BÓ	/€Bô 
�‰Ð% x°Ó	4€Bô 
�‰Ð! 8¨RÓ	0€Bô 
�‰Ð" B¨Ó	+€Bô 
�‰Ð'¨°RÓ	8€Bô 
�‰Ð,¨i¸Ó	<€Bô 
�‰Ð,¨i¸Ó	<€Bô 
�‰�
˜J¨Ó	+€BðÜ˜Ôð €Iøô #ò Ø‰Ø€Iðús   ‚ �	šÇG ÇG-Ç,G-z([a-z]+|\d+|[\.-])rV   zfinal-ú@)r¬   Úpreviewrï   r¸   r®   ré   r˜   c                 ó  — d„ }g } || «      D ]s  }|j                  d«      rO|dk  r%|r#|d   dk(  r|j                  «        |r	|d   dk(  rŒ|r#|d   dk(  r|j                  «        |r	|d   dk(  rŒ|j                  |«       Œu t        |«      S )Nc                 ó   — g }t         j                  | j                  «       «      D ]T  }t        j	                  ||«      }|sŒd|d d cxk  rdk  rn n|j                  d«      }nd|z   }|j                  |«       ŒV |j                  d«       |S )NÚ0r   Ú9é   Ú*ú*final)Ú_VERSION_PARTr§   rq   Ú_VERSION_REPLACEr}   Úzfillru   )r"   r†   rW   s      r   Ú	get_partsz_legacy_key.<locals>.get_partsM  s„   € ØˆÜ×$Ñ$ Q§W¡W£YÓ/ò 	!ˆAÜ ×$Ñ$ Q¨Ó*ˆAÚØ˜!˜B˜Q˜%Ô& 3Õ&ØŸ™ ›
‘Aà˜a™�AØ—‘˜aÕ ð	!ð 	�‰�hÔØˆr   r  r  r™   z*final-Ú00000000)rÁ   Úpopru   r   )r"   r  r†   rW   s       r   Ú_legacy_keyr  L  sš   € òð €FÙ�q‹\ò ˆØ�<‰<˜ÔØ�8Š|Ù ¨¡¨yÒ!8Ø—J‘J”Lñ  ¨¡¨yÓ!8á˜V B™Z¨:Ò5Ø—
‘
”ñ ˜V B™Z¨:Ó5à�‰�aÕðô �‹=Ðr   c                   ó"   — e Zd Zd„ Zed„ «       Zy)r	   c                 ó   — t        |«      S r1   )r  r(   s     r   r   zLegacyVersion.parseg  s   € Ü˜1‹~Ðr   c                 ó†   — d}| j                   D ]/  }t        |t        «      sŒ|j                  d«      sŒ&|dk  sŒ,d} |S  |S )NFr  r  T)r   r   r   rÁ   )r!   r†   rÂ   s      r   rO   zLegacyVersion.is_prereleasej  sI   € àˆØ—‘ò 	ˆAÜ˜1œlÕ+°·±¸SÕ0AÀaÈ(ÃlØ�ØØˆð		ð ˆr   N©r   r   r   r   rP   rO   r   r   r   r	   r	   f  s   „ òð ñó ñr   r	   c                   óh   — e Zd ZeZ eej                  «      Zded<    ej                  d«      Z
d„ Zy)r
   rÇ   ri   z^(\d+(\.\d+)*)c                 óú   — ||k  ry| j                   j                  t        |«      «      }|st        j	                  d||«       y|j                  «       d   }d|v r|j                  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_compatible|  sz   € Ø�ZÒØØ�O‰O×!Ñ!¤# j£/Ó2ˆÙÜ�N‰Nð 0Ø18¸*ôFàØ�H‰H‹J�q‰MˆØ�!‰8Ø—‘˜˜aÓ  Ñ#ˆAÜ˜W aÓ(Ð(r   N)r   r   r   r	   rn   ÚdictrR   r|   r   Úcompiler  rÇ   r   r   r   r
   r
   t  s7   „ Ø!€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                 ó,   — t         j                  | «      S r1   )Ú
_SEMVER_REr„   )r"   s    r   rõ   rõ   “  s   € Ü×Ñ˜AÓÐr   c                 óâ   — d„ }t        | «      }|st        | «      ‚|j                  «       }|d d D �cg c]  }t        |«      ‘Œ c}\  }}} ||d   d«       ||d   d«      }	}|||f||	fS c c}w )Nc                 óº   — | €|f}|S | dd  j                  d«      }t        |D �cg c]%  }|j                  «       r|j                  d«      n|‘Œ' c}«      }|S c c}w )Nr   r˜   r
  )r§   r   r¨   r  )r"   Úabsentr†   r#   rW   s        r   Ú
make_tuplez!_semantic_key.<locals>.make_tuple˜  sb   € Øˆ9Ø�YˆFð ˆð	 �a�b�E—K‘K Ó$ˆEô ÀeÖLÀ¨!¯)©)¬+˜AŸG™G AœJ¸1Ñ<ÒLÓMˆFØˆùò Ms   ¥*Arî   ú|é   r  )rõ   r   r¦   r“   )
r"   r%  r©   r¦   rÙ   ÚmajorÚminorÚpatchr¬   Úbuilds
             r   Ú_semantic_keyr,  —  s„   € òô 	�!‹€AÙÜ% aÓ(Ð(Ø�X‰X‹Z€FØ+1°"°1¨:Ö6 aœ3˜q�6Ò6Ñ€Eˆ5�%á˜F 1™I sÓ+©Z¸¸q¹	À3Ó-Gˆ€CØ�5˜%Ð  # uÐ,Ð,ùò 7s   ³A,c                   ó"   — e Zd Zd„ Zed„ «       Zy)r   c                 ó   — t        |«      S r1   )r,  r(   s     r   r   zSemanticVersion.parse­  s   € Ü˜QÓÐr   c                 ó,   — | j                   d   d   dk7  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   „ ò ð ñ(ó ñ(r   r   c                   ó   — e Zd ZeZy)r   N)r   r   r   r   rn   r   r   r   r   r   µ  s   „ Ø#�Mr   r   c                   ó,   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zy)ÚVersionSchemeNc                 ó.   — || _         || _        || _        y r1   )rr   ÚmatcherÚ	suggester)r!   rr   r4  r5  s       r   r$   zVersionScheme.__init__º  s   € ØˆŒØˆŒØ"ˆ�r   c                 óf   — 	 | j                   j                  |«       d}|S # t        $ r d}Y |S w xY w©NTF)r4  rn   r   ©r!   r"   r†   s      r   Úis_valid_versionzVersionScheme.is_valid_version¿  s@   € ð	Ø�L‰L×&Ñ& qÔ)ØˆFð ˆøô 'ò 	Ø‰FØˆð	ús   ‚! ¡0¯0c                 óR   — 	 | j                  |«       d}|S # t        $ r d}Y |S w xY wr7  )r4  r   r8  s      r   Úis_valid_matcherzVersionScheme.is_valid_matcherÇ  s9   € ð	Ø�L‰L˜ŒOØˆFð ˆøô 'ò 	Ø‰FØˆð	ús   ‚ —&¥&c                 óV   — |j                  d«      r|dd }| j                  d|z  «      S )z:
        Used for processing some metadata fields
        ú,Nr™   zdummy_name (%s))rt   r;  r(   s     r   Úis_valid_constraint_listz&VersionScheme.is_valid_constraint_listÏ  s1   € ð
 �:‰:�cŒ?Ø�#�2�ˆAØ×$Ñ$Ð%6¸Ñ%:Ó;Ð;r   c                 óH   — | j                   €d }|S | j                  |«      }|S r1   )r5  r8  s      r   ÚsuggestzVersionScheme.suggestØ  s-   € Ø�>‰>Ð!ØˆFð ˆð —^‘^ AÓ&ˆFØˆr   r1   )r   r   r   r$   r9  r;  r>  r@  r   r   r   r2  r2  ¹  s   „ ó#ò
òò<ór   r2  c                 ó   — |S r1   r   r(   s     r   rX   rX   ã  s   € È€ r   )Ú
normalizedÚlegacyÚsemanticrB  Údefaultc                 ó@   — | 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  ÚIr¥   r±   rµ   r   rÅ   r   rð   rô   rò   rú   r  r  r  r  r	   r
   r!  rõ   r,  r   r   r2  rG  r   r   r   r   ú<module>rO     sò  ðñó
 Û 	å  Ý #ò4€ð
 
ˆ×	Ñ	˜8Ó	$€ô	˜jô 	ô
.Eˆfô .Eôbaˆfô aðH �B—J‘Jð  FàGIÇtÁtóMÐ ò
B.ðJ €ô!G˜ô !GòHôT+˜ô T+ðp €R‡Z�Z�Ó˜2ÐØ€R‡Z�Z�Ó˜gÐ&Ø€R‡Z�Z�Ó˜"ÐØ€R‡Z�Z�Ó Ð&Ø€R‡Z�ZÐ&Ó'¨Ð/Ø€R‡Z�ZÐ"Ó# UÐ+Ø€R‡Z�Z�	Ó˜CÐ Ø€R‡Z�ZÐ"Ó# WÐ-Ø€R‡Z�ZÐ+Ó,Øðà€R‡Z�Z�Ó˜vÐ&ð€ð €R‡Z�Z�Ó˜rÐ"Ø€R‡Z�Z�Ó Ð#Ø€R‡Z�Z�
Ó˜SÐ!Ø€R‡Z�Z�	Ó˜CÐ Ø€R‡Z�Z�Ó˜ÐðÐ ð �"—*‘*Ð-Ó.€ò+ò\lðf �—
‘
Ð0°"·$±$Ó7€àØØ	Ø
ØØØ	ñÐ òô4�Gô ô)�Gô )ð4 ˆR�Z‰Zð :à;=¿4¹4óA€
ò
ò-ô*(�gô (ô$�gô $ô$�Fô $ñP   Ð1BØ ;ó=á˜K¨Ñ8IÓJÙ˜m¨_Ø7ó9ñ	€ð ˜|Ñ,€ˆÑ ór   