Ñò
¯Qc           @  s  d  d k  l Z d  d k Z 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 6d d 6d d 6d d 6Z d a e	 e i
 ƒ  ƒ Z e i ƒ  e	 e	 e e Œ  ƒ d ƒ Z e i d d  d! d" g ƒ 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/ 6d0 d1 6Z d2 „  Z d3 „  Z d4 „  Z d5 „  Z d6 d7 d8 d6 h d9 d: 6d; „ Z d< „  Z  d= „  Z! d> „  Z" d? „  Z# e$ d@ j o e# ƒ  n d S(A   iÿÿÿÿ(   t   print_functionNt   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.0t   squeezes   6.0t   wheezyt   7t   jessiet   8s   unknown.new.testingi   t   stablet   testingt   unstablet   sidc         C  sw   t  i d |  ƒ } | p | St | i d ƒ ƒ d j  o d | i d d ƒ } n d | i d ƒ } t i | | ƒ S(   Ns   (\d+)\.(\d+)(r(\d+))?i   i   s   %s.%si   s   %s(   t   ret   matcht   intt   groupt   RELEASE_CODENAME_LOOKUPt   get(   t   releaset   unknownt   mt   shortrelease(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   lookup_codename7   s    s`   lsb-core lsb-cxx lsb-graphics lsb-desktop lsb-languages lsb-multimedia lsb-printing lsb-securitysI   lsb-(?P<module>[a-z0-9]+)-(?P<arch>[^ ]+)(?: \(= (?P<version>[0-9.]+)\))?c         C  s5  |  d j o d d g S|  d j o> | d j o d g S| d j o d 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 SnN|  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¯ |  d j o¡ | d j o d d d d g S| d j o d g S| d j o d d d g S| d j o d d g S| d j o d d d d d g Sd d d d d d g Sn |  g S(   Ns   3.0s   2.0s   3.1t   desktopt   qt4t   cxxs   3.2t   printingt	   languagest
   multimedias   4.0t   securitys   4.1(   R   R    (   R"   R#   R$   (   R"   R#   R$   (   R"   R#   R$   (    (   t   versiont   module(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   valid_lsb_versionsG   sV    c       
   C  s«  t  i i ƒ  }  d |  d <t i d d d d g t i ƒ  d |  d t i d	 t i d
 t ƒi	 ƒ  d i
 d ƒ } | p g  St ƒ  } x
