Your IP : 3.129.5.73
3
\4?�@sHddlZddlmZmZmZmZmZmZmZm Z m
Z
mZmZm
Z
mZmZddlmZddlmZddlmZdddd d
ddd
dddddddddddddgZGdd�d�ZGdd
�d
e�Zed
e�Gdd�de�Zede�Gdd�de�Zed e�Gd!d�d�ZGd"d�d�ZyeWnek
�r4eZYnXGd#d�d�ZdS)$�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)�OrderedDict)�StringIOrrr
rrrr�excel� excel_tabr
rrrrr �Snifferrr�
DictReader�
DictWriter�unix_dialectc@s@eZdZdZdZdZdZdZdZdZ dZ
dZdd�Zdd�Z
dS)r�FNcCs|jtkrd|_|j�dS)NT)� __class__r�_valid� _validate)�self�r�/usr/lib64/python3.6/csv.py�__init__+s
zDialect.__init__cCs@yt|�Wn.tk
r:}ztt|���WYdd}~XnXdS)N)�_Dialect� TypeErrorr�str)r�errrr0szDialect._validate)�__name__�
__module__�__qualname__�_namer� delimiter� quotecharZ
escapechar�doublequote�skipinitialspace�lineterminator�quotingr rrrrrrsc@s$eZdZdZdZdZdZdZeZ dS)r�,�"TFz
N)
r%r&r'r)r*r+r,r-rr.rrrrr7sc@seZdZdZdS)r� N)r%r&r'r)rrrrrAsz excel-tabc@s$eZdZdZdZdZdZdZeZ dS)rr/r0TF�
N)
r%r&r'r)r*r+r,r-rr.rrrrrFsZunixc@s@eZdZddd�Zdd�Zedd��Zejd d��Zd
d�ZdS)
rNrcOs6||_||_||_t||f|�|�|_||_d|_dS)Nr)�_fieldnames�restkey�restvalr�dialect�line_num)r�f�
fieldnamesr4r5r6�args�kwdsrrrr RszDictReader.__init__cCs|S)Nr)rrrr�__iter__[szDictReader.__iter__cCs@|jdkr0yt|j�|_Wntk
r.YnX|jj|_|jS)N)r3�nextr�
StopIterationr7)rrrrr9^s
zDictReader.fieldnamescCs
||_dS)N)r3)r�valuerrrr9hscCs�|jdkr|jt|j�}|jj|_x|gkr:t|j�}q&Wtt|j|��}t|j�}t|�}||krz||d�||j<n*||kr�x |j|d�D]}|j||<q�W|S)Nr) r7r9r=rr�zip�lenr4r5)r�row�dZlfZlr�keyrrr�__next__ls
zDictReader.__next__)NNNr) r%r&r'r r<�propertyr9�setterrErrrrrQs
c@s6eZdZddd�Zdd�Zdd �Zd
d�Zdd
�ZdS)rr�raisercOsB||_||_|j�dkr$td|��||_t||f|�|�|_dS)NrH�ignorez-extrasaction (%s) must be 'raise' or 'ignore')rHrI)r9r5�lower�
ValueError�extrasactionr)rr8r9r5rLr6r:r;rrrr �szDictWriter.__init__cCs tt|j|j��}|j|�dS)N)�dictr@r9�writerow)r�headerrrr�writeheader�szDictWriter.writeheadercsN�jdkr8�j��j}|r8tddjdd�|D������fdd��jD�S)NrHz(dict contains fields not in fieldnames: z, cSsg|]}t|��qSr)�repr)�.0�xrrr�
<listcomp>�sz,DictWriter._dict_to_list.<locals>.<listcomp>c3s|]}�j|�j�VqdS)N)�getr5)rRrD)�rowdictrrr� <genexpr>�sz+DictWriter._dict_to_list.<locals>.<genexpr>)rL�keysr9rK�join)rrVZwrong_fieldsr)rVrr�
_dict_to_list�s
zDictWriter._dict_to_listcCs|jj|j|��S)N)rrNrZ)rrVrrrrN�szDictWriter.writerowcCs|jjt|j|��S)N)r� writerows�maprZ)rZrowdictsrrrr[�szDictWriter.writerowsN)rrHr)r%r&r'r rPrZrNr[rrrrr�s
c@s6eZdZdd�Zddd�Zdd�Zdd �Zd
d�ZdS)
rcCsdddddg|_dS)Nr/r1�;� �:)� preferred)rrrrr �szSniffer.__init__NcCsd|j||�\}}}}|s(|j||�\}}|s4td��Gdd�dt�}||_||_|pVd|_||_|S)NzCould not determine delimiterc@seZdZdZdZeZdS)zSniffer.sniff.<locals>.dialectZsniffedz
N)r%r&r'r(r-rr.rrrrr6�sr6r0)�_guess_quote_and_delimiter�_guess_delimiterrrr+r)r*r,)r�sample�
delimitersr*r+r)r,r6rrr�sniff�s
z
Sniffer.sniffcCs�g}x0dD](}tj|tjtjB�}|j|�}|r
Pq
W|s>dSi}i}d}|j} x�|D]�}
| dd }|
|}|r�|j|d�d ||<y| d
d }|
|}Wntk
r�wVYnX|r�|dks�||kr�|j|d�d ||<y| dd }Wntk
�rwVYnX|
|rV|d 7}qVWt||jd�}
|�rZt||jd�}|||k}|d
k�rbd}nd}d}tjdtj |�|
d�tj�}|j
|��r�d}nd}|
|||fS)N�I(?P<delim>[^\w\n"\'])(?P<space> ?)(?P<quote>["\']).*?(?P=quote)(?P=delim)�G(?:^|\n)(?P<quote>["\']).*?(?P=quote)(?P<delim>[^\w\n"\'])(?P<space> ?)�G(?P<delim>[^\w\n"\'])(?P<space> ?)(?P<quote>["\']).*?(?P=quote)(?:$|\n)�-(?:^|\n)(?P<quote>["\']).*?(?P=quote)(?:$|\n)rFr�quote��delimZspace)rDr2z]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rlrjT)rfrgrhri)rFNr)�re�compile�DOTALL� MULTILINE�findall�
groupindexrU�KeyError�max�escape�search)r�datardZmatchesZrestrZregexpZquotes�delimsZspacesrr�m�nrDr*rlr,Z dq_regexpr+rrrra�s`
z"Sniffer._guess_quote_and_delimitercCsttd|jd���}dd�td�D�}tdt|��}d}i}i}i}dt|t|��} }
�x| t|�k�rn|d7}xT|| |
�D]D}x>|D]6}|j|i�}
|j|�}|
j|d�d|
|<|
||<q�Wq�Wx�|j�D]�}t||j ��}t|�dk�r|dddk�rq�t|�dk�rht
|dd �d
�||<|j||�||d||dtdd�|D��f||<q�|d||<q�W|j �}t
||�}d
}d}x�t|�dk�r||k�rx\|D]T\}}|ddk�r�|ddk�r�|d||k�r�|dk�s�||k�r�|||<�q�W|d8}�q�Wt|�dk�r`t|j��d}|dj|�|djd|�k}||fS|
} |
|7}
q\W|�szdSt|�dk�r�xF|jD]<}||j�k�r�|dj|�|djd|�k}||fS�q�Wdd�|j �D�}|j�|dd}|dj|�|djd|�k}||fS)Nr2cSsg|]}t|��qSr)�chr)rR�crrrrT.sz,Sniffer._guess_delimiter.<locals>.<listcomp>��
rrkcSs|dS)Nrkr)rSrrr�<lambda>Hsz*Sniffer._guess_delimiter.<locals>.<lambda>)rDcss|]}|dVqdS)rkNr)rR�itemrrrrWMsz+Sniffer._guess_delimiter.<locals>.<genexpr>g�?g�������?g{�G�z�?z%c rcSsg|]\}}||f�qSrr)rR�k�vrrrrTws)rr���)�list�filter�split�range�minrArU�countrX�itemsrt�remove�sum�floatr`�sort)rrwrd�asciiZchunkLengthZ iterationZ
charFrequencyZmodesrx�start�end�line�charZ
metaFrequencyZfreqr�ZmodeListZtotalZconsistencyZ thresholdr�r�rlr,rCrrrrbst
zSniffer._guess_delimiterc
Cs�tt|�|j|��}t|�}t|�}i}xt|�D]}d||<q2Wd}x�|D]�}|dkrZP|d7}t|�|krpqLx�t|j��D]x} xJtt t
gD]0}
y|
|| �PWq�ttfk
r�Yq�Xq�Wt|| �}
|
|| kr~|| dkr�|
|| <q~|| =q~WqLWd}x�|j
�D]~\} }t|�td�k�rLt|| �|k�rB|d7}n|d8}n<y||| �Wn"ttfk
�r~|d7}Yn
X|d8}�qW|dkS)Nr�rk)rrrer=rAr�r�rX�intr��complexrK�
OverflowErrorr��typer")
rrcZrdrrO�columnsZcolumnTypes�iZcheckedrB�colZthisTypeZ hasHeaderZcolTyperrr�
has_header�sJ
zSniffer.has_header)N)r%r&r'r rerarbr�rrrrr�s
Lg) rmZ_csvrrrrrrrr r
rrr
rrrr!�collectionsr�ior�__all__rrrrrr�� NameErrorr�rrrrr�<module>s0@
2
?>