ó
†™xTc           @   sL   d  d l  m Z d  d l Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   divisionNt   writerc           B   s    e  Z d d  d „ Z d „  Z RS(   t   ,c         C   s~   x0 | D]( } t  | ƒ t  | d ƒ k s t ‚ q W|  j | ƒ } t j | d | ƒ} | rm | j | ƒ n  | j | ƒ d  S(   Ni    t	   delimiter(   t   lent   AssertionErrort
   _iter_rowst   csvR   t   writerowt	   writerows(   t   selft   file_objectt   fieldst   field_namesR   t   fieldt   iter_objectR   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/csv_utils.pyt   __init__   s    &c         c   sG   x@ t  t | d ƒ ƒ D]( } t g  | D] } | | ^ q' ƒ Vq Wd  S(   Ni    (   t   rangeR   t   tuple(   R
   t   argst   it   arg(    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/csv_utils.pyR      s    N(   t   __name__t
   __module__t   NoneR   R   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/csv_utils.pyR      s   	t   readerc           B   s   e  Z d d e d  d „ Z RS(   R   c         C   s`  | d k s | d k s t ‚ | d k r? | d k r? t } n  t j | d | ƒ} g  } xö t | ƒ D]è \ } }	 | d k rt |	 ƒ }
 | d k	 r² t | ƒ |
 k s¿ t ‚ n | g |
 } xH t |
 ƒ D]: } | rè | j g  ƒ qÌ | j | | |	 | ƒ g ƒ qÌ Wt | ƒ }
 qg x3 t |
 ƒ D]% } | | j | | |	 | ƒ ƒ q&Wqg W| |  _	 d S(   sº   Supply a single data_type which is to be applied to all fields,
    or supply a data_type_list containing the type of each field.
    String is the default type if none is supplied.
    R   i    N(
   R   R   t   strR   R   t	   enumerateR   R   t   appendt   data(   R
   R   t	   data_typet   data_type_listR   R   R   R   t   i_rowt   rowt   n_dataR   (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/csv_utils.pyR      s&    
	"'N(   R   R   R   t   FalseR   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/csv_utils.pyR      s   (   t
   __future__R    R   t   objectR   R   (    (    (    s=   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/csv_utils.pyt   <module>   s   