ó
È”Mc           @   s®   d  d l  Ty d  d l m Z WnE e k
 re y d  d l Z Wqf e k
 ra d  d l m Z qf Xn Xd  d l Td  d l Z d  d l Z d Z d „  Z	 d d d „  ƒ  YZ
 d S(	   iÿÿÿÿ(   t   *(   t   cElementTreeNs2   http://novell.com/package/metadata/suse/updateinfoc         C   s   | S(   N(    (   t   nst   tag(    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyt   nstag)   s    t   RPMUpdateInfoc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  i  |  _ i  |  _ d  S(   N(   t	   _filenamet	   _flagdictt   _details(   t   selft   filename(    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyt   __init__.   s    		c   %      C   sÕ  t  t d ƒ } t  t d ƒ } t  t d ƒ } t  t d ƒ } t  t d ƒ } t  t d ƒ } t  t d ƒ } t  t d ƒ } t  t d	 ƒ }	 t  t d
 ƒ }
 t  t d ƒ } t  t d ƒ } t  t d ƒ } t  t d ƒ } t  t d ƒ } d  } d  } i  } d  } t } t } g  } t |  j ƒ } xªt j | d% ƒ D]–\ } } | j	 } | j
 d ƒ ri| j d ƒ \ } } n  | d k rì| | k r²| j d ƒ } | d k r¥| } n  | | d <n* | | k rÇt } n | | k rÜt } n  | j | ƒ q-| d k r-| j ƒ  | k st ‚ | r.| | k r¶d  } q¶nˆ| | k rP| j } | | d <nf| | k rl| j | d <nJ| | k rŽ| j d ƒ | d <n(| | k r°t | j ƒ | d <n| |
 k rØ| j r¶| j | d
 <q¶nÞ| | k rít } nÉ| |	 k r8| j d ƒ } d | k r(| d j | ƒ q¶| g | d <n~| | k rMt } ni| | k r•| j d ƒ } | j d ƒ } | j d ƒ } | j d ƒ }  | j d ƒ }! |! d k r¶q-n0 | j d ƒ rËq-n t j |! ƒ d k ræq-n  | }" | r| d k r| d  k rd! | |" f }" n  |  r6d" |" |  f }" n  d# |" |! f }# | rld$ | |# f }$ | |  j |$ <n  | r¶d$ | |# f }$ | |  j |$ <q¶n! | | k r¶d  } d  } i  } n  | j ƒ  q-q-W| j ƒ  d  S(&   Nt   updatest   updatet   idt   titlet   releaset   issuedt   reboot_suggestedt
   referencest	   referencet   descriptiont   pkglistt
   collectiont   namet   packageR
   t   startt   endt   {t   }t   typet
   newpackaget   datet   issued_datet   hreft   epocht   versiont   archt   srcs
   -debuginfoi    t   Nonet   0s   %s:%ss   %s-%ss   %s@%ss   %s=%s(   s   starts   end(   R   t   NS_UPDATEINFOR'   t   Falset   Truet   openR   R   t	   iterparseR   t
   startswitht   splitt   gett   appendt   popt   AssertionErrort   textt   boolt   endswitht   rpmt	   archscoreR   R   t   cleart   close(%   R	   t   UPDATESt   UPDATEt   IDt   TITLEt   RELEASEt   ISSUEDt   REBOOTt
   REFERENCESt	   REFERENCEt   DESCRIPTIONt   PKGLISTt
   COLLECTIONt   NAMEt   PACKAGEt   FILENAMER   R   t   infot   skipt   packagelistR   t   queuet   filet   eventt   elemR   R   R"   R   t   et   vt   rR%   R$   t   versionarcht   pkg(    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyt   load3   s¼    	 								c         C   s   |  j  S(   N(   R   (   R	   (    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyt   getErrataFlags¼   s    c         C   s_   t  j ƒ  r d  SxH |  j j ƒ  D]7 \ } } | j d ƒ \ } } t j | | d | ƒ q  Wd  S(   Nt   =(   t   sysconft   getReadOnlyR   t	   iteritemsR/   t   pkgconft   setFlag(   R	   RU   R   R   R$   (    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyt   setErrataFlags¿   s
    c         C   s)   d | j  | j f } |  j j | d  ƒ S(   Ns   %s=%s(   R   R$   R   R0   R'   (   R	   R   RU   (    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyt   getTypeÈ   s    c         C   s)   d | j  | j f } |  j j | d  ƒ S(   Ns   %s=%s(   R   R$   R   R0   R'   (   R	   R   RU   (    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyt   getInfoÌ   s    (   t   __name__t
   __module__R   RV   RW   R^   R_   R`   (    (    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyR   ,   s   		‰				(    (   t   smart.backends.rpm.baset	   xml.etreeR   t   ImportErrort
   smart.utilt   smartt   ret   osR)   R   R   (    (    (    sA   /usr/lib/python2.7/dist-packages/smart/backends/rpm/updateinfo.pyt   <module>   s   

	