ó
È”Mc           @   s0   d  d l  m Z m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   INSTALLt   REMOVEt   Reportc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s‚   | |  _  i  |  _ i  |  _ i  |  _ i  |  _ i  |  _ i  |  _ i  |  _ i  |  _ i  |  _	 i  |  _
 i  |  _ i  |  _ i  |  _ d  S(   N(   t
   _changesett   excludet   installt   removet   removedt   upgradedt
   downgradedt
   installingt	   upgradingt   downgradingt   notupgradedt	   conflictst   requirest
   requiredby(   t   selft	   changeset(    (    s0   /usr/lib/python2.7/dist-packages/smart/report.pyt   __init__   s    													c         C   s­   |  j  j ƒ  |  j j ƒ  |  j j ƒ  |  j j ƒ  |  j j ƒ  |  j j ƒ  |  j j ƒ  |  j j ƒ  |  j	 j ƒ  |  j
 j ƒ  |  j j ƒ  |  j j ƒ  |  j j ƒ  d  S(   N(   R   t   clearR   R   R   R   R	   R
   R   R   R   R   R   R   (   R   (    (    s0   /usr/lib/python2.7/dist-packages/smart/report.pyt   reset0   s    c         C   sÙ  |  j  } xÉ| j ƒ  j ƒ  D]µ} | |  j k r7 q n  | j | ƒ t k r°t |  j | <d  } xŠ | j	 D] } xv | j
 D]k } xb | j D]W } | j | ƒ t k r‰ | rÉ | | k rÝ | j | ƒ qÝ qà | g } |  j | <q‰ q‰ Wqy Wqi Wd  } xŠ | j D] } xv | j D]k } xb | j D]W } | j | ƒ t k r| r\| | k rp| j | ƒ qpqs| g } |  j | <qqWqWqü W| |  j k r»| |  j k r»t |  j | <q»n| j | ƒ t k rt |  j | <d  } x~ | j D]s } xj | j D]_ } xV | j D]K } | j r| r6| | k rJ| j | ƒ qJqM| g } |  j | <qqWqòWqâWd  } x~ | j	 D]s } xj | j
 D]_ } xV | j D]K } | j r‰| r½| | k rÑ| j | ƒ qÑqÔ| g } |  j | <q‰q‰WqyWqiW| |  j k r»| |  j k r»t |  j | <q»nª | j r»i  } yh xa | j	 D]V } xM | j
 D]B } x9 | j D]. } | j | ƒ t k rqt ‚ qMt | | <qMWq=Wq-WWn t k
 r›q»X| r»| j ƒ  |  j | <q»n  | j | ƒ }	 |	 r i  }
 xg | j D]\ } xS | j D]H } x? | j D]4 } | | k rq n  | j | ƒ r t |
 | <q q WqðWqàWxg | j	 D]\ } xS | j D]H } x? | j D]4 } | | k r‚qjn  | j | ƒ rjt |
 | <qjqjWqZWqJW|
 rÐ|
 j ƒ  |  j | <|
 j ƒ  n  x[ | j D]P } xG | j D]< } x3 | j D]( } | j | ƒ |	 k rút |
 | <qúqúWqêWqÚW|
 rT|
 j ƒ  |  j | <|
 j ƒ  n  x[ | j	 D]P } xG | j D]< } x3 | j D]( } | j | ƒ |	 k r~t |
 | <q~q~WqnWq^W|
 rÑ|
 j ƒ  |  j | <qÑq q Wd  S(   N(    R   t   getCachet   getPackagesR   t   getR   t   TrueR   t   Nonet   providest
   upgradedbyt   packagesR    t   appendR   t   upgradest
   providedbyR	   R   R   t	   installedR   R   R
   t   StopIterationt   keysR   R   t   conflictedbyR   R   R   (   R   R   t   pkgt   lstt   prvt   upgt   upgpkgt   prvpkgR   t   pkgopt   mapt   cnft   cnfpkgt   reqt   reqpkg(    (    s0   /usr/lib/python2.7/dist-packages/smart/report.pyt   compute?   sÄ    	##	#	#		c         C   s   d } x€ |  j  D]u } x$ | j D] } | j ƒ  s  Pq  q  Wq | j | ƒ } x6 | j ƒ  D]( } | j | ƒ } | rY | | 7} qY qY Wq W| S(   Ni    (   R   t   loaderst   getInstalledt   getInfot   getURLst   getSize(   R   t   totalR%   t   loadert   infot   urlt   size(    (    s0   /usr/lib/python2.7/dist-packages/smart/report.pyt   getDownloadSizeª   s    c         C   sa   d } xT |  j  D]I } t | j ƒ j ƒ  } | j | ƒ } | j ƒ  } | r | | 7} q q W| S(   Ni    (   R   t   iterR2   t   nextR4   t   getInstalledSize(   R   R7   R%   R8   R9   R;   (    (    s0   /usr/lib/python2.7/dist-packages/smart/report.pyt   getInstallSize¹   s    c         C   sa   d } xT |  j  D]I } t | j ƒ j ƒ  } | j | ƒ } | j ƒ  } | r | | 7} q q W| S(   Ni    (   R   R=   R2   R>   R4   R?   (   R   R7   R%   R8   R9   R;   (    (    s0   /usr/lib/python2.7/dist-packages/smart/report.pyt   getRemoveSizeÃ   s    (   t   __name__t
   __module__R   R   R1   R<   R@   RA   (    (    (    s0   /usr/lib/python2.7/dist-packages/smart/report.pyR      s   			k		
N(   t   smart.constR    R   t   objectR   (    (    (    s0   /usr/lib/python2.7/dist-packages/smart/report.pyt   <module>   s   