ó
Î0GRc           @   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.6.6-7~)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         C   s  t  j d |  j ƒ t | d j | d ƒ ƒ } | r× |  j j d ƒ } | rT d n d } | d } | d } | t k rŸ |  j d	 | | d | d
 f ƒ n  | t k r× |  j d | | d | d
 d
 f ƒ q× n  | d rñ |  j t ƒ n  x% | d D] \ } }	 |  j | ƒ qü Wx| d j	 ƒ  D]
\ }
 } 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ƒ ƒ rÑ|  j d ƒ n  | j d t ƒ r*|  j t ƒ d } | j } t | ƒ d
 k r,| d t | d ƒ 7} n¾ | rê| d t | ƒ 7} | d k rUqê| d | d
 k r‡|  j d t | d ƒ ƒ qê| d r¯|  j d t | d ƒ ƒ n  | d
 rê|  j d | d
 d | d
 d
 d
 f ƒ qên  x1 | j pùg  D]  } | d | j d d ƒ 7} qúW|  j |
 | f ƒ q*q*W| j r}x9 | d D]* } x! t | ƒ D] } |  j | ƒ q_WqL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   %s (>= %d.%d)i   s   %s (<< %d.%d)t   compilet   shebangst   private_dirsc         s   s!   |  ] \ } } | r | Vq d  S(   N(    (   t   .0R   t   v(    (    s&   /usr/share/python/debpython/depends.pys	   <genexpr>y   s    s   python%d.%dsJ   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 (<< %d.%d)s    -X '%s't   's   '\''s   requires.txt(   NN(    t   logt   debugR   t   sortedt   uniont   endswithR   R   t	   MINPYCDEPt	   iteritemst   listt   getR   t   infoR   t   anyt   Falset   vranget   lenR   R'   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(    (    s&   /usr/share/python/debpython/depends.pyt   parseX   sr    


		#
"	"	

	(	(   t   __name__t
   __module__t   __doc__R   R   R   R   R   R   R   R   R   RM   (    (    (    s&   /usr/share/python/debpython/depends.pyR       s   										(   t   loggingt   debpython.pydistR    R   t   debpython.versionR   R   R   R   R   R0   t	   getLoggerRN   R+   t   objectR   (    (    (    s&   /usr/share/python/debpython/depends.pyt   <module>   s
   (