관리-도구
편집 파일: version.cpython-39.opt-1.pyc
a ����[��f�[����������������������@���sZ��d�Z�ddlZddlZddlmZ�ddlmZ�g�d�Ze�e �Z G�dd��de�ZG�d d ��d e �ZG�dd��de �Ze�d �Zdd��ZeZG�dd��de�Zdd��ZG�dd��de�Ze�d�dfe�d�dfe�d�dfe�d�dfe�d�dfe�d�dfe�d �d!fe�d"�d#fe�d$�d%fe�d&�d'ff Ze�d(�dfe�d)�dfe�d*�d!fe�d �d!fe�d+�dffZe�d,�Zd-d.��Zd/d0��Ze�d1ej�Zd2d2d3d2d4ddd5�Zd6d7��ZG�d8d9��d9e�Z G�d:d;��d;e�Z!e�d<ej�Z"d=d>��Z#d?d@��Z$G�dAdB��dBe�Z%G�dCdD��dDe�Z&G�dEdF��dFe �Z'e'eee�e'ee!dGdH���e'e$e&e�dI�Z(e(dJ�e(dK<�dLdM��Z)dS�)Nz~ 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�������������������@���s���e�Zd�ZdZdS�)r���zThis is an unsupported version.N)�__name__� __module__�__qualname__�__doc__��r���r����?/usr/lib/python3.9/site-packages/pip/_vendor/distlib/version.pyr������s���r���c�������������������@���sx���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z dd��Zedd���ZdS�)�Versionc�����������������C���s"���|�����|�_}|��|��|�_}d�S��N)�strip�_string�parse�_parts)�self�s�partsr���r���r����__init__���s����zVersion.__init__c�����������������C���s���t�d��d�S�)Nzplease implement in a subclass��NotImplementedError�r���r���r���r���r���r���%���s����z Version.parsec�����������������C���s$���t�|��t�|�kr td|�|f���d�S�)Nzcannot compare %r and %r)�type� TypeError�r����otherr���r���r����_check_compatible(���s����zVersion._check_compatiblec�����������������C���s���|���|��|�j|jkS�r����r%���r���r#���r���r���r����__eq__,���s���� zVersion.__eq__c�����������������C���s���|���|��S�r����r'���r#���r���r���r����__ne__0���s����zVersion.__ne__c�����������������C���s���|���|��|�j|jk�S�r���r&���r#���r���r���r����__lt__3���s���� zVersion.__lt__c�����������������C���s���|���|�p|��|��S�r����r*���r'���r#���r���r���r����__gt__7���s����zVersion.__gt__c�����������������C���s���|���|�p|��|�S�r���r+���r#���r���r���r����__le__:���s����zVersion.__le__c�����������������C���s���|���|�p|��|�S�r���)r,���r'���r#���r���r���r����__ge__=���s����zVersion.__ge__c�����������������C���s ���t�|�j�S�r���)�hashr����r���r���r���r����__hash__A���s����zVersion.__hash__c�����������������C���s���d|�j�j|�jf�S�)Nz%s('%s')�� __class__r���r���r0���r���r���r����__repr__D���s����zVersion.__repr__c�����������������C���s���|�j�S�r����r���r0���r���r���r����__str__G���s����zVersion.__str__c�����������������C���s���t�d��d�S�)NzPlease implement in subclasses.r���r0���r���r���r���� is_prereleaseJ���s����zVersion.is_prereleaseN)r���r���r���r���r���r%���r'���r)���r*���r,���r-���r.���r1���r4���r6����propertyr7���r���r���r���r���r������s���r���c���������������� ���@���s����e�Zd�ZdZdd��dd��dd��dd��dd��dd��d d��d d��d�Zdd ��Zdd��Zdd��Zedd���Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��ZdS�) �MatcherNc�����������������C���s���|�|k�S�r���r�����v�c�pr���r���r����<lambda>T��������zMatcher.<lambda>c�����������������C���s���|�|kS�r���r���r:���r���r���r���r>���U���r?���c�����������������C���s���|�|kp|�|k�S�r���r���r:���r���r���r���r>���V���r?���c�����������������C���s���|�|kp|�|kS�r���r���r:���r���r���r���r>���W���r?���c�����������������C���s���|�|kS�r���r���r:���r���r���r���r>���X���r?���c�����������������C���s���|�|kS�r���r���r:���r���r���r���r>���Y���r?���c�����������������C���s���|�|kp|�|kS�r���r���r:���r���r���r���r>���[���r?���c�����������������C���s���|�|kS�r���r���r:���r���r���r���r>���\���r?���)�<�>�<=�>=�==�===�~=�!=c�����������������C���s���t�|�S�r���r���r ���r���r���r���r���a���s����zMatcher.parse_requirementc�����������������C���s����|�j�d�u�rtd��|����|�_}|��|�}|s:td|���|j|�_|�j���|�_g�}|jr�|jD�]d\}}|� d�r�|dvr�td|���|d�d��d�}}|���|��n|���|�d�}}|� |||f��q^t|�|�_d�S�) NzPlease specify a version classz Not valid: %rz.*)rD���rG���z#'.*' not allowed for %r constraints���TF) � version_class� ValueErrorr���r���r����name�lower�key�constraints�endswith�append�tupler���)r���r����rZclist�opZvn�prefixr���r���r���r���d���s*���� �zMatcher.__init__c�����������������C���sx���t�|t�r|��|�}|�jD�]X\}}}|�j�|�}t�|t�rDt|�|�}|s`d||�jjf�}t |��||||�s�dS�qdS�)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%r not implemented for %sFT) � isinstancer���rI���r���� _operators�get�getattrr3���r���r���)r����version�operator� constraintrT����f�msgr���r���r����match����s���� �z Matcher.matchc�����������������C���s6���d�}t�|�j�dkr2|�jd�d�dv�r2|�jd�d�}|S�)Nr���r���)rD���rE���)�lenr���)r����resultr���r���r���� exact_version����s���� zMatcher.exact_versionc�����������������C���s0���t�|��t�|�ks|�j|jkr,td|�|f���d�S�)Nzcannot compare %s and %s)r!���rK���r"���r#���r���r���r���r%�������s����zMatcher._check_compatiblec�����������������C���s"���|���|��|�j|jko |�j|jkS�r���)r%���rM���r���r#���r���r���r���r'�������s���� zMatcher.__eq__c�����������������C���s���|���|��S�r���r(���r#���r���r���r���r)�������s����zMatcher.__ne__c�����������������C���s���t�|�j�t�|�j��S�r���)r/���rM���r���r0���r���r���r���r1�������s����zMatcher.__hash__c�����������������C���s���d|�j�j|�jf�S�)Nz%s(%r)r2���r0���r���r���r���r4�������s����zMatcher.__repr__c�����������������C���s���|�j�S�r���r5���r0���r���r���r���r6�������s����zMatcher.__str__)r���r���r���rI���rV���r���r���r^���r8���ra���r%���r'���r)���r1���r4���r6���r���r���r���r���r9���O���s*���� r9���zk^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?(\.(post)(\d+))?(\.(dev)(\d+))?(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$c�����������������C���s���|�����}�t�|��}|s"td|����|���}tdd��|d��d�D���}t|�dkrl|d�dkrl|d�d��}qF|d�szd}nt|d�d�d���}|dd ��}|d d��}|dd ��}|d�}|dkr�d}n|d�t|d��f}|dkr�d}n|d�t|d��f}|dk�rd}n|d�t|d��f}|d�u��r2d}nHg�} |�d�D�]0} | � ���r\dt| �f} nd| f} | � | ���q@t| �}|�s�|�s�|�r�d}nd}|�s�d}|�s�d}||||||fS�)NzNot a valid version: %sc�����������������s���s���|�]}t�|�V��qd�S�r�����int��.0r;���r���r���r���� <genexpr>����r?���z_pep_440_key.<locals>.<genexpr>r����.���r���������������� ���� �������� ���)NNr���)�arh���)�z)�_)�final)r����PEP440_VERSION_REr^���r����groupsrQ����splitr_���rc����isdigitrP���)r����mru���ZnumsZepoch�preZpost�dev�localr����partr���r���r����_pep_440_key����sT���� r}���c�������������������@���s0���e�Zd�ZdZdd��Zeg�d��Zedd���ZdS�)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�����������������C���s<���t�|�}t�|�}|���}tdd��|d��d�D���|�_|S�)Nc�����������������s���s���|�]}t�|�V��qd�S�r���rb���rd���r���r���r���rf�����r?���z*NormalizedVersion.parse.<locals>.<genexpr>r���rg���)�_normalized_keyrt���r^���ru���rQ���rv����_release_clause)r���r���r`���rx���ru���r���r���r���r��� ��s ���� zNormalizedVersion.parse)rp����br<����rcrz���c��������������������s���t���fdd���jD���S�)Nc�����������������3���s ���|�]}|r|d����j�v�V��qdS�)r���N)�PREREL_TAGS)re����tr0���r���r���rf�����r?���z2NormalizedVersion.is_prerelease.<locals>.<genexpr>)�anyr���r0���r���r0���r���r7�����s����zNormalizedVersion.is_prereleaseN) r���r���r���r���r����setr����r8���r7���r���r���r���r���r�������s ���r���c�����������������C���s>���t�|��}�t�|�}|�|krdS�|��|�s*dS�t|�}|�|�dkS�)NTFrg���)�str� startswithr_���)�x�y�nr���r���r���� _match_prefix��s���� r����c���������������� ���@���sn���e�Zd�ZeZddddddddd �Zd d��Zdd ��Zdd��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��ZdS�)r����_match_compatible� _match_lt� _match_gt� _match_le� _match_ge� _match_eq�_match_arbitrary� _match_ne)rF���r@���rA���rB���rC���rD���rE���rG���c�����������������C���sV���|rd|vo|j�d�}n|j�d��o,|j�d�}|rN|j�dd�d�}|��|�}||fS�)N�+rh���r���r���)r���r���rv���rI���)r���rY���r[���rT���Zstrip_localr���r���r���r���� _adjust_local6��s���� zNormalizedMatcher._adjust_localc�����������������C���sD���|���|||�\}}||krdS�|j}d�dd��|D���}t||��S�)NFrg���c�����������������S���s���g�|�]}t�|��qS�r����r�����re����ir���r���r���� <listcomp>I��r?���z/NormalizedMatcher._match_lt.<locals>.<listcomp>�r����r����joinr�����r���rY���r[���rT���Zrelease_clauseZpfxr���r���r���r����D��s����zNormalizedMatcher._match_ltc�����������������C���sD���|���|||�\}}||krdS�|j}d�dd��|D���}t||��S�)NFrg���c�����������������S���s���g�|�]}t�|��qS�r���r����r����r���r���r���r����Q��r?���z/NormalizedMatcher._match_gt.<locals>.<listcomp>r����r����r���r���r���r����L��s����zNormalizedMatcher._match_gtc�����������������C���s���|���|||�\}}||kS�r����r�����r���rY���r[���rT���r���r���r���r����T��s����zNormalizedMatcher._match_lec�����������������C���s���|���|||�\}}||kS�r���r����r����r���r���r���r����X��s����zNormalizedMatcher._match_gec�����������������C���s.���|���|||�\}}|s ||k}n t||�}|S�r����r����r�����r���rY���r[���rT���r`���r���r���r���r����\��s ���� zNormalizedMatcher._match_eqc�����������������C���s���t�|�t�|�kS�r���r����r����r���r���r���r����d��s����z"NormalizedMatcher._match_arbitraryc�����������������C���s0���|���|||�\}}|s ||k}nt||��}|S�r���r����r����r���r���r���r����g��s ���� zNormalizedMatcher._match_nec�����������������C���sf���|���|||�\}}||krdS�||k�r*dS�|j}t|�dkrH|d�d��}d�dd��|D���}t||�S�)NTFr���rh���rg���c�����������������S���s���g�|�]}t�|��qS�r���r����r����r���r���r���r����z��r?���z7NormalizedMatcher._match_compatible.<locals>.<listcomp>)r����r���r_���r����r����r����r���r���r���r����o��s����z#NormalizedMatcher._match_compatibleN)r���r���r���r���rI���rV���r����r����r����r����r����r����r����r����r����r���r���r���r���r���'��s&����r���z[.+-]$��z^[.](\d)z0.\1z^[.-]z ^\((.*)\)$�\1z^v(ersion)?\s*(\d+)z\2z^r(ev)?\s*(\d+)z[.]{2,}rg���z\b(alfa|apha)\b�alphaz\b(pre-alpha|prealpha)\bz pre.alphaz \(beta\)$�betaz ^[:~._+-]+z [,*")([\]]z[~:+_ -]z\.$z (\d+(\.\d+)*)c�����������������C���sL��|��������}tD�]\}}|�||�}q|s.d}t�|�}|sFd}|}n�|���d��d�}dd��|D��}t|�dk�r~|� d��qft|�dkr�||� ��d��}n8d�dd��|dd��D���||� ��d���}|dd��}d�d d��|D���}|����}|�rtD�]\}}|�||�}q�|�s|}nd |v��r*dnd}||�|�}t |��sHd}|S�) z� Try to suggest a semantic form for a version for which _suggest_normalized_version couldn't come up with anything. z0.0.0r���rg���c�����������������S���s���g�|�]}t�|��qS�r���rb���r����r���r���r���r�������r?���z-_suggest_semantic_version.<locals>.<listcomp>����Nc�����������������S���s���g�|�]}t�|��qS�r���r����r����r���r���r���r�������r?���c�����������������S���s���g�|�]}t�|��qS�r���r����r����r���r���r���r�������r?���rz����-r����)r���rL���� _REPLACEMENTS�sub�_NUMERIC_PREFIXr^���ru���rv���r_���rP����endr�����_SUFFIX_REPLACEMENTS� is_semver)r���r`����pat�replrx���rT����suffix�sepr���r���r����_suggest_semantic_version���s:���� , r����c�����������������C���sd��zt�|���|�W�S��ty ���Y�n0�|����}dD�]\}}|�||�}q.t�dd|�}t�dd|�}t�dd|�}t�dd |�}t�d d|�}|�d�r�|d d��}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd|�}t�dd |�}zt�|��W�n�t�y^���d}Y�n0�|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-alpharp���)z-betar����)r����rp���)r����r����)r����r<���)z-finalr����)z-prer<���)z-releaser����)z.releaser����)z-stabler����)r����rg���)rr���rg���)� r����)z.finalr����)rs���r����zpre$Zpre0zdev$Zdev0z([abc]|rc)[\-\.](\d+)$z\1\2z[\-\.](dev)[\-\.]?r?(\d+)$z.\1\2z[.~]?([abc])\.?r����r;���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+)$zc\g<2>zp(\d+)$z.post\1)r~���r���rL����replace�rer����r����)r���ZrsZorigr����r���r���r����_suggest_normalized_version���s>���� r����z([a-z]+|\d+|[\.-])r<���zfinal-�@)ry���Zpreviewr����r����rz���r����rg���c�����������������C���sr���dd��}g�}||��D�]T}|��d�r^|dk�rD|rD|d�dkrD|����q*|r^|d�dkr^|����qD|�|��qt|�S�)Nc�����������������S���st���g�}t��|�����D�]R}t�||�}|rd|d�d����krBdkrRn�n|�d�}nd|�}|�|��q|�d��|S�)N�0r����9�����*�*final)� _VERSION_PARTrv���rL����_VERSION_REPLACErW����zfillrP���)r���r`���r=���r���r���r���� get_partsC��s���� z_legacy_key.<locals>.get_partsr����r����rh���z*final-Z00000000)r�����poprP���rQ���)r���r����r`���r=���r���r���r����_legacy_keyB��s���� r����c�������������������@���s ���e�Zd�Zdd��Zedd���ZdS�)r���c�����������������C���s���t�|�S�r���)r����r ���r���r���r���r���]��s����zLegacyVersion.parsec�����������������C���s8���d}|�j�D�](}t|t�r |�d�r |dk�r d}�q4q |S�)NFr����r����T)r���rU���r���r����)r���r`���r����r���r���r���r7���`��s���� �zLegacyVersion.is_prereleaseN�r���r���r���r���r8���r7���r���r���r���r���r���\��s���r���c�������������������@���s4���e�Zd�ZeZeej�Zded<�e� d�Z dd��ZdS�)r ���r����rF���z^(\d+(\.\d+)*)c�����������������C���s`���||k�rdS�|�j��t|��}|s2t�d||��dS�|���d�}d|v�rV|�dd�d�}t||�S�)NFzACannot compute compatible match for version %s and constraint %sTr���rg���r���)� numeric_rer^���r�����loggerZwarningru����rsplitr����)r���rY���r[���rT���rx���r���r���r���r���r����s��s�����zLegacyMatcher._match_compatibleN)r���r���r���r���rI����dictr9���rV���r�����compiler����r����r���r���r���r���r ���k��s ��� r ���zN^(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+(\.[a-z0-9-]+)*)?(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$c�����������������C���s ���t��|��S�r���)� _SEMVER_REr^���)r���r���r���r���r�������s����r����c����������� ������C���sn���dd��}t�|��}|st|���|���}dd��|d�d��D��\}}}||d�d�||d�d��}}|||f||fS�) Nc�����������������S���s8���|�d�u�r|f}n$|�dd�����d�}tdd��|D���}|S�)Nr���rg���c�����������������S���s"���g�|�]}|����r|�d��n|�qS�)r����)rw���r����)re���r=���r���r���r���r�������r?���z5_semantic_key.<locals>.make_tuple.<locals>.<listcomp>)rv���rQ���)r���Zabsentr`���r���r���r���r���� make_tuple���s ����z!_semantic_key.<locals>.make_tuplec�����������������S���s���g�|�]}t�|��qS�r���rb���r����r���r���r���r�������r?���z!_semantic_key.<locals>.<listcomp>r�����|����r����)r����r���ru���) r���r����rx���ru����major�minorZpatchry���Zbuildr���r���r���� _semantic_key���s���� r����c�������������������@���s ���e�Zd�Zdd��Zedd���ZdS�)r ���c�����������������C���s���t�|�S�r���)r����r ���r���r���r���r������s����zSemanticVersion.parsec�����������������C���s���|�j�d�d�dkS�)Nr���r���r����)r���r0���r���r���r���r7������s����zSemanticVersion.is_prereleaseNr����r���r���r���r���r ������s���r ���c�������������������@���s���e�Zd�ZeZdS�)r���N)r���r���r���r ���rI���r���r���r���r���r������s���r���c�������������������@���s6���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��ZdS�) � VersionSchemeNc�����������������C���s���||�_�||�_||�_d�S�r���)rM����matcher� suggester)r���rM���r����r����r���r���r���r������s����zVersionScheme.__init__c�����������������C���s0���z|�j��|��d}W�n�ty*���d}Y�n0�|S��NTF)r����rI���r����r���r���r`���r���r���r����is_valid_version���s���� zVersionScheme.is_valid_versionc�����������������C���s.���z|���|��d}W�n�ty(���d}Y�n0�|S�r����)r����r���r����r���r���r����is_valid_matcher���s���� zVersionScheme.is_valid_matcherc�����������������C���s$���|��d�r|dd��}|��d|��S�)z: Used for processing some metadata fields �,Nrh���zdummy_name (%s))rO���r����r ���r���r���r����is_valid_constraint_list���s���� z&VersionScheme.is_valid_constraint_listc�����������������C���s���|�j�d�u�rd�}n |���|�}|S�r���)r����r����r���r���r����suggest���s���� zVersionScheme.suggest)N)r���r���r���r���r����r����r����r����r���r���r���r���r�������s ��� r����c�����������������C���s���|S�r���r���r ���r���r���r���r>������r?���r>���)� normalized�legacyZsemanticr�����defaultc�����������������C���s���|�t�vrtd|����t�|��S�)Nzunknown scheme name: %r)�_SCHEMESrJ���)rK���r���r���r���r ������s����r ���)*r���Zloggingr�����compatr����utilr����__all__Z getLoggerr���r����rJ���r����objectr���r9���r����rt���r}���r~���r���r����r���r����r����r����r����r�����Ir����r����r����r���r ���r����r����r����r ���r���r����r����r ���r���r���r���r����<module>���s���� 1d =$W��� .r�� '���