ó
ČMc           @   s3  d  d l  Z  e  j d  Z i d d 6d d 6d d 6d d 6d	 d	 6d	 d 6d d 6Z e  j d
  Z e d  Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z i  Z xy e d  D]k Z e e  Z e d k rá d  e e <qś e j   rú d e e <qś e j   re e e <qś e d e e <qś Wd  d l Td S(   i˙˙˙˙Ns!   (?:([0-9]+):)?(.+?)(?:-([^-]+))?$t   =t   <s   <<t   >s   >>s   <=s   >=s    *([<>=]+) *c         C   sť   |  j  d  } | d k r¤ |  j  d  } t j |  | d | !j    } t |  } | d k r |  |  j   | j | d  | d f S|  |  j   d  d  f Sn |  j   d  d  f Sd  S(   Nt   (i˙˙˙˙t   )i   i   i   (   t   findt   SPLITREt   splitt   stript   lent   gett   None(   t   strt   cmt   opent   closet   tokst   l(    (    s=   /usr/lib/python2.7/dist-packages/smart/backends/deb/debver.pyt   parserelation   s     (c         C   s   g  } xx |  j  d  D]g } | j  d  } t |  d k rW | j t | d   q | j g  | D] } t |  ^ qd  q W| S(   Nt   ,t   |i   i    (   R   R	   t   appendR   (   R   t   rett   descrt   groupt   x(    (    s=   /usr/lib/python2.7/dist-packages/smart/backends/deb/debver.pyt   parserelations,   s    *c         C   s;   |  j  d  } | d k r% |  d  f S|  |  |  | d f S(   Nt   -i˙˙˙˙i   (   t   rfindR   (   t   vt   slash(    (    s=   /usr/lib/python2.7/dist-packages/smart/backends/deb/debver.pyt   splitrelease6   s    
c         C   sI   t  |  |  } | d k r% d | k S| d k  r; d | k Sd | k Sd  S(   Ni    R    R   R   (   t   vercmp(   t   s1t   relt   s2t   cmp(    (    s=   /usr/lib/python2.7/dist-packages/smart/backends/deb/debver.pyt   checkdep<   s    

c         C   s,   t  t j |   j   t j |  j     S(   N(   t   vercmppartst   VERREt   matcht   groups(   R!   R#   (    (    s=   /usr/lib/python2.7/dist-packages/smart/backends/deb/debver.pyR    E   s    c         C   sC   t  |  |  } | s? t  | |  } | s? t  | |  } q? n  | S(   N(   t
   vercmppart(   t   e1t   v1t   r1t   e2t   v2t   r2t   rc(    (    s=   /usr/lib/python2.7/dist-packages/smart/backends/deb/debver.pyR&   L   s    c   	      C   sć  |  | k r d S|  s4 | r0 | d d k r0 d Sd S| sX |  rT |  d d k rT d Sd Sd } d } t  |   } t  |  } xç| | k  re| | k  red } x | | k r-| | k r-|  | j   sÚ | | j   r-t |  | } t | | } | | k rd S| | k  rd S| d 7} | d 7} q  Wx* | | k rZ|  | d k rZ| d 7} q1Wx* | | k r| | d k r| d 7} q^Wxw | | k r| | k r|  | j   r| | j   r| sęt |  |  t | |  } n  | d 7} | d 7} qW| | k r"|  | j   r"d S| | k rB| | j   rBd S| d k rRd S| d k  r d Sq W| | k r| | k rd S| | k r˛| | k rŽ| | d k rŽd Sd S| | k râ| | k rŢ|  | d k rŢd Sd Sd S(   Ni    t   ~i   i˙˙˙˙t   0(   R	   t   isdigitt   ORDERt   ord(	   t   at   bt   ait   bit   lat   lbt
   first_difft   vcR1   (    (    s=   /usr/lib/python2.7/dist-packages/smart/backends/deb/debver.pyR*   X   sn    "
 !
i   R2   i    (   t   *(   t   ret   compileR'   t   CMR   R   R   R   R%   R    R&   R*   R5   t   ranget   it   chrt   cR4   t   isalphat   cdebver(    (    (    s=   /usr/lib/python2.7/dist-packages/smart/backends/deb/debver.pyt   <module>   s,   	
						9