ó
8Nc           @   sy   d  d l  Z  d  d l m Z m Z d  d l m Z m Z m Z m Z m	 Z	 d Z
 e  j e ƒ Z d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   parse_pydept   guess_dependency(   t   DEFAULTt	   SUPPORTEDt	   debsortedt   vreprt
   vrange_strs   python (>= 2.7.1-0ubuntu2)t   Dependenciesc           B   sh   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   s6   Store relations (dependencies, etc.) between packages.c         C   sC   | |  _  g  |  _ g  |  _ g  |  _ g  |  _ g  |  _ g  |  _ d  S(   N(   t   packaget   dependst
   recommendst   suggestst   enhancest   breakst	   rtscripts(   t   selfR   (    (    s&   /usr/share/python/debpython/depends.pyt   __init__#   s    						c         C   sý   x' |  j  D] } | j |  j d | ƒ q
 Wx' |  j D] } | j |  j d | ƒ q4 Wx' |  j D] } | j |  j d | ƒ q^ Wx' |  j D] } | j |  j d | ƒ qˆ Wx' |  j D] } | j |  j d | ƒ q² Wx$ |  j D] } | j |  j | ƒ qÜ Wd S(   s   Fill in debhelper's substvars.s   python:Dependss   python:Recommendss   python:Suggestss   python:Enhancess   python:BreaksN(	   R	   t   addsubstvarR   R
   R   R   R   R   t   add_rtupdate(   R   t   dht   i(    (    s&   /usr/share/python/debpython/depends.pyt	   export_to,   s    c         C   s,   d |  j  |  j |  j |  j |  j |  j f S(   Ns#   D=%s; R=%s; S=%s; E=%s, B=%s; RT=%s(   R	   R
   R   R   R   R   (   R   (    (    s&   /usr/share/python/debpython/depends.pyt   __str__;   s    	c         C   s,   | r( | |  j  k r( |  j  j | ƒ n  d  S(   N(   R	   t   append(   R   t   value(    (    s&   /usr/share/python/debpython/depends.pyt   depend@   s    c         C   s,   | r( | |  j  k r( |  j  j | ƒ n  d  S(   N(   R
   R   (   R   R   (    (    s&   /usr/share/python/debpython/depends.pyt	   recommendD   s    c         C   s,   | r( | |  j  k r( |  j  j | ƒ n  d  S(   N(   R   R   (   R   R   (    (    s&   /usr/share/python/debpython/depends.pyt   suggestH   s    c         C   s,   | r( | |  j  k r( |  j  j | ƒ n  d  S(   N(   R   R   (   R   R   (    (    s&   /usr/share/python/debpython/depends.pyt   enhanceL   s    c         C   s,   | r( | |  j  k r( |  j  j | ƒ n  d  S(   N(   R   R   (   R   R   (    (    s&   /usr/share/python/debpython/depends.pyt   break_P   s    c         C   s&   | |  j  k r" |  j  j | ƒ n  d  S(   N(   R   R   (   R   R   (    (    s&   /usr/share/python/debpython/depends.pyt   rtscriptT   s    c            sY  t  j d |  j ƒ t | d j | d ƒ ƒ } | r|  j j d ƒ } | rT d n d } | d } | d } | r} d	 ‰  n d
 ‰  |  j d j ‡  f d †  t | ƒ Dƒ ƒ ƒ | t	 k rà |  j d | | d | d f ƒ n  | t	 k r|  j d | | d | d d f ƒ qn  | d r2|  j t
 ƒ n  | j sfx( | d D] \ } }	 |  j | ƒ qFWn  x| d j ƒ  D]\ }
 } | j r•g  } n" t d „  | j d g  ƒ Dƒ ƒ } xD | D]< } | t k rä|  j d
 | ƒ q¾t  j d t | ƒ ƒ q¾Wt d „  | j d g  ƒ Dƒ ƒ r0|  j d ƒ n  | j d t ƒ rw|  j t
 ƒ d } | j } t | ƒ d k r‹| d t | d ƒ 7} n£ | r.| d t | ƒ 7} | d | d k r×|  j d t | d ƒ ƒ q.| d rÿ|  j d t | d ƒ ƒ n  | d r.|  j d t | d d ƒ ƒ q.n  x1 | j p=g  D]  } | d | j d d ƒ 7} q>W|  j |
 | f ƒ qwqwW| j rÁx9 | d D]* } x! t | ƒ D] } |  j | ƒ q£WqWn  x* | j pÐg  D] } |  j t | ƒ ƒ qÑWx* | j pýg  D] } |  j t | ƒ ƒ qþWx* | j  p*g  D] } |  j! t | ƒ ƒ q+Wt  j |  ƒ d  S(   Ns&   generating dependencies for package %st   public_verst   exts   -dbgs
   python-dbgt   pythoni    iÿÿÿÿs   python%d.%d-dbgs   python%d.%ds    | c         3   s   |  ] } ˆ  | Vq d  S(   N(    (   t   .0R   (   t   tpl2(    s&   /usr/share/python/debpython/depends.pys	   <genexpr>e   s    s   %s (>= %d.%d)i   s   %s (<< %d.%d)t   compilet   shebangst   private_dirsc         s   s!   |  ] \ } } | r | Vq d  S(   N(    (   R"   R   t   v(    (    s&   /usr/share/python/debpython/depends.pys	   <genexpr>{   s    sJ   dependency on python%s (from shebang) ignored - it's not supported anymorec         s   s'   |  ] \ } } | d  k r t Vq d  S(   N(   t   Nonet   True(   R"   R   R'   (    (    s&   /usr/share/python/debpython/depends.pys	   <genexpr>„   s    t    s   -V %ss   python%ss   python (>= %s)s   python (<< %s)s    -X '%s't   's   '\''s   requires.txt("   t   logt   debugR   t   sortedt   uniont   endswithR   t   joinR   R   t	   MINPYCDEPt   ignore_shebangst	   iteritemst   listt   getR   t   warnR   t   anyt   Falset   vranget   lenR   t   regexprt   replaceR   t
   guess_depsR    R	   R   R
   R   R   R   (   R   t   statst   optionst   pub_verst   dbgpkgt   tplt   minvt   maxvt   interpretert   versiont   private_dirt   detailst   versionsR'   t   argst   vrt   patternt   fnR   t   item(    (   R#   s&   /usr/share/python/debpython/depends.pyt   parseX   sz    

	,		#
			"	"	

%	(   t   __name__t
   __module__t   __doc__R   R   R   R   R   R   R   R   R   RP   (    (    (    s&   /usr/share/python/debpython/depends.pyR       s   										(   t   loggingt   debpython.pydistR    R   t   debpython.versionR   R   R   R   R   R2   t	   getLoggerRQ   R,   t   objectR   (    (    (    s&   /usr/share/python/debpython/depends.pyt   <module>   s
   (