
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a?  ã                   @   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dgZG dd
„ d
ƒZG dd„ deƒZedeƒ G dd„ deƒZedeƒ G dd„ deƒZedeƒ G d d„ dƒZG d!d„ dƒZze W n ek
�r(   eZY nX G d"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Ú
DictWriterÚunix_dialectc                   @   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| _|  ¡  d S )NT)Ú	__class__r   Ú_validÚ	_validate©Úself© r   ú(/opt/alt/python38/lib64/python3.8/csv.pyÚ__init__*   s    
zDialect.__init__c              
   C   s@   zt | ƒ W n. tk
r: } ztt|ƒƒ‚W 5 d }~X Y nX d 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                   @   s$   e Zd ZdZdZdZdZdZeZ	dS )r   ú,ú"TFú
N)
r&   r'   r(   r*   r+   r,   r-   r.   r   r/   r   r   r   r   r   6   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                   @   s$   e Zd ZdZdZdZdZdZeZ	dS )r   r0   r1   TFÚ
N)
r&   r'   r(   r*   r+   r,   r-   r.   r   r/   r   r   r   r   r   E   s   Zunixc                   @   s@   e Zd Z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   s6   || _ || _|| _t||f|ž|Ž| _|| _d| _d S ©Nr   )Ú_fieldnamesÚrestkeyÚrestvalr   ÚdialectÚline_num)r   ÚfÚ
fieldnamesr7   r8   r9   ÚargsÚkwdsr   r   r   r    Q   s    zDictReader.__init__c                 C   s   | S r!   r   r   r   r   r   Ú__iter__Z   s    zDictReader.__iter__c                 C   s@   | j d kr0zt| jƒ| _ W n tk
r.   Y nX | jj| _| j S r!   )r6   Únextr   ÚStopIterationr:   r   r   r   r   r<   ]   s    

zDictReader.fieldnamesc                 C   s
   || _ d S r!   )r6   )r   Úvaluer   r   r   r<   g   s    c                 C   s    | j dkr| j t| jƒ}| jj | _ |g kr8t| jƒ}q$tt| j|ƒƒ}t| jƒ}t|ƒ}||k rv||d … || j< n&||krœ| j|d … D ]}| j||< qŒ|S r5   )	r:   r<   r@   r   ÚdictÚzipÚlenr7   r8   )r   ÚrowÚdZlfZlrÚkeyr   r   r   Ú__next__k   s    



zDictReader.__next__)NNNr   )	r&   r'   r(   r    r?   Úpropertyr<   ÚsetterrI   r   r   r   r   r   P   s     ÿ
	
	
c                   @   s6   e Zd Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ ZdS )r   r   Úraiser   c                 O   sB   || _ || _| ¡ dkr$td| ƒ‚|| _t||f|ž|Ž| _d S )N)rL   Úignorez-extrasaction (%s) must be 'raise' or 'ignore')r<   r8   ÚlowerÚ
ValueErrorÚextrasactionr   )r   r;   r<   r8   rP   r9   r=   r>   r   r   r   r    ƒ   s    ÿzDictWriter.__init__c                 C   s   t t| j| jƒƒ}|  |¡S r!   )rC   rD   r<   Úwriterow)r   Úheaderr   r   r   Úwriteheader�   s    zDictWriter.writeheaderc                    sN   ˆj dkr8ˆ  ¡ ˆj }|r8tdd dd„ |D ƒ¡ ƒ‚‡ ‡fdd„ˆjD ƒS )NrL   z(dict contains fields not in fieldnames: z, c                 S   s   g | ]}t |ƒ‘qS r   )Úrepr)Ú.0Úxr   r   r   Ú
<listcomp>–   s     z,DictWriter._dict_to_list.<locals>.<listcomp>c                 3   s   | ]}ˆ   |ˆj¡V  qd S r!   )Úgetr8   )rU   rH   ©Úrowdictr   r   r   Ú	<genexpr>—   s     z+DictWriter._dict_to_list.<locals>.<genexpr>)rP   Úkeysr<   rO   Újoin)r   rZ   Zwrong_fieldsr   rY   r   Ú_dict_to_list‘   s    
ÿzDictWriter._dict_to_listc                 C   s   | j  |  |¡¡S r!   )r   rQ   r^   )r   rZ   r   r   r   rQ   ™   s    zDictWriter.writerowc                 C   s   | j  t| j|ƒ¡S r!   )r   Ú	writerowsÚmapr^   )r   Zrowdictsr   r   r   r_   œ   s    zDictWriter.writerowsN)r   rL   r   )r&   r'   r(   r    rS   r^   rQ   r_   r   r   r   r   r   ‚   s     ÿ

