ó
gbc           @   s+   d  Z  d d l Z d d  Z d   Z d S(   sl   
obitools.table.csv module provides an iterator adapter
allowing to parse csv (comma separatted value) file
i˙˙˙˙Nt   ,c            sc   t  |  d k r+ | j   r+ | d k s1 t  t j d | | f      f d   } |   S(   sü  
    Allows easy parsing of a csv file. This function
    convert an iterator on line over a csv text file
    in an iterator on data list. Each list corresponds
    to all values present n one line.
    
    @param lineIterator: iterator on text lines
    @type lineIterator: iterator
    @param sep: string of one letter used as separator
                blank charactere or " is not allowed as
                separator
    @type sep: string
    @return: an iterator on data list
    @rtype: iterator
    i   t   "s(   \s*((")(([^"]|"")*)"|([^%s]*?))\s*(%s|$)c          3   s#   x   D] }  t  |    Vq Wd  S(   N(   t	   _csvParse(   t   l(   t   lineIteratort   valueMatcher(    s1   lib/python2.7/site-packages/obitools/table/csv.pyt   iterator   s    (   t   lent   isspacet   AssertionErrort   ret   compile(   R   t   sepR   (    (   R   R   s1   lib/python2.7/site-packages/obitools/table/csv.pyt   csvIterator   s    1c         C   sÝ   g  } t  | j |    } | j   } | d rŮ xa | d d k r | d d k rt | j | d j d d   n | j | d  | j   } q4 W| d d k rĹ | j | d j d d   qŮ | j | d  n  | S(   Ni    i˙˙˙˙t    i   R   i   s   ""(   t   itert   findallt   nextt   appendt   replace(   t   lineR   t   datat   it   m(    (    s1   lib/python2.7/site-packages/obitools/table/csv.pyR       s    
  (   t   __doc__R
   R   R   (    (    (    s1   lib/python2.7/site-packages/obitools/table/csv.pyt   <module>   s   