Ñò
RüLc           @   sÐ   d  d k  Td e f d „  ƒ  YZ d e e i f d „  ƒ  YZ e d j oƒ e d ƒ Z e i	 d e
 e ƒ GHe i	 d e
 d	 g ƒ GHe i	 d
 e
 d g ƒ GHe i	 d
 e
 d d g ƒ GHe i	 d
 e
 d g ƒ GHn d S(   iÿÿÿÿ(   t   *t   SoftwareIndexBrokenc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sI   /usr/lib/python2.6/dist-packages/LanguageSelector/CheckLanguageSupport.pyR      s    t   CheckLanguageSupportc           B   s5   e  Z d d  „ Z d d „ Z d e d e d „ Z RS(   c         C   s    t  i |  | ƒ | d  j o t i ƒ  |  _ n
 | |  _ t d | ƒ |  _ t i	 i
 | d d ƒ |  _ t i	 i
 | d d ƒ |  _ t i	 i
 | d d ƒ |  _ d  S(   Nt   languagelistt   datat	   blacklistt   langcode2localet   pkg_depends(   t   LanguageSelectorBaset   __init__t   Nonet   aptt   Cachet   _cachet
   LocaleInfot   _localeinfot   ost   patht   joint	   BLACKLISTt   LANGCODE_TO_LOCALEt   PACKAGE_DEPENDS(   t   selft   datadirt   cache(    (    sI   /usr/lib/python2.6/dist-packages/LanguageSelector/CheckLanguageSupport.pyR      s     	c   	      C   s  | pº |  i  o& | |  i  j o d d d d g } n
 d g } x~ | D]r } d | | f } | |  i j oL |  i | i o& |  i | i o |  i i | ƒ q¹ |  i i | ƒ qG qG Wn | |  i j o‹xˆ|  i | D]u\ } } | o  | | j o | |  i j o | |  i j oo |  i | i o$ |  i | i o |  i | i p |  i | i	 o |  i i | ƒ qŽ|  i i | ƒ qTqß | |  i j o² |  i | i p" |  i | i p |  i | i o | |  i j oo |  i | i o$ |  i | i o |  i | i p |  i | i	 o |  i i | ƒ qT|  i i | ƒ qß qß Wn | |  i
 j o¬| |  i  j p{ d | |  i j o |  i d | i pR d | |  i j o |  i d | i p) d | |  i j o6|  i d | i o!x|  i
 | D]\ } } d | j o‰xï| i d ƒ D]q} | o¡ | | j o | |  i j o€ | |  i j op |  i | i o$ |  i | i o |  i | i p |  i | i	 o |  i i | ƒ n |  i i | ƒ PqŸq.| |  i j o³ |  i | i p" |  i | i p |  i | i o€ | |  i j op |  i | i o$ |  i | i o |  i | i p |  i | i	 o |  i i | ƒ n |  i i | ƒ Pq.q.Wq| o  | | j o | |  i j o | |  i j oo |  i | i o$ |  i | i o |  i | i p |  i | i	 o |  i i | ƒ qJ|  i i | ƒ qq| |  i j o² |  i | i p" |  i | i p |  i | i o | |  i j oo |  i | i o$ |  i | i o |  i | i p |  i | i	 o |  i i | ƒ q|  i i | ƒ qqWn d S(	   s  
        Returns a list of uninstalled translation and/or writing aid packages.
        pkgcode = language code as used in the language-pack packagenames.
        If the list 'packages' is supplied, only check for extra translation and/or writing
        aid packages for that given list of packages.
        Otherwise check the full list.
        This function is to be called from getMissingPackages().
        s   language-packs   language-support-fontss   language-support-inputs   language-support-writings   %s-%ss   language-support-writing-%st   |N(   t   system_pkgcodeR   t   isInstalledt   markedInstallt   missingt   addt	   installedt   pkg_translationst   markedUpgradet   markedDeletet   pkg_writingt   markInstallt   markUpgradet   split(	   R   t   pkgcodet   packagest   scanlistt   xt   pkgt   translationt   pull_pkgt   p(    (    sI   /usr/lib/python2.6/dist-packages/LanguageSelector/CheckLanguageSupport.pyt   findPackages   sº    		    	c         C   sÀ  |  i  i d j o
 t ‚ n h  |  _ h  |  _ h  |  _ h  } g  } t ƒ  |  _ t ƒ  |  _ d |  _	 xD t
 |  i ƒ D]3 } | i ƒ  } | i d ƒ p | i | ƒ qu qu Wx t
 |  i ƒ D]n } yB | i ƒ  } d | j o | i d ƒ \ } }	 n | } | }	 Wn t j
 o
 q¼ n X| |  i |	 <q¼ Wx†t
 |  i ƒ D]u} | i d ƒ o q>n yH | i ƒ  } | i d ƒ d j o w>n | i d ƒ \ }
 } } } Wn t j
 o
 q>n X|
 d j o | d j o | | | <q>|
 d j oÂ | d j oµ d | j oa x¡ | i d ƒ D]I } | |  i j o g  |  i | <n |  i | i d | d | f ƒ qWq³| |  i j o g  |  i | <n |  i | i d | d | f ƒ q>q>Wx¢|  i  i ƒ  D]‘} | | j o qÇn xt| i ƒ  D]f} | i | ƒ oP| i d	 ƒ o?| i | d ƒ } | d
 j ob xd d g D]M } | |  i j o g  |  i | <n |  i | i d | | d | f ƒ qAWqT| |  i i ƒ  j oK | |  i j o g  |  i | <n |  i | i d | | d | f ƒ qTxZ|  i i ƒ  D]E}	 d |	 j p d |	 j o%d |	 j o |	 i d ƒ \ }	 } n d } |	 i d ƒ \ } } | d | | i ƒ  f d | | i ƒ  f d | | f d | | f d | d | d | | i ƒ  | f d | | i ƒ  | f g j oY |  i |	 } | |  i j o g  |  i | <n |  i | i d | | d | f ƒ PqLqqWqîqîWqÇW| oÚ d } | d j p | d j o | |  _	 n| | |  i j o |  i | |  _	 nX d | j o | i d ƒ d |  _	 n1 d | j o | i d ƒ d |  _	 n
 | |  _	 | o |  i |  i	 | ƒ qŒ|  i |  i	 ƒ nP| o× g  } x‘ |  i  i ƒ  D]€ } | | j o qZn | i d ƒ oV | i d ƒ oE | i d ƒ o4 | i d	 ƒ o# | i d d ƒ } | i | ƒ qZqZWx«| D]. } | o |  i | | ƒ qå|  i | ƒ qåWnr|  i i ƒ  d } | d j o
 d } n | |  i j o |  i | |  _	 n g  } x³ |  i  i ƒ  D]¢ } | | j o qn | i d ƒ ox | i d ƒ og | i d ƒ oV | i d	 ƒ oE |  i  | i p |  i  | i o# | i d d ƒ } | i | ƒ qqW|  i	 o$ |  i	 | j o | i |  i	 ƒ n x6 | D]. } | o |  i | | ƒ qZ|  i | ƒ qZW| o |  i |  i B} n
 |  i } | o | Sd S(   s‡  
        Build a list of translation packages available in the archive,
        then call findPackages() to find out which packages are not
        installed yet, depending on the languages and packages installed
        on the system.
        If 'language' is supplied, only check for that language.
        If the list 'packages' is supplied, only check for that list of packages.
        i    t    t   #t   :t   trt   waR   s   %ss   -baset   zhs   zh-hanss   zh-hantt   _t   @s   %s-%ss   %s%ss   %s-latns   %slatns   %s-%s-%ss   %s%s%ss   language-pack-s   language-pack-gnomes   language-pack-kdet   en_USN(    R   t   broken_countR   t   langpack_localesR"   R%   t   setR   R!   R   t   openR   t   stript
   startswitht   appendR   t   rstripR(   t
   ValueErrorR   t   findt   keyst   endswitht   replacet   valuest   lowerR1   R   t   getSystemDefaultLanguageR   R   R   (   R   t   languaget   allR*   t   showInstalledt   filter_listR   t   lR)   t   localet   ct   lct   kt   vt   itemR,   t   langcodet   variantt   lcodet   ccodet   pkgcodest   system_langcodet   show(    (    sI   /usr/lib/python2.6/dist-packages/LanguageSelector/CheckLanguageSupport.pyt   getMissingPackagesƒ   s*   	
				  
  **  ! .*  &	  
 
 	N(   R   R   R   R   R1   t   FalseR]   (    (    (    sI   /usr/lib/python2.6/dist-packages/LanguageSelector/CheckLanguageSupport.pyR      s   	rt   __main__t   .t   ars   openoffice.org-commont   fit   firefoxt   thunderbirdN(   t   LanguageSelectort	   ExceptionR   R
   R   R   R   R   t   clR]   t   TrueR   (    (    (    sI   /usr/lib/python2.6/dist-packages/LanguageSelector/CheckLanguageSupport.pyt   <module>   s   
ÿ 7