v_c@sddlmZddlmZmZddlmZddlZddlZddl m Z m Z dZ dd dYZ d dd YZd Zed krendS(i(tcElementTree_iterparse(t_available_compressiontstat_f(t RepoMDErrorN(tAutoFileChecksumstto_xmlcCs*|jddkr|S|jddS(Nt}ii(tfindtsplit(tqn((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyt ns_cleanupstRepoDatacBs5eZdZddZdZdZdZRS(s(represents anything beneath a tagcCsd|_|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|d krt |}|j |_ |jj|qqWdS( NRthreftbaseRR s open-checksumRtdatabase_versionRs open-sizetdelta(R ttagRRRttextRRRRRRR R Rtappend( RRtchildt child_nametrelativeRt csum_valuet csum_typeR((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyR/s4             c Csd}dt|jdt}||7}xddgD]t\}}t||r6t||}|drd|t|ddtt|d |f}||7}qq6q6Wt|d r=t|d }|d r=d t|d dt}|dr-d t|ddtt|d dtf}n||7}q=nx[ddddgD]G\}}t||}|rPd|t||f}||7}qPqPWxD|jD]9}dj|jjdd d!} |d| 7}qWd} || 7}|S(Nts RRRs open-checksumis <%s type="%s">%s iRs s& RRRRRs open-sizes <%s>%s s s is %s s (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.pyR s   )tRepoMDcBsGeZdZddZdZdZdZdZdZ RS(srepresents the repomd xml filecCstd|_||_i|_i|_d|_d|_itd6id6td6|_|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      $c Cst|tjkrOyt|d}Wq[tk rKtd|fq[Xn |}d}t|ddgdtdt}t |}yx|D]\}}t |j }|dkrt d|}|j j|j}|rq|jrq|j|jkrq|jd jd d d tkrq|rqt|jd d d d |jd jd d d dkrq|}n||j |j s %s R?R@RAs s %s s %s s" %s Rs %s s s ( 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}|jWn6tk rltjdtjdIJtjdnXdS(Nsfile : %siRBsnewcomps.py: No such file:'%s'(tsystargvR>RkRUtstderrtexit(tp((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pytmains t__main__(((tyum.miscRRVRRtErrorsRRsRRtmiscRRR R R>RxR;(((s4/usr/lib/python2.7/site-packages/yum/repoMDObject.pyts   a