???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
] ?                 @   s  d  d l  Z  d  d l m Z m Z m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z d  d l m Z d  d l m Z d d d d d	 d
 d d d d d d d d d d d d d d g Z Gd d
   d
  Z Gd d   d e  Z e d e  Gd d   d e  Z e d e  Gd d   d e  Z e d e  Gd  d   d  Z Gd! d   d  Z y e Wn e k
 re Z Yn XGd" d   d  Z d S)#    N)Error__version__writerreaderregister_dialectunregister_dialectget_dialectlist_dialectsfield_size_limitQUOTE_MINIMAL	QUOTE_ALLQUOTE_NONNUMERIC
QUOTE_NONE__doc__)Dialect)StringIOr   r   r   r   r   r   r   excel	excel_tabr
   r   r   r   r   r	   Snifferr   r   
DictReader
DictWriterc               @   s^   e  Z d  Z d Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d d   Z d d   Z d S)r    FNc             C   s&   |  j  t k r d |  _ |  j   d  S)NT)	__class__r   _valid	_validate)self r   (/opt/alt/python35/lib64/python3.5/csv.py__init__)   s    	zDialect.__init__c             C   sL   y t  |   Wn7 t k
 rG } z t t |    WYd  d  } ~ Xn Xd  S)N)_Dialect	TypeErrorr   str)r   er   r   r   r   .   s    zDialect._validate)__name__
__module____qualname___namer   	delimiter	quotecharZ
escapechardoublequoteskipinitialspacelineterminatorquotingr   r   r   r   r   r   r      s   c               @   s4   e  Z d  Z d Z d Z d Z d Z d Z e Z	 d S)r   ,"TFz
N)
r#   r$   r%   r'   r(   r)   r*   r+   r   r,   r   r   r   r   r   5   s   c               @   s   e  Z d  Z d Z d S)r   	N)r#   r$   r%   r'   r   r   r   r   r   ?   s   z	excel-tabc               @   s4   e  Z d  Z d Z d Z d Z d Z d Z e Z	 d S)unix_dialectr-   r.   TF
N)
r#   r$   r%   r'   r(   r)   r*   r+   r   r,   r   r   r   r   r0   D   s   r0   Zunixc               @   sg   e  Z d  Z d d d d d d  Z d d   Z e d d    Z e j d	 d    Z d
 d   Z d S)r   Nr   c             O   sI   | |  _  | |  _ | |  _ t | | | |  |  _ | |  _ d |  _ d  S)Nr   )_fieldnamesrestkeyrestvalr   dialectline_num)r   f
fieldnamesr3   r4   r5   argskwdsr   r   r   r   P   s    				zDictReader.__init__c             C   s   |  S)Nr   )r   r   r   r   __iter__Y   s    zDictReader.__iter__c             C   sP   |  j  d  k r: y t |  j  |  _  Wn t k
 r9 Yn X|  j j |  _ |  j  S)N)r2   nextr   StopIterationr6   )r   r   r   r   r8   \   s    zDictReader.fieldnamesc             C   s   | |  _  d  S)N)r2   )r   valuer   r   r   r8   f   s    c             C   s   |  j  d k r |  j t |  j  } |  j j  |  _  x | g  k rU t |  j  } q7 Wt t |  j |   } t |  j  } t |  } | | k  r | | d   | |  j <n7 | | k r x( |  j | d   D] } |  j | | <q W| S)Nr   )	r6   r8   r<   r   dictziplenr3   r4   )r   rowdZlfZlrkeyr   r   r   __next__j   s    zDictReader.__next__)	r#   r$   r%   r   r;   propertyr8   setterrE   r   r   r   r   r   O   s   	
c               @   sU   e  Z d  Z d d d d d  Z d d   Z d d	   Z d
 d   Z d d   Z d S)r   r   raiser   c             O   sY   | |  _  | |  _ | j   d k r4 t d |   | |  _ t | | | |  |  _ d  S)NrH   ignorez-extrasaction (%s) must be 'raise' or 'ignore')rH   rI   )r8   r4   lower
ValueErrorextrasactionr   )r   r7   r8   r4   rL   r5   r9   r:   r   r   r   r      s    		
	zDictWriter.__init__c             C   s,   t  t |  j |  j   } |  j |  d  S)N)r?   r@   r8   writerow)r   headerr   r   r   writeheader   s    zDictWriter.writeheaderc                sq    j  d k rT  f d d     D } | rT t d d j d d   | D       f d d    j D S)	NrH   c                s%   g  |  ] } |   j  k r |  q Sr   )r8   ).0k)r   r   r   
<listcomp>   s   	 z,DictWriter._dict_to_list.<locals>.<listcomp>z(dict contains fields not in fieldnames: z, c             S   s   g  |  ] } t  |   q Sr   )repr)rP   xr   r   r   rR      s   	 c             3   s$   |  ] }   j  |  j  Vq d  S)N)getr4   )rP   rD   )rowdictr   r   r   	<genexpr>   s    z+DictWriter._dict_to_list.<locals>.<genexpr>)rL   rK   joinr8   )r   rV   Zwrong_fieldsr   )rV   r   r   _dict_to_list   s     zDictWriter._dict_to_listc             C   s   |  j  j |  j |   S)N)r   rM   rY   )r   rV   r   r   r   rM      s    zDictWriter.writerowc             C   s   |  j  j t |  j |   S)N)r   	writerowsmaprY   )r   Zrowdictsr   r   r   rZ      s    zDictWriter.writerowsN)r#   r$   r%   r   rO   rY   rM   rZ   r   r   r   r   r      s   	c               @   sO   e  Z d  Z d d   Z d d d  Z d d   Z d d	   Z d
 d   Z d S)r   c             C   s   d d d d d g |  _  d  S)Nr-   r/   ; :)	preferred)r   r   r   r   r      s    zSniffer.__init__Nc             C   s   |  j  | |  \ } } } } | s< |  j | |  \ } } | sN t d   Gd d   d t  } | | _ | | _ | p d | _ | | _ | S)NzCould not determine delimiterc               @   s"   e  Z d  Z d Z d Z e Z d S)zSniffer.sniff.<locals>.dialectZsniffedz
