%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core/17212/usr/share/dh-python/dhpython/__pycache__/
Upload File :
Create Path :
Current File : //snap/core/17212/usr/share/dh-python/dhpython/__pycache__/version.cpython-35.pyc



�U]�9�@s�ddlZddlZddlmZddlmZdZeje�Zejdej	�Z
ejd�Zda
Gdd�d�ZGd	d
�d
�Zdd�Zd
d�Zdddd�Zddd�ZdS)�N)�exists)�	_defaultsz(-)?(\d\.\d+)(?:(-)(\d\.\d+)?)?z�
    (?P<major>\d+)\.?
    (?P<minor>\d+)?\.?
    (?P<micro>\d+)?[.\s]?
    (?P<releaselevel>alpha|beta|candidate|final)?[.\s]?
    (?P<serial>\d+)?�dhpythonc@s�eZdZdddddddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zddd�ZdS)�VersionNc
CsYt|ttf�r1djdd�|D��}t|t�rnx'dD]}t||t||��qGWdSt�}|d	=|d
=|r�tj	|�}	xR|	r�|	j
�j�ngD]2\}}|dk	r�||dkr�|||<q�WxN|j�D]@\}}|dkr,|dk	r,t|�}t|||�q�W|j
sUtd��dS)
N�.css|]}t|�VqdS)N)�str)�.0�i�r
�(/usr/share/dh-python/dhpython/version.py�	<genexpr>,sz#Version.__init__.<locals>.<genexpr>�major�minor�micro�releaselevel�serial�self�valuezmajor component is required)zmajorzminorzmicrozreleaselevelzserial)�
isinstance�tuple�list�joinr�setattr�getattr�locals�
VERSION_RE�match�	groupdict�items�intr
�
ValueError)
rrr
rrrr�name�comprr
r
r�__init__)s(
	+	zVersion.__init__cCs8t|j�}|jdk	r4|dj|j�7}|S)z�Return major.minor or major string.

        >>> str(Version(major=3, minor=2, micro=1, releaselevel='final', serial=4))
        '3.2'
        >>> str(Version(major=2))
        '2'
        Nz.{})rr
r�format)r�resultr
r
r�__str__@szVersion.__str__cCstt|��S)N)�hash�repr)rr
r
r�__hash__MszVersion.__hash__cCsQdj|�}x7dD]/}t||�}|s2P|dj|�7}qW|dS)z�Return full version string.

        >>> repr(Version(major=3, minor=2, micro=1, releaselevel='final', serial=4))
        "Version('3.2.1.final.4')"
        >>> repr(Version(major=2))
        "Version('2')"
        zVersion('{}rrrz.{}z'))zmicrozreleaselevelzserial)r$r)rr%r!rr
r
r�__repr__Ps
zVersion.__repr__cCsLt|�}|jdkr3|jt|�7_n|jt|�7_|S)z�Return next version.

        >>> Version('3.1') + 1
        Version('3.2')
        >>> Version('2') + '1'
        Version('3')
        N)rrr