c                   @   s6   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 )Nr0   r3   ú;ú ú:)Ú	preferredr   r   r   r   r    ª   s    zSniffer.__init__Nc                 C   sd   |   ||¡\}}}}|s(|  ||¡\}}|s4tdƒ‚G dd„ dtƒ}||_||_|pVd|_||_|S )NzCould not determine delimiterc                   @   s   e Zd ZdZdZeZdS )zSniffer.sniff.<locals>.dialectZsniffedr2   N)r&   r'   r(   r)   r.   r   r/   r   r   r   r   r9   ½   s   r9   r1   )Ú_guess_quote_and_delimiterÚ_guess_delimiterr   r   r,   r*   r+   r-   )r   ÚsampleÚ
delimitersr+   r,   r*   r-   r9   r   r   r   Úsniff¯   s    
ÿ
ÿ
zSniffer.sniffc              	   C   s   g }dD ]*}t  |t jt jB ¡}| |¡}|r q4q|s<dS i }i }d}|j}	|D ]Æ}
|	d d }|
| }|r‚| |d¡d ||< z|	d d }|
| }W n tk
r²   Y qRY nX |rÜ|d ksÈ||krÜ| |d¡d ||< z|	d d }W n tk
�r   Y qRY nX |
| rR|d7 }qRt||jd�}|�rXt||jd�}|| |k}|d	k�r`d
}nd
}d}t  dt  	|¡|dœ t j¡}| 
|¡�r�d}nd}||||fS )N)zI(?P<delim>[^\w\n"\'])(?P<space> ?)(?P<quote>["\']).*?(?P=quote)(?P=delim)zG(?:^|\n)(?P<quote>["\']).*?(?P=quote)(?P<delim>[^\w\n"\'])(?P<space> ?)zG(?P<delim>[^\w\n"\'])(?P<space> ?)(?P<quote>["\']).*?(?P=quote)(?:$|\n)z-(?:^|\n)(?P<quote>["\']).*?(?P=quote)(?:$|\n))r   FNr   r   Úquoteé   ÚdelimZspace©rH   r4   r   z]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rl   rj   TF)ÚreÚcompileÚDOTALLÚ	MULTILINEÚfindallÚ
groupindexrX   ÚKeyErrorÚmaxÚescapeÚsearch)r   Údatarh   ZmatchesZrestrZregexpZquotesÚdelimsZspacesrs   ÚmÚnrH   r+   rl   r-   Z	dq_regexpr,   r   r   r   re   Ì   s`    




ÿþz"Sniffer._guess_quote_and_delimiterc                 C   s   t td | d¡ƒƒ}dd„ tdƒD ƒ}tdt|ƒƒ}d}i }i }i }d| }	}
|	t|ƒk �rR|d7 }||	|
… D ]@}|D ]6}| |i ¡}| |¡}| |d¡d ||< |||< qxqp| ¡ D ]ž}t ||  	¡ ƒ}t|ƒdkrì|d d dkrìqºt|ƒdk�rLt
|dd	„ d
�||< | || ¡ || d || d tdd„ |D ƒƒ f||< qº|d ||< qº| 	¡ }tt|| t|ƒƒƒ}d}d}t|ƒdk�rþ||k�rþ|D ]T\}}|d dk�rœ|d dk�rœ|d | |k�rœ|d k�sæ||k�rœ|||< �qœ|d8 }�q€t|ƒdk�rDt | ¡ ƒd }|d  |¡|d  d| ¡k}||fS |
}	|
|7 }
qN|�s\dS t|ƒdk�r²| jD ]@}|| ¡ k�rp|d  |¡|d  d| ¡k}||f  S �qpdd„ | 	¡ D ƒ}| ¡  |d d }|d  |¡|d  d| ¡k}||fS )Nr4   c                 S   s   g | ]}t |ƒ‘qS r   )Úchr)rU   Úcr   r   r   rW   -  s     z,Sniffer._guess_delimiter.<locals>.<listcomp>é   é
   r   rk   c                 S   s   | d S )Nrk   r   )rV   r   r   r   Ú<lambda>G  ó    z*Sniffer._guess_delimiter.<locals>.<lambda>rm   c                 s   s   | ]}|d  V  qdS )rk   Nr   )rU   Úitemr   r   r   r[   L  s     z+Sniffer._guess_delimiter.<locals>.<genexpr>g      ð?gÍÌÌÌÌÌì?g{®Gáz„?z%c )r   r   c                 S   s   g | ]\}}||f‘qS r   r   )rU   ÚkÚvr   r   r   rW   v  s     éÿÿÿÿ)ÚlistÚfilterÚsplitÚrangeÚminrE   rX   Úcountr\   Úitemsru   ÚremoveÚsumÚfloatrd   Úsort)r   rx   rh   ÚasciiZchunkLengthZ	iterationZcharFrequencyZmodesry   ÚstartÚendÚlineÚcharZmetaFrequencyZfreqrŒ   ZmodeListZtotalZconsistencyZ	thresholdrƒ   r„   rl   r-   rG   r   r   r   rf     s‚    

ÿÿÿÿ

ÿÿzSniffer._guess_delimiterc                 C   sˆ  t t|ƒ|  |¡ƒ}t|ƒ}t|ƒ}i }t|ƒD ]}d ||< q0d}|D ]¬}|dkrV qô|d7 }t|ƒ|krlqFt| ¡ ƒD ]x}	tt	t
fD ]4}
z|
||	 ƒ W  qÈW q† ttfk
r¸   Y q†X q†t||	 ƒ}
|
||	 krx||	 d krê|
||	< qx||	= qxqFd}| ¡ D ]~\}	}t|ƒtdƒk�r@t||	 ƒ|k�r6|d7 }n|d8 }n<z|||	 ƒ W n" ttfk
�rr   |d7 }Y n
X |d8 }�q |dkS )Nr   é   rk   )r   r   ri   r@   rE   r‰   r†   r\   Úintr�   ÚcomplexrO   ÚOverflowErrorrŒ   Útyper#   )r   rg   ZrdrrR   ÚcolumnsZcolumnTypesÚiÚcheckedrF   ÚcolZthisTypeZ	hasHeaderZcolTyper   r   r   Ú
has_header  sJ    
 





zSniffer.has_header)N)r&   r'   r(   r    ri   re   rf   rŸ   r   r   r   r   r   ¥   s
   
Lg)rn   Z_csvr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r"   Úior   Ú__all__r   r   r   r   r   r˜   Ú	NameErrorr�   r   r   r   r   r   Ú<module>   sH   @            û


2
