Ñò
®â¨Jc           @   sx  d  d k  Z  d  d k Z d  d k Z d  d k Z h
 d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6d d 6d d 6d d 6Z d a d d „ Z d Z e i	 d ƒ Z
 d „  Z y e Wn( e j
 o d  d k Z e i Z n Xd „  Z h d d 6d d 6d  d! 6d" d# 6d$ d% 6Z d& „  Z d' „  Z d( d) d* d( d+ „ Z d, „  Z d- „  Z d. „  Z d/ „  Z e d0 j o e ƒ  n d S(1   iÿÿÿÿNt   buzzs   1.1t   rexs   1.2t   bos   1.3t   hamms   2.0t   slinks   2.1t   potatos   2.2t   woodys   3.0t   sarges   3.1t   etchs   4.0t   lennys   5.0s   unknown.new.testingc         C   sD   t  i d |  ƒ } | p | Sd | i d d ƒ } t i | | ƒ S(   Ns   (\d+)\.(\d+)(r(\d+))?s   %s.%si   i   (   t   ret   matcht   groupt   RELEASE_CODENAME_LOOKUPt   get(   t   releaset   unknownt   mt   shortrelease(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   lookup_codename+   s
    s[   lsb-core lsb-cxx lsb-graphics lsb-desktop lsb-qt4 lsb-languages lsb-multimedia lsb-printingsI   lsb-(?P<module>[a-z0-9]+)-(?P<arch>[^ ]+)(?: \(= (?P<version>[0-9.]+)\))?c         C   so  |  d j o d d g S|  d j o& | d j o d g Sd d d g Sn|  d j oq | d j o d d g S| d j o d g S| d j o d g S| d
 j o d d d g Sd d d d g Sn  |  d j o’ | d j o d d d g S| d j o d g S| d j o d d g S| d j o d g S| d
 j o d d d d g Sd d d d d g Sn |  g S(   Ns   3.0s   2.0s   3.1t   desktopt   qt4s   3.2t   printingt	   languagest
   multimediat   cxxs   4.0t   security(   R   R   (   R   R   R   (   R   R   R   (    (   t   versiont   module(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   valid_lsb_versions8   s:    c    
      C   s@  t  i d t ƒ }  |  p g  St ƒ  } xû |  i t i ƒ D]ç } | i d d ƒ \ } } | i d d ƒ d } x° | i d ƒ D]Ÿ } t i | ƒ } | p q n | i	 ƒ  } | i
 d ƒ o d | } | i | ƒ q | d	 } x8 t | | ƒ D]' }	 |	 | d <d | } | i | ƒ qó Wq Wq; Wt | ƒ } | i ƒ  | S(
   Ns9   dpkg-query -f '${Version} ${Provides}