r)r�otherr%r
r
r�__add__`s
zVersion.__add__cCsvt|�}|jdkr<|jt|�8_|j}n|jt|�8_|j}|dkrrtd��|S)z�Return previous version.

        >>> Version('3.1') - 1
        Version('3.0')
        >>> Version('3') - '1'
        Version('2')
        Nrzcannot decrease version further)rrr
rr )rr+r%�newr
r
r�__sub__os	zVersion.__sub__cCs<yt|�}Wntk
r(dSYnX|j|�dkS)NFr)r�	Exception�
_Version__cmp)rr+r
r
r�__eq__�s

	zVersion.__eq__cCs|j|�dkS)Nr)r0)rr+r
r
r�__lt__�szVersion.__lt__cCs|j|�dkS)Nr)r0)rr+r
r
r�__le__�szVersion.__le__cCs|j|�dkS)Nr)r0)rr+r
r
r�__gt__�szVersion.__gt__cCs|j|�dkS)Nr)r0)rr+r
r
r�__ge__�szVersion.__ge__cCsot|t�st|�}|jdks9|jdkrR|j|dd�dkS|j|dd�dkSdS)akCompare major.minor or major only (if minor is not set).

        >>> Version('2.6') << Version('2.7')
        True
        >>> Version('2.6') << Version('2.6.6')
        False
        >>> Version('3') << Version('2')
        False
        >>> Version('3.1') << Version('2')
        False
        >>> Version('2') << Version('3.2.1.alpha.3')
        True
        N�ignorerrr)rrrr0)rr+r
r
r�
__lshift__�s
zVersion.__lshift__cCsot|t�st|�}|jdks9|jdkrR|j|dd�dkS|j|dd�dkSdS)aoCompare major.minor or major only (if minor is not set).

        >>> Version('2.6') >> Version('2.7')
        False
        >>> Version('2.6.7') >> Version('2.6.6')
        False
        >>> Version('3') >> Version('2')
        True
        >>> Version('3.1') >> Version('2')
        True
        >>> Version('2.1') >> Version('3.2.1.alpha.3')
        False
        Nr6rrr)rrrr0)rr+r
r
r�
__rshift__�s
zVersion.__rshift__c	Cs�t|t�st|�}x�dD]�}||kr5Pt||�pGd}t||�p\d}|dkr�ddd	dddd
di}|j|d�}|j|d�}||kr�q"||k||kSWdS)Nr
rrrrrZalpha�Zbeta��	candidate��final)zmajorzminorzmicrozreleaselevelzserial���������)rrr�get)rr+r6r!Zvalue1Zvalue2Zrmapr
r
rZ__cmp�s
z
Version.__cmp)�__name__�
__module__�__qualname__r#r&r)r*r,r.r1r2r3r4r5r7r8r0r
r
r
rr(s
rc@smeZdZddddd�Zdd�Zdd�Zdd	�Zed
d��Zedd
��Z	dS)�VersionRangeNcCs�|rt|�|_n	d|_|r9t|�|_n	d|_|r�|j|�\}}|r{|jdkr{||_|r�|jdkr�||_dS)N)r�minver�maxver�parse)rrrFrGr
r
rr#�s			zVersionRange.__init__cCs&|jdk	s|jdk	r"dSdS)NTF)rFrG)rr
r
r�__bool__�szVersionRange.__bool__cCs�|jdko|jknr&dS|j|jkrEt|j�S|jdkrddj|j�S|jdkr�dj|j�Sdj|j|j�SdS)a�Return version range string from given range.

        >>> str(VersionRange(minver='3.4'))
        '3.4-'
        >>> str(VersionRange(minver='3.4', maxver='3.6'))
        '3.4-3.6'
        >>> str(VersionRange(minver='3.4', maxver='4.0'))
        '3.4-4.0'
        >>> str(VersionRange(maxver='3.7'))
        '-3.7'
        >>> str(VersionRange(minver='3.5', maxver='3.5'))
        '3.5'
        >>> str(VersionRange())
        '-'
        N�-z-{}z{}-z{}-{})rFrGrr$)rr
r
rr&�s"
zVersionRange.__str__cCsjd}|jdk	r+|dj|j�7}|jdk	rP|dj|j�7}|jdd�}|dS)z�Return version range string.

        >>> repr(VersionRange('5.0-'))
        "VersionRange(minver='5.0')"
        >>> repr(VersionRange('3.0-3.5'))
        "VersionRange(minver='3.0', maxver='3.5')"
        z
VersionRange(Nzminver='{}'z
, maxver='{}'z(, �(�))rFr$rG�replace)rr%r
r
rr*szVersionRange.__repr__cCs>|dkrd	Stj|�}|sfytj|�\}}Wqtk
rbtd|��YqXn�|j�}t|�jd�dkr�t	|d�}||fSd}}|dr�|d}n|d}|d}|r�t	|�nd}|rt	|�nd}|r4|r4||kr4td|��||fS)
aYReturn minimum and maximum Python version from given range.

        >>> VersionRange.parse('3.0-')
        (Version('3.0'), None)
        >>> VersionRange.parse('3.1-3.3')
        (Version('3.1'), Version('3.3'))
        >>> VersionRange.parse('3.2-4.0')
        (Version('3.2'), Version('4.0'))
        >>> VersionRange.parse('-3.7')
        (None, Version('3.7'))
        >>> VersionRange.parse('3.2')
        (Version('3.2'), Version('3.2'))
        >>> VersionRange.parse('') == VersionRange.parse('-')
        True
        >>> VersionRange.parse('>= 4.0')
        (Version('4.0'), None)
        �rJNzversion range is invalid: %sr9r<r)rNrJ)NN)
�RANGE_RErrE�_parse_pycentralr/r �groupsr�countr)rr�minv�maxvrQr
r
rrHs,






zVersionRange.parsecCsFd}}t�}x�|jd�D]�}|j�}tjd|�}|rcd|jd�}q#tjd|�}|r�d|jd�}q#tjd|�}|r#|jd|jd��q#Wt|�dkr�|j�}t	|�t	|�fS|r|rt
|�d}|r*t	|�nd|r?t	|�ndfS)	awParse X-Python3-Version.

        >>> VersionRange._parse_pycentral('>= 3.1')
        (Version('3.1'), None)
        >>> VersionRange._parse_pycentral('<< 4.0')
        (None, Version('4.0'))
        >>> VersionRange._parse_pycentral('3.1')
        (Version('3.1'), Version('3.1'))
        >>> VersionRange._parse_pycentral('3.1, 3.2')
        (Version('3.1'), None)
        N�,z>=\s*([\d\.]+)z%.3sr<z<<\s*([\d\.]+)z	^[\d\.]+$r)�set�split�strip�rer�group�add�len�popr�sorted)rrSrTZ	hardcoded�itemr�verr
r
rrPEs*
	
zVersionRange._parse_pycentral)
rBrCrDr#rIr&r*�staticmethodrHrPr
r
r
rrE�s2rEcCsG|tjkrtd|��tj|}td|dd|d�S)z<Return default interpreter version for given implementation.z,interpreter implementation not supported: %rr
rrr<)rZDEFAULTr r)�implr`r
r
r�defaultps
rccCs=|tjkrtd|��tj|}dd�|D�S)zGReturn list of supported interpreter versions for given implementation.z,interpreter implementation not supported: %rcSs-g|]#}td|dd|d��qS)r
rrr<)r)r�vr
r
r�
<listcomp>}s	zsupported.<locals>.<listcomp>)rZ	SUPPORTEDr )rb�versionsr
r
r�	supportedxs
rgcs�t|t�rt|�}|s6tt|��}n�|jdkrZtdddd�n|j�|jdkr�tdddd�n|j���kr�t�t|�kr��gnt��}n(t��fdd�t|�D��}|dk	rt	dkrddl
m	a	|rPt	d	|��t�fd
d�|D��}n:|dkr�t	d	|��t�fdd�|D��}|S)
aOReturn a set of requested and supported Python versions.

    :param impl: interpreter implementation
    :param available: if set to `True`, return installed versions only,
        if set to `False`, return requested versions that are not installed.
        By default returns all requested versions.
    :type available: bool

    >>> sorted(get_requested_versions('cpython3', '')) == sorted(supported('cpython3'))
    True
    >>> sorted(get_requested_versions('cpython3', '-')) == sorted(supported('cpython3'))
    True
    >>> get_requested_versions('cpython3', '>= 5.0')
    set()
    Nr
