Your IP : 172.28.240.42


Current Path : /usr/share/python/debpython/
Upload File :
Current File : //usr/share/python/debpython/version.pyc

ó
J˜ÀQc@s¨ddlZddlZddlmZddlmZmZmZddlm	Z	dgZ
dZdZej
eƒZejeƒZeƒZejdeeeƒd	d
dƒgƒy3ed„ejd
dƒdjdƒDƒƒZWnek
rejdƒnXy/ed„ejd
dƒjdƒDƒƒZ
Wnek
r[ejdƒnXddd„Zd„Zd„Zd„Zd„Zd„Z dd„Z!dS(iÿÿÿÿN(tSafeConfigParser(texiststdirnametjoin(t
GeneratorTypeiis(-)?(\d\.\d+)(?:(-)(\d\.\d+)?)?s!/usr/share/python/debian_defaultss..tdebiantdebian_defaultsccs|]}t|ƒVqdS(N(tint(t.0ti((s&/usr/share/python/debpython/version.pys	<genexpr>+stDEFAULTsdefault-versionit.scannot read debian_defaultsccs8|].}td„|jƒdjdƒDƒƒVqdS(css|]}t|ƒVqdS(N(R(Rtj((s&/usr/share/python/debpython/version.pys	<genexpr>0siRN(ttupletstriptsplit(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>0sssupported-versionst,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(
sFReturn 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, 6), (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((Rtv(tmaxvtminv(s&/usr/share/python/debpython/version.pys	<genexpr>Sscss%|]}td|ƒr|VqdS(s/usr/bin/python%d.%dN(R(RR((s&/usr/share/python/debpython/version.pys	<genexpr>Vscss%|]}td|ƒs|VqdS(s/usr/bin/python%d.%dN(R(RR((s&/usr/share/python/debpython/version.pys	<genexpr>YsN(ii(icic(	t
isinstancet
basestringtparse_vrangetlisttNonetsett	SUPPORTEDR
tFalse(tvranget	availabletversions((RRs&/usr/share/python/debpython/version.pytget_requested_versions7s  '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
    tt-sversion range is invalid: %sicss|]}t|ƒVqdS(N(R(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>xsiRicss|]}t|ƒVqdS(N(R(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>‚scss|]}t|ƒVqdS(N(R(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>ƒs(R R!N(NN(	RtRANGE_REtmatcht
ValueErrortgroupsRtcountR
R(tvalueR#R%RR((s&/usr/share/python/debpython/version.pyR_s&#





++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)
    cSstt|ƒƒS(N(RR(tx((s&/usr/share/python/debpython/version.pyt<lambda>›sRtalltcurrents>=\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(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>ßscss|]}t|ƒVqdS(N(R9(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>áscss|]}t|ƒVqdS(N(R9(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>ãss%s-%scss|]}t|ƒVqdS(N(R9(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>åscss|]}t|ƒVqdS(N(R9(RR	((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(R9(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>øscss|]}t|ƒVqdS(N(R9(RR	((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(RR	((s&/usr/share/python/debpython/version.pys	<genexpr>sRi(R
R(R'((s&/usr/share/python/debpython/version.pyR2s
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']
    (	R3RRR2R
R;textendtreversedR>(Rt
return_strR<told_versionsR=((s&/usr/share/python/debpython/version.pyt	debsorteds
(ii(ii("tloggingR-tConfigParserRtos.pathRRRttypesRRR
t
RANGE_PATTERNtcompileR"t	getLoggert__name__tlogt_configtreadt__file__R
R4Rt	Exceptiont	exceptionRRRR8R:R>R2RC(((s&/usr/share/python/debpython/version.pyt<module>s<			!
		
(	,	A