ó
qwNc           @   st  d  d l  Z  d  d l Z d  d l Z d  d l Z i
 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 j	 d ƒ Z
 d „  Z y e Wn& e k
 rÜ d  d l Z e j Z n Xd „  Z i 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 k rp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   sB   t  j d |  ƒ } | s | Sd | j d d ƒ } t j | | ƒ 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.7/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   sS  |  d k r d d g S|  d k rE | d k r5 d g Sd d d g Sn|  d k r¹ | d k rg d d g S| d k rz d g S| d k r d g S| d
 k r¦ d d d g Sd d d d g Sn“ |  d k rL| d k rÞ d d d g S| d k rñ d g S| d k rd d g S| d k rd g S| d
 k r6d d d d g Sd 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.7/dist-packages/lsb_release.pyt   valid_lsb_versions8   s:    


c    
      C   s:  t  j d t ƒ }  |  s g  St ƒ  } x÷ |  j t j ƒ D]ã } | j d d ƒ \ } } | j d d ƒ d } x¬ | j d ƒ D]› } t j | ƒ } | sž q} n  | j	 ƒ  } | j
 d ƒ rÓ d | } | j | ƒ q} | d	 } x8 t | | ƒ D]' }	 |	 | d <d | } | j | ƒ qí Wq} Wq9 Wt | ƒ } | j ƒ  | 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.7/dist-packages/lsb_release.pyt   check_modules_installedd   s.    	




R   R5   t   origint   ot   suitet   at	   componentt   ct   labelt   lc         C   s~   i  } |  j  d ƒ } xb | D]Z } | j  d d ƒ } t | ƒ d k r | d  \ } } | t k rv | | t | <qv q q W| S(   NR    t   =i   i   (   R%   t   lent	   longnames(   t   datat   retvalt   bitst   bitt   kvt   kR5   (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   parse_policy_line†   s    c          C   sÅ   g  }  t  j d ƒ } x© | j d ƒ D]˜ } | j ƒ  } t j d | ƒ } | rg t | j d ƒ ƒ } n  | j d ƒ r% | j d d ƒ } t	 | ƒ d k r½ |  j
 | 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.7/dist-packages/lsb_release.pyt   parse_apt_policy‘   s    't   Debiant   maint   experimentalc         C   sª   t  ƒ  } | s d  Sg  | D]` } | d j d d ƒ |  k r | d j d d ƒ | k r | d j d d ƒ | k r | ^ q } | sŠ d  S| j ƒ  | j ƒ  | d d S(   Ni   R7   t    R;   R=   i    (   RO   t   NoneR   R-   t   reverse(   R7   R;   t   ignoresuitesR=   t   releasest   x(    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   guess_release_from_apt¡   s    	(

c          C   sO  i d d 6}  t  j ƒ  d } | d k r: d | |  d <n' | d	 k rW d
 | |  d <n
 d |  d <d |  |  d <t  j j d ƒ rny t d ƒ j ƒ  j ƒ  } Wn2 t k
 rÑ } t j	 d It
 | ƒ IJd } n X| d d !j ƒ  st | d ƒ } |  j i | d 6| d 6ƒ qn| j d ƒ ra| j d ƒ j ƒ  j ƒ  d k rT| j d ƒ a n  d |  d <qn| |  d <n  t ƒ  } | rÿ|  j d ƒ rÿ| j d ƒ } | r´t | d ƒ } n- | j d d ƒ } | d k rÛt } n d } |  j i | d 6| d 6ƒ n  |  j d ƒ r%|  d c d |  7<n  |  j d ƒ rK|  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_CODENAMERY   R   (   t   distinfot   kernR   t   msgt   codenamet   rinfo(    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   guess_debian_release»   sJ    

!
		c          C   s  i  }  t  j j d ƒ ryº x³ t d ƒ D]¥ } | j ƒ  } | sF q( n  d | k rX q( n  | j d d ƒ \ } } | j d ƒ r( | d } | j d ƒ r· | j d ƒ r· | d d !} n  | rÍ | |  | <qÍ q( q( WWqt k
 r } t	 j
 d It | ƒ IJqXn  |  S(	   Ns   /etc/lsb-releaseR?   i   t   DISTRIB_i   t   "iÿÿÿÿs    Unable to open /etc/lsb-release:(   R&   Rh   Ri   Rj   RI   R%   RK   Rr   Rl   Rm   Rn   Ro   (   Rv   R0   t   vart   argRx   (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   get_lsb_informationù   s&    
 c          C   sH   t  ƒ  }  x8 d D], } | |  k r t ƒ  } | j |  ƒ | Sq W|  Sd  S(   NRZ   Rb   Rc   Ra   (   s   IDs   RELEASEs   CODENAMEs   DESCRIPTION(   R€   R{   Rq   (   t   lsbinfot   keyRv   (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   get_distro_information  s    		c           C   s   t  ƒ  GHt ƒ  GHd  S(   N(   Rƒ   R6   (    (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   test  s    t   __main__(   Rm   R!   R&   R
   R   Ru   RT   R   R#   t   compileR(   R   R$   t	   NameErrort   setst   SetR6   RA   RH   RO   RY   R{   R€   Rƒ   R„   t   __name__(    (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   <module>   sL   
		%				>			