N)r#   r$   r%   r&   r+   r   r,   r   r   r   r   r5      s   r5   r.   )_guess_quote_and_delimiter_guess_delimiterr   r   r)   r'   r(   r*   )r   sample
delimitersr(   r)   r'   r*   r5   r   r   r   sniff   s    				zSniffer.sniffc             C   s  g  } x@ d D]8 } t  j | t  j t  j B } | j |  } | r Pq W| sS d Si  } i  } d } | j }	 x | D] }
 |	 d d	 } |
 | } | r | j | d  d	 | | <y |	 d
 d	 } |
 | } Wn t k
 r wu Yn X| r| d  k s| | k r| j | d  d	 | | <y |	 d d	 } Wn t k
 rHwu Yn X|
 | ru | d	 7} qu Wt | d | j } | rt | d | j } | | | k } | d k rd } n d } d } t  j d d
 t  j	 |  d | i t  j  } | j
 |  rd } n d } | | | | f S)NF(?P<delim>[^\w
"'])(?P<space> ?)(?P<quote>["']).*?(?P=quote)(?P=delim)C(?:^|
)(?P<quote>["']).*?(?P=quote)(?P<delim>[^\w
"'])(?P<space> ?)D(?P<delim>>[^\w
"'])(?P<space> ?)(?P<quote>["']).*?(?P=quote)(?:$|
)*(?:^|
)(?P<quote>["']).*?(?P=quote)(?:$|
)r   Fr   quote   delimZspacerD   r1   z]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$)T)re   rf   rg   rh   )r   FNr   )recompileDOTALL	MULTILINEfindall
groupindexrU   KeyErrormaxescapesearch)r   datarc   matchesZrestrZregexpZquotesdelimsZspacesrq   mnrD   r(   rk   r*   Z	dq_regexpr)   r   r   r   r`      s`      
	

	%	z"Sniffer._guess_quote_and_delimiterc             C   s  t  t d  | j d    } d d   t d  D } t d t |   } d } i  } i  } i  } d t | t |   }	 }
 x|	 t |  k  r | d 7} xn | |	 |
  D]\ } xS | D]K } | j | i   } | j |  } | j | d  d | | <| | | <q Wq Wx | j   D] } t  | | j	    } t |  d k rb| d d d k rbqt |  d k rt
 | d d	 d
   | | <| j | |  | | d | | d t d d   | D  f | | <q| d | | <qW| j	   } t | |  } d } d } x t |  d k r| | k rxj | D]b \ } } | d d k r=| d d k r=| d | | k r=| d  k s| | k r=| | | <q=W| d 8} qWt |  d k rt  | j    d } | d j |  | d j d |  k } | | f S|
 }	 |
 | 7}
 q W| s+d St |  d k rxW |  j D]L } | | j   k rG| d j |  | d j d |  k } | | f SqGWd d   | j	   D } | j   | d d } | d j |  | d j d |  k } | | f S)Nr1   c             S   s   g  |  ] } t  |   q Sr   )chr)rP   cr   r   r   rR   ,  s   	 z,Sniffer._guess_delimiter.<locals>.<listcomp>   
   r   rj   rD   c             S   s   |  d S)Nrj   r   )rT   r   r   r   <lambda>F  s    z*Sniffer._guess_delimiter.<locals>.<lambda>c             s   s   |  ] } | d  Vq d S)rj   Nr   )rP   itemr   r   r   rW   K  s    z+Sniffer._guess_delimiter.<locals>.<genexpr>g      ?g?g{Gz?z%c r   c             S   s"   g  |  ] \ } } | | f  q Sr   r   )rP   rQ   vr   r   r   rR   u  s   	 )r   r   )listfiltersplitrangeminrA   rU   countkeysitemsrs   removesumfloatr_   sort)r   rv   rc   asciiZchunkLengthZ	iterationZcharFrequencyZmodesrx   startendlinecharZmetaFrequencyZfreqr   ZmodeListtotalZconsistencyZ	thresholdrQ   r   rk   r*   rC   r   r   r   ra     st    
&$! 

zSniffer._guess_delimiterc             C   s  t  t |  |  j |   } t |  } t |  } i  } x t |  D] } d  | | <qI Wd } x | D] } | d k r} P| d 7} t |  | k r qj x t | j    D] }	 xU t t	 t
 g D]4 }
 y |
 | |	  PWq t t f k
 r Yq Xq Wt | |	  }
 |
 | |	 k r | |	 d  k r:|
 | |	 <q | |	 =q Wqj Wd } x | j   D] \ }	 } t |  t d  k rt | |	  | k r| d 7} q| d 8} q\y | | |	  Wn" t t f k
 r| d 7} Yq\X| d 8} q\W| d k S)Nr      rj   )r   r   rd   r<   rA   r   r   r   intr   complexrK   OverflowErrorr   typer    )r   rb   ZrdrrN   columnsZcolumnTypesiZcheckedrB   colZthisTypeZ	hasHeaderZcolTyper   r   r   
has_header~  sJ    
 
	zSniffer.has_header)r#   r$   r%   r   rd   r`   ra   r   r   r   r   r   r      s
   Lg)rl   Z_csvr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   ior   __all__r   r   r0   r   r   r   	NameErrorr   r   r   r   r   r   <module>   s,   ^	2