Your IP : 216.73.216.196
a
?�g?�@sddlZddlmZmZmZmZmZmZmZm Z m
Z
mZmZm
Z
mZmZddlmZddlmZgd�ZGdd�d�ZGdd �d e�Zed e�Gd
d�de�Zede�Gd
d�de�Zede�Gdd�d�ZGdd�d�ZzeWney�eZYn0Gdd�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)�StringIO)rrr
rrrr�excel� excel_tabr
rrrrr �Snifferrr�
DictReader�
DictWriter�unix_dialectc@s@eZdZdZdZdZdZdZdZdZ dZ
dZdd�Zdd�Z
dS)r�FNcCs|jtkrd|_|��dS)NT)� __class__r�_valid� _validate��self�r�(/opt/alt/python39/lib64/python3.9/csv.py�__init__*s
zDialect.__init__c
CsBzt|�Wn0ty<}ztt|���WYd}~n
d}~00dS�N)�_Dialect� TypeErrorr�str)r�errrr/szDialect._validate)�__name__�
__module__�__qualname__�_namer� delimiter� quotecharZ
escapechar�doublequote�skipinitialspace�lineterminator�quotingr rrrrrrsrc@s$eZdZdZdZdZdZdZeZ dS)r�,�"TF�
N)
r&r'r(r*r+r,r-r.rr/rrrrr6src@seZdZdZdS)r� N)r&r'r(r*rrrrr@srz excel-tabc@s$eZdZdZdZdZdZdZeZ dS)rr0r1TF�
N)
r&r'r(r*r+r,r-r.rr/rrrrrEsrZunixc@s@eZdZddd�Zdd�Zedd��Zejd d��Zd
d�ZdS)
rNrcOs<||_||_||_t||g|�Ri|��|_||_d|_dS�Nr)�_fieldnames�restkey�restvalr�dialect�line_num)r�f�
fieldnamesr7r8r9�args�kwdsrrrr QszDictReader.__init__cCs|Sr!rrrrr�__iter__ZszDictReader.__iter__cCs>|jdur.zt|j�|_Wnty,Yn0|jj|_|jSr!)r6�nextr�
StopIterationr:rrrrr<]s
zDictReader.fieldnamescCs
||_dSr!)r6)r�valuerrrr<gscCs�|jdkr|jt|j�}|jj|_|gkr8t|j�}q$tt|j|��}t|j�}t|�}||krv||d�||j<n&||kr�|j|d�D]}|j||<q�|Sr5) r:r<r@r�dict�zip�lenr7r8)r�row�dZlfZlr�keyrrr�__next__ks
zDictReader.__next__)NNNr) r&r'r(r r?�propertyr<�setterrIrrrrrPs�
rc@s6eZdZddd�Zdd�Zdd �Zd
d�Zdd
�ZdS)rr�raisercOsH||_||_|��dvr$td|��||_t||g|�Ri|��|_dS)N)rL�ignorez-extrasaction (%s) must be 'raise' or 'ignore')r<r8�lower�
ValueError�extrasactionr)rr;r<r8rPr9r=r>rrrr �s�zDictWriter.__init__cCstt|j|j��}|�|�Sr!)rCrDr<�writerow)r�headerrrr�writeheader�szDictWriter.writeheadercsN�jdkr8����j}|r8tdd�dd�|D������fdd��jD�S)NrLz(dict contains fields not in fieldnames: z, cSsg|]}t|��qSr)�repr)�.0�xrrr�
<listcomp>��z,DictWriter._dict_to_list.<locals>.<listcomp>c3s|]}��|�j�VqdSr!)�getr8)rUrH��rowdictrrr� <genexpr>�rXz+DictWriter._dict_to_list.<locals>.<genexpr>)rP�keysr<rO�join)rr[Zwrong_fieldsrrZr�
_dict_to_list�s
�zDictWriter._dict_to_listcCs|j�|�|��Sr!)rrQr_)rr[rrrrQ�szDictWriter.writerowcCs|j�t|j|��Sr!)r� writerows�mapr_)rZrowdictsrrrr`�szDictWriter.writerowsN)rrLr)r&r'r(r rSr_rQr`rrrrr�s�
rc@s6eZdZdd�Zddd�Zdd�Zdd �Zd
d�ZdS)
rcCsgd�|_dS)N)r0r3�;� �:)� preferredrrrrr �szSniffer.__init__NcCsd|�||�\}}}}|s(|�||�\}}|s4td��Gdd�dt�}||_||_|pVd|_||_|S)NzCould not determine delimiterc@seZdZdZdZeZdS)zSniffer.sniff.<locals>.dialectZsniffedr2N)r&r'r(r)r.rr/rrrrr9�sr9r1)�_guess_quote_and_delimiter�_guess_delimiterrrr,r*r+r-)r�sample�
delimitersr+r,r*r-r9rrr�sniff�s
�
�
z
Sniffer.sniffc Cs�g}dD]*}t�|tjtjB�}|�|�}|rq4q|s<dSi}i}d}|j} |D]�}
| dd}|
|}|r�|�|d�d||<z| dd}|
|}Wnty�YqRYn0|r�|dus�||vr�|�|d�d||<z| dd}Wnt�yYqRYn0|
|rR|d7}qRt||jd�}
|�rTt||jd�}|||k}|d k�r\d
}nd
}d}t�dt� |�|
d�tj�}|�
|��r�d
}nd}|
|||fS)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))rFNrr�quote��delimZspace�rHr4rz]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rmrkTF)�re�compile�DOTALL� MULTILINE�findall�
groupindexrY�KeyError�max�escape�search)r�datariZmatchesZrestrZregexpZquotes�delims�spacesrt�m�nrHr+rmr-Z dq_regexpr,rrrrf�s`
��z"Sniffer._guess_quote_and_delimitercCsttd|�d���}dd�td�D�}tdt|��}d}i}i}i}d|} }
| t|�k�rR|d7}|| |
�D]@}|D]6}|�|i�}
|�|�}|
�|d�d|
|<|
||<qxqp|��D]�}t||� ��}t|�dkr�|dddkr�q�t|�dk�rLt
|dd �d
�||<|�||�||d||dtdd�|D��f||<q�|d||<q�|� �}t
t||t|���}d
}d}t|�dk�r�||k�r�|D]T\}}|ddk�r�|ddk�r�|d||k�r�|du�s�||v�r�|||<�q�|d8}�q�t|�dk�rDt|���d}|d�|�|d�d|�k}||fS|
} |
|7}
qN|�s\dSt|�dk�r�|jD]@}||��v�rp|d�|�|d�d|�k}||fS�qpdd�|� �D�}|��|dd}|d�|�|d�d|�k}||fS)Nr4cSsg|]}t|��qSr)�chr)rU�crrrrW-rXz,Sniffer._guess_delimiter.<locals>.<listcomp>��
rrlcSs|dS)Nrlr)rVrrr�<lambda>GrXz*Sniffer._guess_delimiter.<locals>.<lambda>rncss|]}|dVqdS)rlNr)rU�itemrrrr\LrXz+Sniffer._guess_delimiter.<locals>.<genexpr>g�?g�������?g{�G�z�?z%c )rrcSsg|]\}}||f�qSrr)rU�k�vrrrrWvrX���)�list�filter�split�range�minrErY�countr]�itemsrv�remove�sum�floatre�sort)rryri�asciiZchunkLengthZ iterationZ
charFrequencyZmodesrz�start�end�line�charZ
metaFrequencyZfreqr�ZmodeList�totalZconsistencyZ thresholdr�r�rmr-rGrrrrgs�
����
��zSniffer._guess_delimiterc
Cs�tt|�|�|��}t|�}t|�}i}t|�D]}d||<q0d}|D]�}|dkrVq�|d7}t|�|krlqFt|���D]v} tt t
fD]2}
z|
|| �Wq�Wq�ttfy�Yq�0q�t|| �}
|
|| krx|| dur�|
|| <qx|| =qxqFd}|�
�D]z\} }t|�td�k�r>t|| �|k�r4|d7}n|d8}q�z||| �Wn ttf�yn|d7}Yq�0|d8}q�|dkS)Nr�rl)rrrjr@rEr�r�r]�intr��complexrO�
OverflowErrorr��typer#)
rrhZrdrrR�columnsZcolumnTypes�i�checkedrF�colZthisTypeZ hasHeaderZcolTyperrr�
has_headersH
zSniffer.has_header)N)r&r'r(r rjrfrgr�rrrrr�s
Lgr)roZ_csvrrrrrrrr r
rrr
rrrr"�ior�__all__rrrrrr�� NameErrorr�rrrrr�<module>s$@
2
?>