rr�cc3s1|]'}�|ko �knr|VqdS)Nr
)rrd)rTrSr
rr�sz)get_requested_versions.<locals>.<genexpr>)�Interpreterrbc3s*|] }t�j|��r|VqdS)N)r�binary)rrd)�interpreterr
rr�sFc3s*|] }t�j|��s|VqdS)N)rrj)rrd)rkr
rr�s)rrrErVrgrFrrGrriZdhpython.interpreter)rbZvrangeZ	availablerfr
)rkrTrSr�get_requested_versions�s&---("rlZcpython3cCs\t|�}tdd�|D��}y|j|�Wntk
rJYnX|j|�|S)aOReturn sorted list of versions in a build friendly order.

    i.e. default version, if among versions, is sorted last.

    >>> build_sorted([(2, 6), (3, 4), default('cpython3'), (3, 6), (2, 7)])[-1] == default('cpython3')
    True
    >>> build_sorted(('3.2', (3, 0), '3.1'))
    [Version('3.0'), Version('3.1'), Version('3.2')]
    css|]}t|�VqdS)N)r)rrdr
r
rr�szbuild_sorted.<locals>.<genexpr>)rcr^�remover �append)rfrbZdefault_verr%r
r
r�build_sorted�s


ro)ZloggingrY�os.pathrrrZ
RANGE_PATTERN�compilerO�VERBOSErZ	getLogger�logrirrErcrgrlror
r
r
r�<module>s��.

Zerion Mini Shell 1.0