ó
:ŁDTc           @  s  d  d l  m Z d  d l Z 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 6d d 6d d 6d d 6Z d a e	 e j
    Z e j   e	 e	 e e    d  Z e j d d  d! d" g  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/ 6d0 d1 6Z d2   Z d3   Z d4   Z d5   Z d6 d7 d8 d6 i d9 d: 6d;  Z d<   Z  d=   Z! d>   Z" d?   Z# e$ d@ k r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  ss   t  j d |   } | s | St | j d   d k  rP d | j d d  } n d | j d  } t j | |  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.7/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  s  |  d k r d d g S|  d k r[ | d k r5 d g S| d k rK d d g Sd d d g Sn©|  d k rĻ | d k r} d d g S| d k r d g S| d k r£ d g S| d k r¼ d d d g Sd d d d g Sn5|  d k rb| d k rō d d d g S| d k rd g S| d k rd d g S| d k r0d g S| d k rLd d d d g Sd d d d d g Sn¢ |  d k r| d k rd d d d g S| d k rd g S| d k r¶d d d g S| d k rĢd d g S| d k rėd d d d d g Sd 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.7/dist-packages/lsb_release.pyt   valid_lsb_versionsG   sV    




c       
   C  s£  t  j j   }  d |  d <t j d d d d g t j   d |  d t j d	 t j d
 t j	   d j
 d  } | sy g  St   } x| j t  j  D]š } | s„ Pn  | j d d  \ } } t 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 |	  qVWqę Wq Wt |  } | j   | 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.7/dist-packages/lsb_release.pyt   check_modules_installed   s>     
"			




R&   RL   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(   NR0   t   =i   i   (   R7   t   lent	   longnames(   t   datat   retvalt   bitst   bitt   kvt   kRL   (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   parse_policy_line®   s    c         C  sM   |  d j  d  } | rI | t k rB t t t  t j |   S| Sn  d S(   Ni   RP   i    (   R   t   RELEASES_ORDERR   RW   t   index(   t   xRP   (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   release_index¹   s    c         C  sc   t  j d t d d t |   } t |  } y | | SWn" t k
 r^ | | k | | k  SXd  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.7/dist-packages/lsb_release.pyt   compare_releaseĀ   s    c       
   C  s  g  }  t  j j   } d | d <t j d d g d | d t j d t j d t j   d	 j d
  } x© | j	 d  D] } | j
   } t j d |  } | r· t | j d   } n  | j d  ru | j	 d d  } t |  d k r|  j | 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.7/dist-packages/lsb_release.pyt   parse_apt_policyĢ   s$     
		't   Debiant   maint   experimentals   ftp.debian-ports.orgs   Debian Portsc         C  sG  t    } | s d  Sg  | D]± } | d j d d  |  k rt | d j d d  | k rt | d j d d  | k sÅ | d j d d  | k r | d j d d  | j | d j d d   k r | ^ q } | sŪ d  S| j d d   d t  | d	 d	 } g  | D] } | d	 | k r	| ^ q	} | j d t  | d	 d S(
   Ni   RN   t    RR   RT   t   keyc         S  s   |  d S(   Ni    (    (   t   tuple(    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   <lambda>ö   s    t   reversei    (   Rr   t   NoneR   RC   R9   Rc   (   RN   RR   t   ignoresuitesRT   t   alternate_olabelst   releasesRb   t   max_priority(    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   guess_release_from_aptį   s     	A)c       
   C  sŽ  i  }  d |  d <t  j j d d  } t  j j |  r’ y t |  y } xo | D]g } yM | j d d  \ } } | j   } | j   } | d k r¢ | |  d <n  WqP t	 k
 r¶ qP XqP WWd  QXWq’ t
 k
 rū } t d | d	 t |  d
 t j q’ Xn  t  j   d } | d, k r,d | |  d <n@ | d k rId | |  d <n# | d- k rb| |  d <n
 d |  d <d |  |  d <t  j j d d  } t  j j |  rØy+ t |   }	 |	 j   j   }
 Wd  QXWn= t
 k
 r} t d | d	 t |  d
 t j d }
 n X|
 d d !j   sLt |
 d  } |  j i |
 d 6| d 6 qØ|
 j d  r|
 j d  j   j   d k r|
 j d  a n  d  |  d <qØ|
 |  d <n  |  j d  st   } | r| j d!  }
 |
 d" k r(| j d#  d$ k r(| j d%  d& k r(d  }
 | j i d' d( 6 n  |
 r@t |
 d  } n- | j d( d'  }
 |
 d k rgt } n d) } |  j i |
 d 6| d 6 qn  |  j d  r“|  d c d* |  7<n  |  j d  rŚ|  d c d+ |  7<n  |  S(.   NRs   t   IDt   LSB_ETC_DPKG_ORIGINS_DEFAULTs   /etc/dpkg/origins/defaults   : i   t   vendors   Unable to open t   :t   filei    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_versionR   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   R2   R   t   patht   existst   openR7   t   lowerRn   t
   ValueErrort   IOErrort   printt   strt   sysR-   t   unamet   readt   isalphaR   t   updatet   endswitht   rstript   TESTING_CODENAMER   R{   (   t   distinfot   etc_dpkg_origins_defaultt   dpkg_origins_fileRG   t   headert   contentt   msgt   kernt   etc_debian_versiont   debian_versionR   t   codenamet   rinfo(    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   guess_debian_release  sz    
+
$
!
	6	!c          C  s=  i  }  t  j j d d  } t  j j |  r9yĻ t |  ½ } x³ | D]« } | j   } | sd qF n  d | k rv qF n  | j d d  \ } } | j d  rF | d } | j d  rÕ | j	 d  rÕ | d d !} n  | rń | j   |  | <qń qF qF WWd  QXWq9t
 k
 r5} t d	 | d
 t |  d t j q9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   Rn   R7   Ro   R   R   R   R   R   R-   (   R    t   etc_lsb_releaset   lsb_release_fileRG   t   vart   argR„   (    (    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(   NR   R   R   R   (   s   IDs   RELEASEs   CODENAMEs   DESCRIPTION(   R³   R«   R   (   t   lsbinfoRw   R    (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   get_distro_informationu  s    		c           C  s   t  t    t  t    d  S(   N(   R   Rµ   RM   (    (    (    s/   /usr/lib/python2.7/dist-packages/lsb_release.pyt   test  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.7/dist-packages/lsb_release.pyt   <module>   sd   

	5	(				
		[			