ó
”™xTc           @   sp   d  d l  m Z d „  Z d „  Z d e f d „  ƒ  YZ d „  Z d „  Z e d k rl e ƒ  e ƒ  d	 GHn  d
 S(   iÿÿÿÿ(   t   divisionc         C   s×   d } d |  k r d } n  |  j  | ƒ } g  } x  | D]˜ } | j  d ƒ } t | ƒ d k sd t ‚ t | ƒ d k r  | j t | d ƒ t | d ƒ g ƒ n  t | ƒ d k r7 | j t | d ƒ g ƒ q7 q7 W| S(   Nt    t   ,t   -i   i    i   (   t   splitt   lent   AssertionErrort   appendt   int(   t   txtt   splittert
   txt_rangest   rangest   ranget   tmp(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt   range_parser   s    	*!c         C   s‰   g  } x| |  D]t } t  | ƒ d k r9 | j | d ƒ n  t  | ƒ d k r x3 t | d | d d ƒ D] } | j | ƒ qg Wq q W| S(   Ni   i    i   (   R   R   t   xrange(   R   t   resultt   itemt   ii(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt   range_to_list   s    "t   serial_file_name_handlerc           B   s;   e  Z d  d „ Z d „  Z d d „ Z d „  Z d „  Z RS(   t   #c         C   s4   | |  _  | |  _ |  j ƒ  \ |  _ |  _ |  _ d  S(   N(   t   user_base_namet   wildcardt   process_user_inputt   baset	   extensiont   n(   t   selft	   base_nameR   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt   __init__   s    		c         C   så   t  } t  } d } d } d } x’ |  j D]‡ } | sk | |  j k rL t } n  | sk | sh | | 7} qh qk n  | rœ | d 7} | |  j k rœ t  } t } qœ n  | r( | | 7} q( q( Wt | ƒ d k rÎ | } n
 | d } | | | f S(   Nt    i    i   (   t   FalseR   R   t   TrueR   (   R   t	   at_serialt   at_extensiont   p1t   p3R   R   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyR   #   s.    	
	
i   c         C   s3   t  | ƒ } |  j |  j t | ƒ d | |  j S(   Nt   0(   t   strR   R   R   R   (   R   t	   serial_idt   id(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt   name_from_number>   s    c         C   s1   g  } x$ | D] } | j  |  j | ƒ ƒ q W| S(   N(   R   R+   (   R   t
   range_listR   R*   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt   names_from_range_listB   s    c         C   s+   g  } t  t | ƒ ƒ } |  j | ƒ } | S(   N(   R   R   R-   (   R   t	   range_txtR   R,   (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt   names_from_rangeH   s    (   t   __name__t
   __module__R   R   R+   R-   R/   (    (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyR      s
   		c          C   s#  d }  t  |  ƒ } | j d k s' t ‚ | j d k s< t ‚ | j d k sQ t ‚ | j d ƒ d k sl t ‚ d }  t  |  ƒ } | j d k s“ t ‚ | j d	 k s¨ t ‚ | j d k s½ t ‚ | j d ƒ d
 k sØ t ‚ d }  t  |  ƒ } | j d	 k sÿ t ‚ | j d k st ‚ | j d k s)t ‚ | j d ƒ d k sDt ‚ | j d d d g ƒ } | d d k srt ‚ | d d k sˆt ‚ | d d k sžt ‚ t | ƒ d k s¶t ‚ d }  t  |  ƒ } d } | j | ƒ } | d d k sót ‚ | d d k s	t ‚ | d d k st ‚ d  S(   Ns   lysozyme_1_####.imgt   lysozyme_1_s   .imgi   i   s   lysozyme_1_0023.imgs   lysozyme_1.####s   lysozyme_1.R    s   lysozyme_1.0023s   ######.lysozyme_1.imgs   .lysozyme_1.imgi   s   000023.lysozyme_1.imgi   i   i   i    s   000001.lysozyme_1.imgs   000002.lysozyme_1.imgs   000003.lysozyme_1.imgs   1-3(	   R   R   R   R   R   R+   R-   R   R/   (   R   t   objt   lstR.   t	   name_list(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt   tst_file_namesP   s<    c          C   sþ   d }  t  t |  ƒ ƒ } d d d d d d d d	 d
 d d d d d d g } x/ t | | ƒ D] \ } } | | k s[ t ‚ q[ Wd }  t  t |  ƒ ƒ } d d d d d d d d	 d
 d d d d d d g } x/ t | | ƒ D] \ } } | | k sØ t ‚ qØ Wd  S(   Ns   1-9,10,11,13-16i   i   i   i   i   i   i   i   i	   i
   i   i   i   i   i   s   1-9 10 11 13-16(   R   R   t   zipR   (   R.   R   t   tstR   t   jj(    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt
   tst_rangest   s    33t   __main__t   OKN(	   t
   __future__R    R   R   t   objectR   R6   R:   R0   (    (    (    s:   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ranges.pyt   <module>   s   		3	$	