Viewing File: /usr/lib/python2.7/site-packages/yum/repoMDObject.pyc

ó
ðv_c@s¶ddlmZddlmZmZddlmZddlZddlZddl	m
Z
mZd„Zdd
d„ƒYZ
d	dd
„ƒYZd„Zedkr²eƒndS(iÿÿÿÿ(tcElementTree_iterparse(t_available_compressiontstat_f(tRepoMDErrorN(tAutoFileChecksumstto_xmlcCs*|jdƒdkr|S|jdƒdS(Nt}iÿÿÿÿi(tfindtsplit(tqn((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyt
ns_cleanupstRepoDatacBs5eZdZdd„Zd„Zd„Zd„ZRS(s(represents anything beneath a <data> tagcCs‰d|_|r'|jjdƒ|_nd|_d|_d|_d|_d|_d|_	d|_
g|_|r…|j|ƒndS(Nttype(NN(NN(NN(
tNoneRtattribtgettlocationtchecksumtopenchecksumt	timestampt	dbversiontsizetopensizetdeltastparse(tselftelem((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyt__init__s									c	Cs{xt|D]l}t|jƒ}|dkr^|jjdƒ}|jjdƒ}||f|_q|dkr—|j}|jjdƒ}||f|_q|dkrÐ|j}|jjdƒ}||f|_q|dkrë|j|_q|dkr|j|_	q|d	kr!|j|_
q|d
kr<|j|_q|dkrt|ƒ}|j
|_
|jj|ƒqqWdS(NRthreftbaseRRs
open-checksumRtdatabase_versionRs	open-sizetdelta(R
ttagRRRttextRRRRRRRRRtappend(	RRtchildt
child_nametrelativeRt
csum_valuet	csum_typeR((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyR/s4
		cCsöd}dt|jdtƒ}||7}x‚ddgD]t\}}t||ƒr6t||ƒ}|drªd|t|ddtƒt|d	ƒ|f}||7}qªq6q6Wt|d
ƒr=t|d
ƒ}|d	r=dt|d	dtƒ}|dr-dt|ddtƒt|d	dtƒf}n||7}q=nx[ddddgD]G\}}t||ƒ}|rPd|t|ƒ|f}||7}qPqPWxD|jD]9}dj|jƒjdƒd	d!ƒ}	|d|	7}q¥Wd}
||
7}|S(Nts<data type="%s">
RRRs
open-checksumis  <%s type="%s">%s</%s>
iRs  <location href="%s"/>
s&  <location xml:base="%s" href="%s"/>
RRRRRs	open-sizes  <%s>%s</%s>
s
  s
iþÿÿÿs  <delta>
  %s
  </delta>
s</data>
(schecksumschecksum(sopenchecksums
open-checksum(s	timestamps	timestamp(s	dbversionsdatabase_version(ssizessize(sopensizes	open-size(	RRtTruethasattrtgetattrRtjointdump_xmlR(Rtmsgttoptdatatxmlnametvaltd_xmltlocRtbodytbottom((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyR-OsB



0
%
cCs=t|ƒ}x*|jD]}t|jƒ|kr|SqWdS(N(tintRR(Rt
old_timestamptdeltamd((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pytgetDeltaxsN(t__name__t
__module__t__doc__R
RRR-R:(((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyRs
	 	)tRepoMDcBsGeZdZdd„Zd„Zd„Zd„Zd„Zd„Z	RS(srepresents the repomd xml filecCstd|_||_i|_i|_d|_d|_itƒd6id6tƒd6|_|rp|j	|ƒndS(s0takes a repoid and a filename for the repomd.xmlitcontenttdistrotrepoN(
RtrepoidtrepoDatat	checksumstlengthR
trevisiontsetttagsR(RRBtsrcfile((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyRs						$cCsÈt|ƒtjkrOyt|dƒ}Wq[tk
rKtd|f‚q[Xn|}d}t|ddgdtdtƒ}t	|ƒ}yxò|D]ê\}}t
|jƒ}|dkr¼td|ƒ}|j
j|jƒ}|rq|jrq|j|jkrq|jd	jd
d	ƒd	tkrq|rqt|jdd	ƒdd|jd	jdd	ƒd	ƒdkrq|}n||j
|j<y.t|jƒ}	|	|jkr®|	|_nWq|q|Xq’|d
kr×|j|_q’|dkr’x–|D]‹}
t
|
jƒ}|dkr%|jdj|
jƒn|dkrê|
jjddƒ}|jdj|tƒƒ}
|
j|
jƒqêqêWq’q’W|jjƒ|_t|jƒ|_ Wnt!k
rÃ}td‚nXdS(NtrtsUnable to open %stsha256tsha512tignore_missingtignore_noneR0Rit.t/iRFRHR?R@tcpeidR(sDamaged repomd.xml file("RttypestStringTypestopentIOErrorRR
RR)t	iterparseR
R RRCRRRtrsplitRRR7RR!RFRHtaddRt
setdefaultRGRDt
hexdigeststlenREtSyntaxError(RRItinfiletparserteventRt	elem_nametthisdatatoldtntsR#R$RQR@te((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyRsV
!# '	
cCs
|jjƒS(s,return list of metadata file types available(RCtkeys(R((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyt	fileTypesÈscCs+||jkr|j|Std|‚dS(Ns#requested datatype %s not available(RCR(RR((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pytgetDataÌscCsd|jGHd|jGHx-t|jƒD]}d||j|fGHq(W|jdk	rfd|jGHn|jdr•ddjt|jdƒƒGHn|jdrõxPt|jdƒD]8}d	|GH|jd|}d
djt|ƒƒGHq¶WndGHxŒt|jƒƒD]x}|j	|}d|j
GHd
|jGHd|jGHd|jGHd|j
GHd|jGHd|jGHd|jGHdGHq
WdS(sdump fun outputsfile timestamp: %ssfile length   : %ssfile checksum : %s/%ssrevision: %sR?stags content: %ss, R@stags distro: %ss
  tags: %ss
---- Data ----s  datatype: %ss    location     : %s %ss    timestamp    : %ss    size         : %ss    open size    : %ss    checksum     : %s - %ss    open checksum: %s - %ss    dbversion    : %sR(N(RREtsortedRDRFR
RHR,RfRCRRRRRRR(RtcsumR@RHtftRa((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pytdumpÒs2
"
	
cCsëd}d}||7}|jr?dt|jƒ}||7}n|jdsf|jdsf|jdr³d}x/|jdD] }dt|ƒ}||7}qzWx/|jdD] }d	t|ƒ}||7}q¬W|jd}t|tƒr@g}xBt|ƒD]4}	x+t||	ƒD]}|j|	|fƒqWqÿW|}nxY|D]Q\}	}|	r~d
t|	dtƒt|ƒf}ndt|ƒ}||7}qGW|d
7}||7}nx'|jj	ƒD]}
||
j
ƒ7}qÃW|d7}|S(NR(s‹<?xml version="1.0" encoding="UTF-8"?>
<repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm">
s <revision>%s</revision>
R?R@RAs <tags>
s   <content>%s</content>
s   <repo>%s</repo>
s"   <distro cpeid="%s">%s</distro>
Rs   <distro>%s</distro>
s	 </tags>
s
</repomd>
(RFRRHt
isinstancetdictRhR"R)RCtvaluesR-(RR.R/trevRHtitemR R@tlstRQtmd((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyR-îsB
	
'
	"


N(
R;R<R=R
RRRfRgRkR-(((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyR>~s	9			cCsqy4dtjdGHtdtjdƒ}|jƒWn6tk
rltjdtjdIJtjdƒnXdS(Nsfile          : %siRBsnewcomps.py: No such file:'%s'(tsystargvR>RkRUtstderrtexit(tp((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pytmains
t__main__(((tyum.miscRRVRRtErrorsRRsRRtmiscRRR
RR>RxR;(((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyt<module>s	aš	
Back to Directory File Manager