ó
}k^c           @   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   python2:any (>= 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- t  |  j ƒ D] } | j |  j d | ƒ q Wx- t  |  j ƒ D] } | j |  j d | ƒ q@ Wx- t  |  j ƒ D] } | j |  j d | ƒ qp Wx- t  |  j ƒ D] } | j |  j d | ƒ q  Wx- t  |  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(
   t   sortedR	   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 d | ƒ qü Wx| d j	 ƒ  D]
\ }
 } t
 d „  | j d g  ƒ Dƒ ƒ } xD | D]< } | t k r‰|  j d | ƒ qct  j d t | ƒ ƒ qcWt d „  | j d g  ƒ Dƒ ƒ rÕ|  j d ƒ n  | j d t ƒ r.|  j t ƒ d } | j } t | ƒ d
 k r0| d t | d ƒ 7} n¾ | rî| d t | ƒ 7} | d k rY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 | ƒ qcWqP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   python2-dbgt   python2i    iÿÿÿÿs   %s (>= %d.%d)i   s   %s (<< %d.%d)t   compilet   shebangss   %s:anyt   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.%d:anysJ   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    s   python2:anyt    s   -V %ss   python%s:anys   python2:any (>= %s)s   python:any (<< %d.%d)s    -X '%s't   's   '\''s   requires.txt(   NN(    t   logt   debugR   R   t   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
   (