ó
½-'Nc           @   s¼   d  d l  m Z d Z d Z d Z d Z d Z d e BZ d e BZ d e BZ	 d e BZ
 d e BZ d e BZ d e BZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ e e d „ Z e e _ d S(   iÿÿÿÿ(   t   sha1i   i    i   i   i   i   i   i   i   t   PackageTypeErrorc           B   s   e  Z d  Z RS(   sD   Raised when an unsupported package type is passed to build_skeleton.(   t   __name__t
   __module__t   __doc__(    (    (    s>   /usr/lib/python2.7/dist-packages/landscape/package/skeleton.pyR      s   t   PackageSkeletonc           B   sA   e  Z d Z d Z d Z d Z d Z d  „  Z d „  Z	 d „  Z
 RS(   c         C   s(   | |  _  | |  _ | |  _ g  |  _ d  S(   N(   t   typet   namet   versiont	   relations(   t   selfR   R   R   (    (    s>   /usr/lib/python2.7/dist-packages/landscape/package/skeleton.pyt   __init__   s    			c         C   s   |  j  j | | f ƒ d  S(   N(   R	   t   append(   R
   R   t   info(    (    s>   /usr/lib/python2.7/dist-packages/landscape/package/skeleton.pyt   add_relation%   s    c         C   s^   t  d |  j |  j |  j f ƒ } |  j j ƒ  x" |  j D] } | j d | ƒ q9 W| j ƒ  S(   Ns
   [%d %s %s]s   [%d %s](   R    R   R   R   R	   t   sortt   updatet   digest(   R
   R   t   pair(    (    s>   /usr/lib/python2.7/dist-packages/landscape/package/skeleton.pyt   get_hash(   s
    "N(   R   R   t   Nonet   sectiont   summaryt   descriptiont   sizet   installed_sizeR   R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/landscape/package/skeleton.pyR      s   		c            s=  t  j s1 t t  _ d d l m a m a m a n  t |  t ƒ sL t ƒ  ‚ n  | ry t	 t
 t |  j ƒ t |  j ƒ ƒ } n t	 t
 |  j |  j ƒ } t ƒ  } xU |  j D]J } t | t ƒ rÕ | j t t | ƒ f ƒ q¤ | j t t | ƒ f ƒ q¤ WxU |  j D]J } t | t ƒ r-| j t t | ƒ f ƒ qü | j t t | ƒ f ƒ qü Wx* |  j D] } | j t t | ƒ f ƒ qTWx* |  j D] } | j t t | ƒ f ƒ qWt | ƒ | _ | r9|  j j ƒ  d j |  ƒ ‰  ˆ  j  ƒ  | _! ˆ  j" ƒ  | _# ˆ  j$ ƒ  | _% t& ‡  f d †  ˆ  j' ƒ  Dƒ ƒ | _( ˆ  j) ƒ  | _* n  | S(   Niÿÿÿÿ(   t
   DebPackaget   DebNameProvidest   DebOrDependsi    c         3   s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   t   getSize(   t   .0t   url(   R   (    s>   /usr/lib/python2.7/dist-packages/landscape/package/skeleton.pys	   <genexpr>X   s    (+   t   build_skeletont   initedt   Truet   smart.backends.deb.baseR   R   R   t
   isinstanceR   R   t   DEB_PACKAGEt   unicodeR   R   t   sett   providest   addt   DEB_NAME_PROVIDESt   strt   DEB_PROVIDESt   requirest   DEB_OR_REQUIRESt   DEB_REQUIRESt   upgradest   DEB_UPGRADESt	   conflictst   DEB_CONFLICTSt   sortedR	   t   loaderst   keyst   getInfot   getGroupR   t
   getSummaryR   t   getDescriptionR   t   sumt   getURLsR   t   getInstalledSizeR   (   t   pkgt	   with_infot   with_unicodet   skeletonR	   t   relation(    (   R   s>   /usr/lib/python2.7/dist-packages/landscape/package/skeleton.pyR    0   s>    			%Ni   i   i   i   i   i   i   i   i   i   i   i   (   t   landscape.lib.hashlibR    t   PACKAGEt   PROVIDESt   REQUIRESt   UPGRADESt	   CONFLICTSR%   R,   R*   R/   R.   R1   R3   t	   ExceptionR   t   objectR   t   FalseR    R!   (    (    (    s>   /usr/lib/python2.7/dist-packages/landscape/package/skeleton.pyt   <module>   s    






-