' -W %s 2>/dev/nullt    i   t   -i    t   ,R   s   %(module)s-%(version)s-%(arch)sR   (   t   commandst	   getoutputt   PACKAGESt   sett   splitt   ost   linesept	   modnameret   searcht	   groupdictR   t   addR   t   listt   sort(
   t   outputt   modulest   lineR   t   providest   pkgt   mobt   mgroupsR   t   v(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   check_modules_installedd   s4    	  

 


R   R5   t   origint   ot   suitet   at	   componentt   ct   labelt   lc         C   s‚   h  } |  i  d ƒ } xf | D]^ } | i  d d ƒ } t | ƒ d j o3 | d  \ } } | t j o | | t | <qz q q W| S(   NR    t   =i   i   (   R%   t   lent	   longnames(   t   datat   retvalt   bitst   bitt   kvt   kR5   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   parse_policy_line†   s     c          C   sË   g  }  t  i d ƒ } x¯ | i d ƒ D]ž } | i ƒ  } t i d | ƒ } | o t | i d ƒ ƒ } n | i d ƒ oJ | i d d ƒ } t	 | ƒ d j o! |  i
 | t | d ƒ f ƒ qÃ q% q% W|  S(   Ns#   LANG=C apt-cache policy 2>/dev/nulls   
s   (\d+)i   R   R   (   R!   R"   R%   t   stripR
   R   t   intR   t
   startswithR@   t   appendRH   (   RB   t   policyR0   R   t   priorityRD   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   parse_apt_policy‘   s     )t   Debiant   maint   experimentalc         C   s½   t  ƒ  } | p d  Sg  } | D]h } | d i d d ƒ |  j oE | d i d d ƒ | j o( | d i d d ƒ | j o | | q  q  ~ } | p d  S| i ƒ  | i ƒ  | d d S(   Ni   R7   t    R;   R=   i    (   RO   t   NoneR   R-   t   reverse(   R7   R;   t   ignoresuitesR=   t   releasest   _[1]t   x(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   guess_release_from_apt¡   s    	1

c       	   C   sh  h d d 6}  t  i ƒ  d } | d j o d | |  d <n* | d	 j o d
 | |  d <n d |  d <d |  |  d <t  i i d ƒ oö y t d ƒ i ƒ  i ƒ  } Wn4 t j
 o( } t i	 d It
 | ƒ IJd } n X| d d !i ƒ  p. t | d ƒ } |  i h | d 6| d 6ƒ q|| i d ƒ oC | i d ƒ i ƒ  i ƒ  d j o | i d ƒ a n d |  d <q|| |  d <n t ƒ  } | oˆ |  i d ƒ ow | i d ƒ } | o t | d ƒ } n0 | i d d ƒ } | d j o
 t } n d } |  i h | d 6| d 6ƒ n |  i d ƒ o |  d c d |  7<n |  i d ƒ o |  d c d |  7<n |  S(   NRP   t   IDi    t   Linuxt   Hurdt   NetBSDs   GNU/t   OSt   FreeBSDs   GNU/kt   GNUs   %(ID)s %(OS)st   DESCRIPTIONs   /etc/debian_versions#   Unable to open /etc/debian_version:R   i   s   n/at   RELEASEt   CODENAMEs   /sidt   testings   testing/unstableR   R9   t   unstablet   sids    %(RELEASE)ss    (%(CODENAME)s)(   R\   R]   R^   (   R&   t   unamet   patht   existst   opent   readRI   t   IOErrort   syst   stderrt   strt   isalphaR   t   updatet   endswitht   rstript   lowert   TESTING_CODENAMERZ   R   (   t   distinfot   kernR   t   msgt   codenamet   rinfo(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   guess_debian_release»   sJ    
"
	
c       	   C   s  h  }  t  i i d ƒ oú yÅ x¾ t d ƒ D]° } | i ƒ  } | p q) n d | j o q) n | i d d ƒ \ } } | i d ƒ oT | d } | i d ƒ o! | i d ƒ o | d d !} n | o | |  | <qÙ q) q) WWqt j
 o" } t	 i
 d It | ƒ IJqXn |  S(	   Ns   /etc/lsb-releaseR?   i   t   DISTRIB_i   t   "iÿÿÿÿs    Unable to open /etc/lsb-release:(   R&   Ri   Rj   Rk   RI   R%   RK   Rs   Rm   Rn   Ro   Rp   (   Rw   R0   t   vart   argRy   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   get_lsb_informationù   s(     
 "c          C   sJ   t  ƒ  }  x: d D]. } | |  j o t ƒ  } | i |  ƒ | Sq W|  Sd  S(   NR[   Rc   Rd   Rb   (   s   IDs   RELEASEs   CODENAMEs   DESCRIPTION(   R   R|   Rr   (   t   lsbinfot   keyRw   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   get_distro_information  s    	 		c           C   s   t  ƒ  GHt ƒ  GHd  S(   N(   R„   R6   (    (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   test  s    t   __main__(   Rn   R!   R&   R
   R   Rv   RT   R   R#   t   compileR(   R   R$   t	   NameErrort   setst   SetR6   RA   RH   RO   RZ   R|   R   R„   R…   t   __name__(    (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   <module>   sL   
		%				>			