ó
‚/Qc           @   s  d  d l  Z  e  j d d e ƒ d  d l Z d  d l Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ	 d
 e j
 f d „  ƒ  YZ e d k rd  d l m Z d Z e d e ƒ Z e e e j j ƒ  ƒ Z d GHd j g  e j ƒ  D] Z d e ^ qó ƒ GHn  d S(   iÿÿÿÿNt   ignores   apt API not stable yett   LanguagePackageStatusc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s1   | |  _  | |  _ t |  _ t |  _ t |  _ d  S(   N(   t   languageCodet   pkgname_templatet   Falset	   availablet	   installedt   doChange(   t   selfR   t   pkg_template(    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   __init__   s
    				c         C   s8   d |  j  |  j t |  j ƒ t |  j ƒ t |  j ƒ f S(   NsZ   LanguagePackageStatus(langcode: %s, pkgname %s, available: %s, installed: %s, doChange: %s(   R   R   t   strR   R   R   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   __str__   s    (   t   __name__t
   __module__R
   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR      s   	t   LanguageInformationc           B   s\   e  Z d d d  „ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z	 RS(   c         C   s‡   | |  _  | |  _ i  |  _ t | d ƒ |  j d <xO |  j j ƒ  D]> } | j | } | | k | _ | j rA | | j | _ qA qA Wd  S(   Ns   language-pack-%st   languagePack(	   R   t   languaget   languagePkgListR   t
   itervaluesR   R   t   is_installedR   (   R   t   cacheR   R   t   langpkg_statust   pkgname(    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR
      s    				c         C   s   |  j  r |  j r t St S(   sK    returns True if only parts of the language support packages are installed (   t   notInstalledt   fullInstalledt   TrueR   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   inconsistent'   s     c         C   sW   xP |  j  j ƒ  D]? } | j s% q n  | j r8 | j pH | j oH | j s t Sq Wt S(   sM    return True if all of the available language support packages are installed (   R   t   valuesR   R   R   R   R   (   R   t   pkg(    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR   ,   s    	 & c         C   sW   xP |  j  j ƒ  D]? } | j s% q n  | j r9 | j pH | j oH | j s t Sq Wt S(   sN    return True if none of the available language support packages are installed (   R   R   R   R   R   R   R   (   R   R   (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR   3   s    	 & c         C   s+   x$ |  j  j ƒ  D] } | j r t Sq Wt S(   sM    returns true if anything in the state of the language packs/support changes (   R   R   R   R   R   (   R   R   (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   changes:   s    	 c         C   s   d |  j  |  j f S(   Ns   %s (%s)(   R   R   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR   @   s    N(
   R   R   t   NoneR
   t   propertyR   R   R   R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR      s   t   ExceptionPkgCacheBrokenc           B   s   e  Z RS(    (   R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR!   D   s   t   LanguageSelectorPkgCachec           B   sD   e  Z d  „  Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sP   t  j j |  | ƒ |  j j d k r1 t ƒ  ‚ n  | |  _ t j |  ƒ |  _	 d  S(   Ni    (
   t   aptt   CacheR
   t	   _depcachet   broken_countR!   t   _localeinfot   language_support_pkgst   LanguageSupportt   lang_support(   R   t
   localeinfot   progress(    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR
   I   s
    	c         C   s–   x |  j  j D] } xx | j D]m } | j d ƒ j d ƒ rA q n  | j d ƒ j d ƒ r_ q n  | j d k rt q n  | j r | j r t Sq Wq Wt	 S(   s,    verify that a network package lists exists t    s   cdrom:s   http://security.ubuntu.coms   Debian Package Index(
   t   _listt   listt   index_filest   archive_urit
   startswitht   labelt   existst   has_packagesR   R   (   R   t	   metaindext	   indexfile(    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   havePackageListsP   s    c         C   s   |  j  j ƒ  d S(   s    clear the selections N(   R%   t   init(   R   (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   clear_   s    c         C   sn   g  } g  } xU |  j  ƒ  D]G } | j s1 | j rD | j | j ƒ n  | j r | j | j ƒ q q W| | f S(   N(   t   get_changest   marked_installt   marked_upgradet   appendt   namet   marked_delete(   R   t   to_instt   to_rmR   (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   getChangesListc   s    	c         C   sá   xÚ | j  j ƒ  D]É \ } } | j r |  j j | j d | j ƒ} yv | j r™ xf | D]< } | j d ƒ s | j d | j ƒ rV |  | j	 ƒ  qV qV Wn x | D] } |  | j
 ƒ  q  WWqÙ t k
 rÕ t ƒ  ‚ qÙ Xq q Wd S(   s$    commit changed status of list itemsR   s   language-pack-t   -N(   R   t	   iteritemsR   R*   t	   by_localeR   R   R2   t   endswitht   mark_deletet   mark_installt   SystemErrorR!   (   R   t   lit   keyt   itemt   pkgsR   (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   tryChangeDetailsm   s    		c         C   sŒ   g  } x |  j  j j ƒ  D]k \ } } | d k r7 q n  t |  | | ƒ } g  | j j ƒ  D] } | j rY | ^ qY r | j | ƒ q q W| S(   s5    returns a list with language packs/support packages t   zh(   R'   t   _langt   itemsR   R   R   R   R>   (   R   t   rest   codet   langRK   t   s(    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   getLanguageInformation‚   s    +(	   R   R   R
   R    R8   R:   RC   RO   RW   (    (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyR"   G   s   			
	t   __main__(   t
   LocaleInfos   /usr/share/language-selectort   languagelists   available language informations   , s   %s(   t   warningst   filterwarningst   FutureWarningR#   R(   t   objectR   R   t	   ExceptionR!   R$   R"   R   RY   t   datadirRK   R,   t
   OpProgresst   lct   joinRW   t   x(    (    (    s>   /usr/lib/python2.7/dist-packages/LanguageSelector/LangCache.pyt   <module>   s   /H