Your IP : 172.28.240.42


Current Path : /usr/share/python/
Upload File :
Current File : //usr/share/python/pyversions.pyc


MQc@sTddlZddlZddlZy
eZWn/ek
r_ddlZejZejZnXda	ddZ
edZda
edZdaedZdaedZdaedZedZed	Zd
efdYZdefd
YZdZdZedZdZdZedkrPendS(iNcCsddlm}m}tstjjdr|}y|jtdWn%t	k
ru}|GHt
jdnX|aqntr|rytjd|}Wn|k
rt
nX|SdS(Ni(tSafeConfigParsert
NoOptionErrors!/usr/share/python/debian_defaultsitDEFAULT(tConfigParserRRt	_defaultstostpathtexiststreadfptfiletIOErrortsystexittgett
ValueErrortNone(tnameRRtconfigtmsgtvalue((s/usr/share/python/pyversions.pytread_defaults"	

cCsOddl}i|jd6|jd6|jd6|jd6|jd6}i}tg}ttdtt	dt}t
}xJ|jdD]9}|j}|dkrd|d<qn|dkr||d	<qn|j
dttjd}	|	j|}
y|
s!td
n|
jd|
jd}}|jd\}
}|dkrq|j|n8t}||}g|D]}|||r|^q}Wqtk
rtd
qXqW|r|r||d<nd|krK|r	t||d<q|d=qKn5d|krK||d<|rK|j||d<qKn|S(Nit=s>=s<=s<<tversion_onlyt,talltcurrenttcurrent_exttversionss(>=|<=|<<|=)? *(\d\.\d)$s&error parsing Python-Version attributeiit.tvexact(scurrentR(NR(toperatorteqRtgetletlttsettsupported_versionstTruetold_versionstFalsetsplittstript
setdefaulttretcompiletmatchRtgrouptaddt	Exceptiontunion(tvstringt	add_exactRt	operatorstvinfotexact_versionst
version_ranget
relop_seentfieldtvetmtoptvtvmajtvmintfiltoptav((s/usr/share/python/pyversions.pytparse_versions sX



,



cCsts[y8td}g|jdD]}|j^q%aWq[tk
rWgaq[Xn|r|gtD]}|d^qhStSdS(Nsold-versionsRi(t
_old_versionsRR(R)R(RRtsR=((s/usr/share/python/pyversions.pyR&Vs,

cCsts[y8td}g|jdD]}|j^q%aWq[tk
rWgaq[Xn|r|gtD]}|d^qhStSdS(Nsunsupported-versionsRi(t_unsupported_versionsRR(R)R(RRRDR=((s/usr/share/python/pyversions.pytunsupported_versionsds,

c
Cststy8td}g|jdD]}|j^q%aWqttk
rpddddg}y=ddl}|j|dd	d
td|j}|j	}Wn)t
k
rtjdj
|}nXd}xE|D]=}|jd
r|jdd	d	jjd}qqW|j|rXg|D]}tjdd|^q.}|antsqddgaqqqtXn|rgtD]}	|	d^qStSdS(Nssupported-versionsRs/usr/bin/apt-caches--no-all-versionstshows
python-allitbufsizeitshelltstdoutt sDepends:t:s\s*(\S+)[ (]?.*s\1s	python2.6s	python2.7i(t_supported_versionsRR(R)Rt
subprocesstPopenR'tPIPERJtImportErrorRtpopentjoinRt
startswithtcloseR+tsub(
RRRDtcmdRNtptfdtdependstlineR=((s/usr/share/python/pyversions.pyR$rs6,



,
(	cCs[tsEytjda}Wntk
rdayLdddg}ddl}|j|dddtd|j}|j	}Wn t
k
rtjd	}nX|jj
}|jtjd
|rd|aqnXytd}Wntk
r
d
}nXt|tjjd|fkr<td|n|an|rStdStSdS(Ns/usr/bin/pythons-cs!import sys; print sys.version[:3]iRHiRIRJs6/usr/bin/python -c 'import sys; print sys.version[:3]'s\d\.\d$tpythonsdefault-versions	python2.6s/usr/binsZ/usr/bin/python does not match the python default version. It must be reset to point to %si(t_default_versionRtreadlinktOSErrorRRNROR'RPRJRQRRtreadlineR)RUR+R-RRRRS(RtlinkRWRNRXRYR[tdebian_default((s/usr/share/python/pyversions.pytdefault_versions6





!	cCsd}t|dt}tdt}t|dkrd|krN|}qd|krotdtg}qd|kr|d}q|dj|}n3d|krd|krtdnd|krd|kr|dj|}nt|}d|kr|j	|dqnd|krbtdt}||dkrVtd	n|g}nod|kszd|krt}d|kr|dj|}nd|kr|j	|dqn	td
|stdn|r|Sg|D]}d|^qSdS(
NR3RiRRRRs*both `current' and `all' in version strings+`current' version not in supported versionss$No Python versions in version strings+computed set of supported versions is emptyspython%s(
RRBR%R$tlenRctintersectionRR#tupdate(R2RRR5t	supportedRR=((s/usr/share/python/pyversions.pytrequested_versionssH	
		cCsddl}t}g|jdD]0}tjj||kr%tjj|^q%}|j|rg|D]}|d^qrS|SdS(Nis/usr/bin/python[0-9].[0-9]i(tglobR$RRtbasenametsort(RRiRgRDRR=((s/usr/share/python/pyversions.pytinstalled_versionss	0
tControlFileValueErrorcBseZRS((t__name__t
__module__(((s/usr/share/python/pyversions.pyRmstMissingVersionValueErrorcBseZRS((RnRo(((s/usr/share/python/pyversions.pyRpscCsd}d}d}yt|d}Wn/tk
rV}d||fGHtjdnXx|D]}|j}|dkr|dkrq^n|dkrPnd}q^|jdrd}q^|jd|r|}q^|jds|jd	r0|dkrtd
n|jdddj}q^|jd
r^||krm|jdddj}qmq^q^W|dkrt	dn|dkr|dkrt
dn|S|dkrt
d|n|S(sread the debian/control file, extract the X-Python-Version or
    XS-Python-Version field; check that XB-Python-Version exists for the
    package.trsCannot open %s: %sittSourcesSource:s	Package: sXS-Python-Version:sX-Python-Version:s3attribute X(S)-Python-Version not in Source sectionRLisXB-Python-Version:snot a control files+missing X(S)-Python-Version in control files)missing XB-Python-Version for package `%sN(RR	R
RRR)RTRR(RmRp(tfntpkgtversiontsversiontsectiontfpRR[((s/usr/share/python/pyversions.pytextract_pyversion_attributesN
				&	
cCs]g|jdD]}t|^q}g|jdD]}t|^q8}t||S(NR(R(tinttcmp(tver1tver2titv1tv2((s/usr/share/python/pyversions.pytversion_cmps((cCsag}tdt}x|jdD]}|jd}t|dkr|dsg|d|d<n|ds|d|d<nx|D]`}yFt||ddkrt||ddkr|j|nWqtk
rqXqWq%|d|kr%|j|dq%q%W|jt|s7tdn|s]g|D]}d|^qD}n|S(	NRRt-iiisempty set of versionsR\(R$R%R(RdRtappendRRk(R2RRtpy_supported_shorttitemR=tverR((s/usr/share/python/pyversions.pytrequested_versions_bis#s0




 cCst|jjd}|S(Ns
(R	R`trstrip(RtR2((s/usr/share/python/pyversions.pytextract_pyversion_attribute_bis>scCsddlm}d}|d|}|jddddd	d
dd|jd
dddd	d
dd|jddddd	d
dd|jddddd	d
dd|jdddddtd	d
dd|j\}}tjjtj	d}|j
r`t|dkr`yt|j
GHWqtk
r\}d|G|GHtjdqXn|jrt|dkrd jt|j
GHnX|jrt|dkrd jt|j
GHn#|jrt|dkrt|dkrd!}n
|d}y|tjj|re|}y%t|d"}	t|	|j
}
Wqwtk
rtjjd#||ftjdqwtk
r(tjjtjj|d$}tjjd%||fy"t|}	t|	|j
}
Wqbt k
r$tjjd&|t|j
}
qbXqwtk
ra}tjjd'||ftjd(qwXnt||j
}
d j|
GHWqtk
r}tjjd'||ftjdqXn'tjjd)||ftjddS(*Ni(tOptionParsersk[-v] [-h] [-d|--default] [-s|--supported] [-i|--installed] [-r|--requested <version string>|<control file>]tusages-ds	--defaultthelps print the default python versiontactiont
store_truetdesttdefaults-ss--supporteds#print the supported python versionsRgs-rs--requestedsprint the python versions requested by a build; the argument is either the name of a control file or the value of the X(S)-Python-Version attributet	requesteds-is--installeds-print the installed supported python versionst	installeds-vs	--versions print just the version number(s)Ris%s:iRKsdebian/controlRss%s: not a control file: %s, t
pyversionssA%s: missing X(S)-Python-Version in control file, fall back to %s
sD%s: missing debian/pyversions file, fall back to supported versions
s%s: %s
is
usage: %s %s
(!toptparseRt
add_optionR't
parse_argsRRRjRtargvRRdRcRRRRgRSR$RRlRtisfileRzRhRmtstderrtwriteRptdirnameRRR
(RRtparsertoptstargstprogramRRRtR2tvste((s/usr/share/python/pyversions.pytmainBs




	


!
t__main__( RR+RR#tSetTypet	NameErrortsetstSetRRRR'RBRCR&RERFRMR$R]RcRhRlRRmRpRzRRRRRn(((s/usr/share/python/pyversions.pyt<module>s8$

	
5

! *	/			G