HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/usr/share/python/debpython/version.pyc
�
}k^c@s�ddlZddlZddlmZddlmZddlmZmZm	Z	ddl
mZdgZdZ
dZeje�Zeje�Zejd	�Zejd
�Zes�er"e�Zejd�es�ejdd
�dZnes"ejdd�jdd�Zq"ny#ed�ejd�D��Z
Wnek
reejd�nXy#ed�ejd�D��ZWnek
r�ejd�nXddd�Zd�Z d�Z!d�Z"d�Z#d�Z$dd�Z%dS( i����N(tSafeConfigParser(tenviron(texiststdirnametjoin(t
GeneratorTypeiis(-)?(\d\.\d+)(?:(-)(\d\.\d+)?)?tDEBPYTHON_SUPPORTEDtDEBPYTHON_DEFAULTs!/usr/share/python/debian_defaultstDEFAULTsdefault-versionissupported-versionstpythontccs|]}t|�VqdS(N(tint(t.0ti((s&/usr/share/python/debpython/version.pys	<genexpr>3st.scannot read debian_defaultsccs4|]*}td�|j�jd�D��VqdS(css|]}t|�VqdS(N(R(Rtj((s&/usr/share/python/debpython/version.pys	<genexpr>7sRN(ttupletstriptsplit(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>7st,cs&t|t�rt|�}n|s=t|�ddgkrLtt�}n�|ddkrbdn|d�|ddkr�d	n|d���kr�t�tkr��fnt��}nt��fd�tD��}|r�td�|D��}n%|tkr"td�|D��}n|S(
s>Return a set of requested and supported Python versions.

    :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([(2, 5), (3, 0)]))
    [(2, 7)]
    >>> sorted(get_requested_versions('')) == sorted(SUPPORTED)
    True
    >>> sorted(get_requested_versions([None, None])) == sorted(SUPPORTED)
    True
    >>> get_requested_versions([(5, 0), None])
    set([])
    iiicc3s1|]'}�|ko �knr|VqdS(N((Rtv(tmaxvtminv(s&/usr/share/python/debpython/version.pys	<genexpr>Yscss%|]}td|�r|VqdS(s/usr/bin/python%d.%dN(R(RR((s&/usr/share/python/debpython/version.pys	<genexpr>\scss%|]}td|�s|VqdS(s/usr/bin/python%d.%dN(R(RR((s&/usr/share/python/debpython/version.pys	<genexpr>_sN(ii(icic(	t
isinstancet
basestringtparse_vrangetlisttNonetsett	SUPPORTEDRtFalse(tvranget	availabletversions((RRs&/usr/share/python/debpython/version.pytget_requested_versions=s  'cCsL|dkrd
Stj|�}|s8td|��n|j�}t|�jd�dkr�td�|djd�D��}||fSd}}|dr�|d}n|d}|d}|r�td	�|jd�D��nd}|rtd
�|jd�D��nd}|rB|rB||krBtd|��n||fS(s�Return minimum and maximum Python version from given range.

    >>> parse_vrange('2.4-')
    ((2, 4), None)
    >>> parse_vrange('2.4-2.6')
    ((2, 4), (2, 6))
    >>> parse_vrange('2.4-3.0')
    ((2, 4), (3, 0))
    >>> parse_vrange('-2.7')
    (None, (2, 7))
    >>> parse_vrange('2.5')
    ((2, 5), (2, 5))
    >>> parse_vrange('') == parse_vrange('-') == (None, None)
    True
    R
t-sversion range is invalid: %sicss|]}t|�VqdS(N(R(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>~siRicss|]}t|�VqdS(N(R(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>�scss|]}t|�VqdS(N(R(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>�s(R
R#N(NN(	RtRANGE_REtmatcht
ValueErrortgroupsRtcountRR(tvalueR%R'RR((s&/usr/share/python/debpython/version.pyRes&#





++c
Cs	d�}t}d}}t�}x�|jd�D]�}|j�}|dkrVq2n|dkrnt}q2ntjd|�}|r�d|jd�}q2ntjd|�}|r�d|jd�}q2ntjd	|�}|r2|j	d|jd
��q2q2Wt
|�dkr=|j�}t|�t|�fS|r]|r]t
|�d
}n|r�t
|d|rx|nd|r�|ndf��}	|	s�td
|��nt|	kr�ttfS|	d
|	d
fSn|r�t|�nd|rt|�ndfS(s�Parse XS-Python-Version.

    >>> parse_pycentral_vrange('current') == (DEFAULT, DEFAULT)
    True
    >>> parse_pycentral_vrange('all')
    (None, None)
    >>> parse_pycentral_vrange('all, >= 2.4')
    ((2, 4), None)
    >>> parse_pycentral_vrange('all, << 3.0')
    (None, (3, 0))
    >>> parse_pycentral_vrange('2.6')
    ((2, 6), (2, 6))
    >>> parse_pycentral_vrange('2.5, 2.6')
    ((2, 5), None)
    >>> parse_pycentral_vrange('>= 2.6.3')
    ((2, 6), None)
    cSstt|��S(N(R"R(tx((s&/usr/share/python/debpython/version.pyt<lambda>�R
Rtalltcurrents>=\s*([\d\.]+)s%.3sis<<\s*([\d\.]+)s	^[\d\.]+$is%s-%sR
s9version range doesn't match installed Python versions: %sN(RRRRRtTruetreR%tgrouptaddtlentpoptgetvertsortedR&R(
R)tgetR-RRt	hardcodedtitemR%tverR!((s&/usr/share/python/debpython/version.pytparse_pycentral_vrange�sJ	
	!

cCs�|d|dkodknr(dS|d|dkrWdjd�|dD��S|ddkr�ddjd�|dD��S|ddkr�djd�|dD��dSddjd	�|dD��djd
�|dD��fSdS(sMReturn version range string from given range.

    >>> vrange_str(((2, 4), None))
    '2.4-'
    >>> vrange_str(((2, 4), (2, 6)))
    '2.4-2.6'
    >>> vrange_str(((2, 4), (3, 0)))
    '2.4-3.0'
    >>> vrange_str((None, (2, 7)))
    '-2.7'
    >>> vrange_str(((2, 5), (2, 5)))
    '2.5'
    >>> vrange_str((None, None))
    '-'
    iiR#Rcss|]}t|�VqdS(N(tstr(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>�scss|]}t|�VqdS(N(R;(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>�scss|]}t|�VqdS(N(R;(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>�ss%s-%scss|]}t|�VqdS(N(R;(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>�scss|]}t|�VqdS(N(R;(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>�sN(RR(R((s&/usr/share/python/debpython/version.pyt
vrange_str�s$cCs�t|t�r|St|ttf�rSt|dt�rSdjd�|D��Sg}xM|D]E}t|t�r�|j|�q`|jdjd�|D���q`W|S(s�
    >>> vrepr(([2, 7], [3, 2]))
    ['2.7', '3.2']
    >>> vrepr(('2.6', '3.1'))
    ['2.6', '3.1']
    >>> vrepr('2.7')
    '2.7'
    >>> vrepr((2, 7))
    '2.7'
    iRcss|]}t|�VqdS(N(R;(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>scss|]}t|�VqdS(N(R;(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>s(RRRRRRtappend(R)tresulttversion((s&/usr/share/python/debpython/version.pytvrepr�s
$cCs.|s
dStd�|jdd�D��d S(s�Return pair of integers that represent version.

    >>> getver('2.5')
    (2, 5)
    >>> getver('2.6.4')
    (2, 6)
    >>> getver(None)
    ''
    R
css|]}t|�VqdS(N(R(RR
((s&/usr/share/python/debpython/version.pys	<genexpr>sRi(RR(R)((s&/usr/share/python/debpython/version.pyR4s
cCs�g}g}x[t|�D]M}t|t�r=t|�}n|tkrY|j|�q|j|�qW|jt|��|r�|r�t|�S|S(s�Return sorted list of versions starting with default Python
    version (if available) then list of suppored versions greater than default
    one followed by reversed list of older versions.

    List of versions sorted this way can be used in Depends field.

    :param vrepr: return string represenatations of versions, by default the
        same format is used as in :param:`versions`

    >>> debsorted([(2, 6), (3, 1), (2, 5), (2, 4), (2, 7)])[0] == DEFAULT
    True
    >>> debsorted(('2.4', '3.2', '2.6', '2.7'))[-1]
    (2, 4)
    >>> debsorted(set([(2, 1), (2, 2)]))
    [(2, 2), (2, 1)]
    >>> debsorted([(2, 1), (2, 2)], return_str=True)
    ['2.2', '2.1']
    (	R5RRR4RR=textendtreversedR@(R!t
return_strR>told_versionsR?((s&/usr/share/python/debpython/version.pyt	debsorteds
(ii(ii(&tloggingR/tConfigParserRtosRtos.pathRRRttypesRRRt
RANGE_PATTERNtcompileR$t	getLoggert__name__tlogR6t
_supportedt_defaultt_configtreadtreplaceRRt	Exceptiont	exceptionRR"RR:R<R@R4RE(((s&/usr/share/python/debpython/version.pyt<module>sH		
#
	
(	,	C