| i t  i ƒ D]ö } | p Pn | i d d ƒ \ } } t 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(   Nt   Ct   LC_ALLs
   dpkg-querys   -fs   ${Version} ${Provides}
s   -Wt   envt   stdoutt   stderrt	   close_fdsi    s   utf-8t    i   s   [-+~]t   ,R&   s   %(module)s-%(version)s-%(arch)sR'   (   t   ost   environt   copyt
   subprocesst   Popent   PACKAGESt   splitt   PIPEt   Truet   communicatet   decodet   sett   linesepR   t	   modnameret   searcht	   groupdictR   t   addR(   t   listt   sort(   t   C_envt   outputt   modulest   lineR&   t   providest   pkgt   mobt   mgroupsR'   t   v(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   check_modules_installedƒ   sD     
"			  

 


R&   RL   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(   NR0   t   =i   i   (   R7   t   lent	   longnames(   t   datat   retvalt   bitst   bitt   kvt   kRL   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   parse_policy_line®   s     c         C  sQ   |  d i  d ƒ } | o3 | t j o t t t ƒ t i | ƒ ƒ S| Sn d S(   Ni   RP   i    (   R   t   RELEASES_ORDERR   RW   t   index(   t   xRP   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   release_index¹   s    c         C  se   t  i d t d d ƒt |  ƒ } t | ƒ } y | | SWn$ t j
 o | | j | | j  SXd  S(   Ns^   compare_release(x,y) is deprecated; please use the release_index(x) as key for sort() instead.t
   stackleveli   (   t   warningst   warnt   DeprecationWarningRc   t	   TypeError(   Rb   t   yt	   suite_x_it	   suite_y_i(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   compare_releaseÂ   s    c       
   C  s  g  }  t  i i ƒ  } d | d <t i d d g d | d t i d t i d t ƒi ƒ  d	 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qu qu W|  S(   NR)   R*   s	   apt-cachet   policyR+   R,   R-   R.   i    s   utf-8s   
s   (-?\d+)i   R   R/   (   R1   R2   R3   R4   R5   R8   R9   R:   R;   R7   t   stripR   R   R   R   t
   startswithRW   t   appendR_   (   RY   RD   Rm   RG   R   t   priorityR[   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   parse_apt_policyÌ   s&     
		 )t   Debiant   maint   experimentals   ftp.debian-ports.orgs   Debian Portsc   
      C  si  t  ƒ  } | p d  Sg  } | D]» } | d i d d ƒ |  j o: | d i d d ƒ | j o | d i d d ƒ | j pS | d i d d ƒ | j oA | d i d d ƒ | i | d i d d ƒ ƒ j o | | q  q  ~ } | p d  S| i d d „  d t ƒ | d	 d	 } g  }	 | D]" } | d	 | j o |	 | q"q"~	 } | i d t ƒ | d	 d S(
   Ni   RN   t    RR   RT   t   keyc         S  s   |  d  S(   i    (    (   t   tuple(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   <lambda>ö   s    t   reversei    (   Rr   t   NoneR   RC   R9   Rc   (
   RN   RR   t   ignoresuitesRT   t   alternate_olabelst   releasest   _[1]Rb   t   max_priorityt   _[2](    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   guess_release_from_aptá   s     	J6c    	      C  s   h d d 6}  t  i ƒ  d } | d( j o d | |  d <nE | d	 j o d
 | |  d <n& | d) j o | |  d <n d |  d <d |  |  d <t  i i d d ƒ } t  i i | ƒ o$y? t | ƒ i i ƒ  } z | ~ } | i	 ƒ  i
 ƒ  } Wd  QXWn? t j
 o3 } t d | d t | ƒ d t i ƒd } 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 |  i d ƒ pâ t ƒ  } | oÎ | i d ƒ } | d j oJ | i d ƒ d  j o4 | i d! ƒ d" j o d  } | i h d# d$ 6ƒ n | o t | d ƒ } n0 | i d$ d# ƒ } | d j o
 t } n d% } |  i h | d 6| d 6ƒ qÌn |  i d ƒ o |  d c d& |  7<n |  i d ƒ o |  d c d' |  7<n |  S(*   NRs   t   IDi    t   Linuxt   Hurdt   NetBSDs   GNU/t   OSt   FreeBSDs   GNU/ks	   GNU/Linuxs   GNU/kFreeBSDt   GNUs   %(ID)s %(OS)st   DESCRIPTIONt   LSB_ETC_DEBIAN_VERSIONs   /etc/debian_versions   Unable to open t   :t   fileR   i   s   n/at   RELEASEt   CODENAMEs   /sidR   s   testing/unstableR&   s   1.0RN   s   Debian PortsRT   s   ftp.debian-ports.orgR   RP   R   s    %(RELEASE)ss    (%(CODENAME)s)(   R„   R…   R†   (   s	   GNU/Linuxs   GNU/kFreeBSD(   R1   t   unameR2   R   t   patht   existst   opent   __exit__t	   __enter__t   readRn   t   IOErrort   printt   strt   sysR-   t   isalphaR   t   updatet   endswitht   rstript   lowert   TESTING_CODENAMER‚   R{   (	   t   distinfot   kernt   etc_debian_versionR   t   debian_versionR   t   msgt   codenamet   rinfo(    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   guess_debian_release  sZ    
#$"
	9
#c          C  s`  h  }  t  i i d d ƒ } t  i i | ƒ o.yî t | ƒ i i ƒ  } zÎ | ~ } x¾ | D]¶ } | i ƒ  } | p q[ n d | j o q[ n | i	 d d ƒ \ } } | i
 d ƒ oZ | d } | i
 d ƒ o! | i d ƒ o | d d !} n | o | i ƒ  |  | <qq[ q[ WWd  QXWq\t j
 o- } t d	 | d
 t | ƒ d t i ƒq\Xn |  S(   Nt   LSB_ETC_LSB_RELEASEs   /etc/lsb-releaseRV   i   t   DISTRIB_i   t   "iÿÿÿÿs   Unable to open RŒ   R   (   R1   R2   R   R‘   R’   R“   R”   R•   Rn   R7   Ro   R   R—   R˜   R™   Rš   R-   (   R¡   t   etc_lsb_releaseR   t   lsb_release_fileRG   t   vart   argR¥   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   get_lsb_informationJ  s,    # 
 &-c          C  sJ   t  ƒ  }  x: d D]. } | |  j o t ƒ  } | i |  ƒ | Sq W|  Sd  S(   NRƒ   RŽ   R   RŠ   (   s   IDs   RELEASEs   CODENAMEs   DESCRIPTION(   R°   R¨   Rœ   (   t   lsbinfoRw   R¡   (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   get_distro_informationc  s    	 		c           C  s   t  t ƒ  ƒ t  t ƒ  ƒ d  S(   N(   R˜   R²   RM   (    (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   testn  s    t   __main__(%   t
   __future__R    Rš   R4   R1   R   Re   R   R    RB   t   itemsR`   RC   t   zipt   extendR{   R   R6   t   compileR>   R(   R<   t	   NameErrort   setst   SetRM   RX   R_   Rc   Rl   Rr   R‚   R¨   R°   R²   R³   t   __name__(    (    (    s/   /usr/lib/python2.6/dist-packages/lsb_release.pyt   <module>   sd   

	5	(				
		I			