Ñò ¾[c@s¢ddklZddklZddkZddkZddklZl Z d„Z dd d„ƒYZ dd d „ƒYZ d „Z ed jo e ƒndS(iÿÿÿÿ(tcElementTree_iterparse(t RepoMDErrorN(tAutoFileChecksumstto_xmlcCs,|idƒdjo|S|idƒdS(Nt}iÿÿÿÿi(tfindtsplit(tqn((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyt ns_cleanupstRepoDatacBs,eZdZdd„Zd„Zd„ZRS(s(represents anything beneath a tagcCs„d|_|o|iidƒ|_nd|_d|_d|_d|_d|_d|_ d|_ |o|i |ƒndS(Nttype(NN(NN(NN( tNoneR tattribtgettlocationtchecksumt openchecksumt timestampt dbversiontsizetopensizetparse(tselftelem((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyt__init__s        cCsRxK|D]C}t|iƒ}|djo7|iidƒ}|iidƒ}||f|_q|djo.|i}|iidƒ}||f|_q|djo.|i}|iidƒ}||f|_q|djo|i|_q|djo|i|_ q|d jo|i|_ q|d jo|i|_ qqWdS( NRthreftbaseRR s open-checksumRtdatabase_versionRs open-size( RttagR R RttextRRRRRR(RRtchildt child_nametrelativeRt csum_valuet csum_type((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyR-s.         c Cs»d}dt|idtƒ}||7}x†ddgD]x\}}t||ƒo\t||ƒ}|do>d|t|ddtƒt|d ƒ|f}||7}q®q6q6Wt|d ƒo…t|d ƒ}|d ogd t|d dtƒ}|do4d t|ddtƒt|d dtƒf}n||7}qGnx]ddddgD]I\}}t||ƒ}|o'd|t|ƒ|f}||7}qZqZWd}||7}|S(Nts R RRs open-checksumis <%s type="%s">%s iRs s& RRRRRs open-sizes <%s>%s s (schecksumschecksum(s openchecksums open-checksum(s timestamps timestamp(s dbversionsdatabase_version(ssizessize(sopensizes open-size(RR tTruethasattrtgetattr( Rtmsgttoptdatatxmlnametvaltd_xmltloctbottom((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pytdump_xmlIs@     1   N(t__name__t __module__t__doc__R RRR/(((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyR s  tRepoMDcBsGeZdZdd„Zd„Zd„Zd„Zd„Zd„Z RS(srepresents the repomd xml filecCsvd|_||_h|_h|_d|_d|_htƒd6hd6tƒd6|_|o|i |ƒndS(s0takes a repoid and a filename for the repomd.xmlitcontenttdistrotrepoN( RtrepoidtrepoDatat checksumstlengthR trevisiontsetttagsR(RR7tsrcfile((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyRps      $c Cs+t|ƒtijo=yt|dƒ}WqYtj otd|f‚qYXn|}t|ddgdtdtƒ}t|ƒ}y€xU|D]M\}}t |i ƒ}|djo]t d|ƒ}||i |itinfiletparserteventRt elem_nametthisdatatntsRRRDR5te((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyR~sL        cCs |iiƒS(s,return list of metadata file types available(R8tkeys(R((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyt fileTypes¬scCs-||ijo |i|Std|‚dS(Ns#requested datatype %s not available(R8R(RR ((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pytgetData°s cCs“d|iGHd|iGHx-t|iƒD]}d||i|fGHq(W|idj od|iGHn|ido#ddit|idƒƒGHn|idoTxQt|idƒD]8}d |GH|id|}d dit|ƒƒGHq»Wnd GHxŒt|iƒƒD]x}|i |}d |i GHd |i GHd|iGHd|i GHd|i GHd|iGHd|iGHd|iGHdGHqWdS(sdump fun outputsfile timestamp: %ssfile length : %ssfile checksum : %s/%ss revision: %sR4stags content: %ss, R5stags 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(RR:tsortedR9R;R R=tjoinRXR8R RRRRRR(RtcsumR5R=tftRT((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pytdump¶s8  #           c Csõd}d}||7}|io!dt|iƒ}||7}n|idp|idp|idoRd}x/|idD] }dt|ƒ}||7}qWx/|idD] }d t|ƒ}||7}q±W|id}t|tƒoUg}xBt|ƒD]4} x+t|| ƒD]}|i| |fƒqWqW|}nx[|D]S\} }| o&d t| d tƒt|ƒf}nd t|ƒ}||7}qNW|d 7}||7}nx'|ii ƒD]} || i ƒ7}qÍW|d7}|S(NR#s‹ s %s R4R5R6s s %s s %s s" %s R s %s s s ( R;RR=t isinstancetdictRZtappendR$R8tvaluesR/( RR'R(trevR=titemRR5tlstRDtmd((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyR/ÒsN  *    #  N( R0R1R2R RRRXRYR^R/(((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyR3ms  .   cCssy4dtidGHtdtidƒ}|iƒWn8tj o,tidtidIJtidƒnXdS(Nsfile : %siR7snewcomps.py: No such file:'%s'(tsystargvR3R^RHtstderrtexit(tp((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pytmainüst__main__(((tyum.miscRRItErrorsRRgREtmiscRRRR R3RlR0(((s4/usr/lib/python2.6/site-packages/yum/repoMDObject.pyts   Q