Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/test_csv.cpython-311.pyc

�

SԚg����ddlZddlZddlZddlmZddlmZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZddlmZddlmZddlmZGd	�d
��ZGd�dej��ZGd
�dej��ZGd�dej��ZGd�de��ZGd�dej��ZGd�de��ZGd�de��ZGd�dej��Z Gd�de��Z!Gd�dej��Z"Gd�d ej��Z#Gd!�d"ej��Z$Gd#�d$ej��Z%Gd%�d&��Z&ej'e(ed'��d(��Gd)�d*ej����Z)Gd+�d,ej��Z*Gd-�d.ej��Z+Gd/�d0ej��Z,e-d1krej.��dSdS)2�N)�StringIO)�
TemporaryFile)�support)�warnings_helper�
import_helper�check_disallow_instantiation)�permutations)�dedent)�OrderedDictc��eZdZd�ZdS)�BadIterablec��t��N��OSError��selfs �*/usr/local/lib/python3.11/test/test_csv.py�__iter__zBadIterable.__iter__s���
�N)�__name__�
__module__�__qualname__r�rrr
r
s#����������rr
c�d�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zejeje j!e"���d�������Z#d�Z$d�Z%d�Z&d �Z'd!�Z(d"�Z)d#�Z*d$�Z+d%�Z,d&�Z-d'�Z.d(�Z/d)�Z0d*�Z1d+S),�Test_Csvz�
    Test the underlying C csv parser in ways that are not appropriate
    from the high level interface. Further tests of this nature are done
    in TestDialectRegistry.
    c�>�|�t|��|�t|d��|�t||d���|�t||d���|�t||d���|�tj||d��|�t||d���|�t||d���|�t||d���|�t||d���|�t||d���|�t||d�	��|�t||tjd
���|�t||tjd���|�t||tjd
���||d���||d�
��||d���||dd���||dd���||dd���||dd���||d���||d�
��||d���||d���||d�
��||d���||d���dS)Nr��bad_attr��	delimiter�XX�foo���	quotechar��lineterminator��quoting�)r*r&� ��
escapechar�	T�r!�skipinitialspace)r.r1)r&r1�^�…)�assertRaises�	TypeError�csv�Error�	QUOTE_ALL�
QUOTE_NONE)r�ctor�args   r�_test_arg_validzTest_Csv._test_arg_valids	�����)�T�*�*�*����)�T�4�0�0�0����)�T�3�1��=�=�=����)�T�3�A��>�>�>����)�T�3�D��A�A�A����#�)�T�3��6�6�6����)�T�3�$��?�?�?����)�T�3�!��<�<�<����)�T�3�!��<�<�<����)�T�3�t��D�D�D����)�T�3�q��A�A�A����)�T�3���=�=�=����)�T�3�"%�-�2�	�	?�	?�	?����)�T�3�"%�-�4�	�	A�	A�	A����)�T�3�"%�.�B�	�	@�	@�	@���S�C� � � � ���S�S�!�!�!�!���S�C� � � � ���S�D�4�8�8�8�8���S�T�D�9�9�9�9���S�D�4�8�8�8�8���S�C�$�7�7�7�7���S�C� � � � ���S�S�!�!�!�!���S�C� � � � ���S�F�#�#�#�#���S�V�$�$�$�$���S�F�#�#�#�#���S��(�(�(�(�(�(rc��|�tjg��|�ttjt����dSr)r<r6�readerr4rr
rs r�test_reader_arg_validzTest_Csv.test_reader_arg_valid@s>�����S�Z��,�,�,����'�3�:�{�}�}�=�=�=�=�=rc���|�tjt����Gd�d��}|�t
tj|����dS)Nc�$�eZdZed���ZdS)�1Test_Csv.test_writer_arg_valid.<locals>.BadWriterc��t�rrrs r�writez7Test_Csv.test_writer_arg_valid.<locals>.BadWriter.writeGs���
rN)rrr�propertyrDrrr�	BadWriterrBFs-������
�
�
��X�
�
�
rrF)r<r6�writerrr4r)rrFs  r�test_writer_arg_validzTest_Csv.test_writer_arg_validDsn�����S�Z����4�4�4�	�	�	�	�	�	�	�	�	
���'�3�:�y�y�{�{�;�;�;�;�;rc�`�||�}|�|jjd��|�|jjd��|�|jjd��|�|jjd��|�|jjd��|�|jjtj
��|�|jjd��|�|jjd��|�
tt|jd��|�
tt |jdd��|�
tt|jd��|�
tt |jdd��dS)	N�,T�
�"Fr!�:r*)�assertEqual�dialectr!�assertIs�doublequoter.r(r&r*r6�
QUOTE_MINIMALr1�strictr4�AttributeError�delattr�setattr)rr:�args�objs    r�_test_default_attrszTest_Csv._test_default_attrsLsg���d�D�k�������.��4�4�4��
�
�c�k�-�t�4�4�4������/��6�6�6������3�V�<�<�<������.��4�4�4������,�c�.?�@�@�@��
�
�c�k�2�E�:�:�:��
�
�c�k�(�%�0�0�0����.�'�3�;��L�L�L����.�'�3�;��S�Q�Q�Q����.�'�3�;�	�J�J�J����.�'�3�;�#�T�	+�	+�	+�	+�	+rc�F�|�tjg��dSr)rYr6r>rs r�test_reader_attrszTest_Csv.test_reader_attrs^� ��� � ���R�0�0�0�0�0rc�^�|�tjt����dSr)rYr6rGrrs r�test_writer_attrszTest_Csv.test_writer_attrsa�$��� � ���X�Z�Z�8�8�8�8�8rc
�l�tdddddtjdd���}||i|��}|�|jjd��|�|jjd��|�|jjd��|�|jj	d��|�|jj
d��|�|jjtj��|�|jjd��|�|jj
d��dS)NrMF�\�
�*T)r!rQr.r(r&r*r1rS)�dictr6r9rNrOr!rPrQr.r(r&r*r1rS)rr:rW�kwargsrXs     r�_test_kw_attrszTest_Csv._test_kw_attrsds�����4�%)�S�!�n�t�!�#�#�#���d�D�#�F�#�#�������.��4�4�4��
�
�c�k�-�u�5�5�5������/��6�6�6������3�T�:�:�:������.��4�4�4������,�c�n�=�=�=��
�
�c�k�2�D�9�9�9��
�
�c�k�(�$�/�/�/�/�/rc�F�|�tjg��dSr)rfr6r>rs r�test_reader_kw_attrszTest_Csv.test_reader_kw_attrsts �����C�J��+�+�+�+�+rc�^�|�tjt����dSr)rfr6rGrrs r�test_writer_kw_attrszTest_Csv.test_writer_kw_attrsws$�����C�J��
�
�3�3�3�3�3rc�J�Gd�d��}||fz}||�}|�|jjd��|�|jjd��|�|jjd��|�|jjd��|�|jjd��|�|jjtj
��|�|jjd��|�|jjd��dS)	Nc�8�eZdZdZdZdZdZdZej	Z
dZdZdS)�-Test_Csv._test_dialect_attrs.<locals>.dialect�-Fr2�$�#TN)
rrrr!rQr.r(r&r6r8r*r1rSrrrrOrm|s9�������I��K��J��N��I��M�G�!���F�F�FrrOrnFr2rorpT)
rNrOr!rPrQr.r(r&r*r6r8r1rS)rr:rWrOrXs     r�_test_dialect_attrszTest_Csv._test_dialect_attrszs��	�	�	�	�	�	�	�	��w�j� ���d�D�k�������.��4�4�4��
�
�c�k�-�u�5�5�5������/��5�5�5������3�S�9�9�9������.��4�4�4������,�c�m�<�<�<��
�
�c�k�2�D�9�9�9��
�
�c�k�(�%�0�0�0�0�0rc�F�|�tjg��dSr)rqr6r>rs r�test_reader_dialect_attrsz"Test_Csv.test_reader_dialect_attrs�r\rc�^�|�tjt����dSr)rqr6rGrrs r�test_writer_dialect_attrsz"Test_Csv.test_writer_dialect_attrs�r_rc�>�tddd���5}tj|fi|��}|�|��|�d��|�|���||jjz��ddd��dS#1swxYwYdS�N�w+�utf-8r+��encoding�newliner)	rr6rG�writerow�seekrN�readrOr()r�fields�expectre�fileobjrGs      r�_write_testzTest_Csv._write_test�s���
�4�'�2�
>�
>�
>�	E�'��Z��2�2�6�2�2�F��O�O�F�#�#�#��L�L��O�O�O����W�\�\�^�^�#�f�n�&C�C�
E�
E�
E�		E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	E�	Es�A2B�B�Bc�~�tddd���5}tj|fi|��}|�|��5|�|��ddd��n#1swxYwY|�d��|�|���d��ddd��dS#1swxYwYdSrw)rr6rGr4r}r~rNr)r�excr�rer�rGs      r�_write_error_testzTest_Csv._write_error_test�s7��
�4�'�2�
>�
>�
>�	1�'��Z��2�2�6�2�2�F��"�"�3�'�'�
(�
(�����'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(��L�L��O�O�O����W�\�\�^�^�R�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s5�(B2�A�B2�A!	�!B2�$A!	�%AB2�2B6�9B6c�V�|�tjd��|�tt	����Gd�d��}|�t|����Gd�d��}|�t|��g��dS)Nc��eZdZd�Zd�ZdS)�.Test_Csv.test_write_arg_valid.<locals>.BadListc��dS)N�
rrs r�__len__z6Test_Csv.test_write_arg_valid.<locals>.BadList.__len__�s���rrc� �|dkrt�dS)N�r)r�is  r�__getitem__z:Test_Csv.test_write_arg_valid.<locals>.BadList.__getitem__�s���q�5�5�!�M��5rN)rrrr�r�rrr�BadListr��s2������
�
�
�
"�
"�
"�
"�
"rr�c��eZdZd�ZdS)�.Test_Csv.test_write_arg_valid.<locals>.BadItemc��t�rrrs r�__str__z6Test_Csv.test_write_arg_valid.<locals>.BadItem.__str__�����
rN)rrrr�rrr�BadItemr���#������
�
�
�
�
rr�)r�r6r7rr
)rr�r�s   r�test_write_arg_validzTest_Csv.test_write_arg_valid�s������s�y�$�/�/�/����w��
�
�6�6�6�	"�	"�	"�	"�	"�	"�	"�	"�	
���w���	�	�2�2�2�	�	�	�	�	�	�	�	�	
���w������4�4�4�4�4rc�J�ddz}|�||g|�d|����dS)N�X�P�rJ)r�)r�	bigstrings  r�test_write_bigfieldzTest_Csv.test_write_bigfield�sD���%�K�	����)�I�.�#�)�)�Y�Y�10�	1�	1�	1�	1�	1rc��|�gd�d��|�tjgd�tj���|�gd�dtj���|�gd�dtj���|�gd�dtj���|�ddgdtj���dS)	N��ar$zp,q�	a,1,"p,q"r)z"a",1,"p,q"z
"a","1","p,q"�a
br$z	"a
b","1")r�r�r6r7r9rR�QUOTE_NONNUMERICr8rs r�test_write_quotingzTest_Csv.test_write_quoting�s����������4�4�4����s�y�-�-�-�),��	�	9�	9�	9��������#&�#4�	�	6�	6�	6�������
�#&�#7�	�	9�	9�	9��������#&�=�	�	2�	2�	2����&���\�#&�=�	�	2�	2�	2�	2�	2rc���|�gd�dd���|�tjgd�dd���|�gd�ddd���|�d	gd
dtj���|�d	gddtjd�
��|�d	gddtj���|�gd�ddtj���|�ddgddtj���|�ddgddtj���|�ddgddtj���|�ddgddtj���|�ddgddtj���|�ddgddtj���|�gd�ddtj���dS)Nr�r�rar-)r�r$zp,"q"F)r.rQz
a,1,"p,\"q\""rL�"""")r.r*z\")r.r*rQza,1,p\,qr�z\\,az"\\","a"z\ z\\ ,az\,z\\\,,az,\z",\\",a)zC\�6�7zX"z
C\\,6,7,"X""")r�r�r6r7rRr9r8rs r�test_write_escapezTest_Csv.test_write_escape�s����������$(�	�	*�	*�	*����s�y�/�/�/�*.�E�	�	C�	C�	C�������*;�$(��	�	?�	?�	?����#���$(�C�4E�	�	G�	G�	G����#���$(�C�4E�',�	�	.�	.�	.�	
���#���$(�C�N�	�	D�	D�	D��������$(�C�N�	�	D�	D�	D����$���h�$(�#�.�	�	B�	B�	B����$���h�$(�#�2C�	�	E�	E�	E����$���l�$(�#�-�	�	A�	A�	A����%���y�$(�#�2C�	�	E�	E�	E����%���{�$(�#�.�	�	B�	B�	B����%���{�$(�#�2C�	�	E�	E�	E����0�0�0�2C�$(�#�2C�	�	E�	E�	E�	E�	Erc���dD]�}|�|���5t��5}tj||���}|�ddg��|�ddg��|�ddg��|�|���d	|�d
|�d|����ddd��n#1swxYwYddd��n#1swxYwY��dS)N)rK�
rbz!@#�r'r��br$r�rbr��a,bz1,2z"
","
")�subTestrr6rGr}rN�getvalue)rr(�siorGs    r�test_write_lineterminatorz"Test_Csv.test_write_lineterminator�s���=�
	C�
	C�N����^��<�<�	
C�	
C��Z�Z�C�3� �Z��N�K�K�K�F��O�O�S�#�J�/�/�/��O�O�Q��F�+�+�+��O�O�T�4�L�1�1�1��$�$�S�\�\�^�^�&B�>�&B�&B�+9�&B�&B�1?�&B�&B�C�C�C�C�C�C�C�C�C�C�C�C�C�C����C�C�C�C�	
C�	
C�	
C�	
C�	
C�	
C�	
C�	
C�	
C�	
C�	
C����	
C�	
C�	
C�	
C��
	C�
	Cs5�C�B
C�7C�C�C�
C�C�C	�!C	c���|�tgd���d��|�tgd���d��|�tg��d��|�tdg��d��|�tjtdg��tj���|�tddg��d��dS)	Nr�r�)r�r$Nza,1,r+�""r)rJ)r��iterr�r6r7r9rs r�test_write_iterablezTest_Csv.test_write_iterable�s�������o�o�o�.�.��<�<�<�����n�n�n�-�-�v�6�6�6�����b���2�&�&�&�����t�f���t�,�,�,����s�y�$��v�,�,����O�O�O�����t�T�l�+�+�S�1�1�1�1�1rc��Gd�d��}tj|����}|�t|jdgg��tddd���5}tj|��}|�t|jd��|�ddgd	d
gg��|�d��|�|�	��d��ddd��dS#1swxYwYdS)
Nc��eZdZd�ZdS)�+Test_Csv.test_writerows.<locals>.BrokenFilec��t�rr)r�bufs  rrDz1Test_Csv.test_writerows.<locals>.BrokenFile.writer�rN)rrrrDrrr�
BrokenFiler��r�rr�r�rxryr+rzr��c�drz
a,b
c,d
)
r6rGr4r�	writerowsrr5r~rNr)rr�rGr�s    r�test_writerowszTest_Csv.test_writerows�sO��	�	�	�	�	�	�	�	���J�J�L�L�)�)�����'�6�#3�s�e�W�=�=�=�
�4�'�2�
>�
>�
>�	?�'��Z��(�(�F����i��)9�4�@�@�@����s�C�j�3��*�5�6�6�6��L�L��O�O�O����W�\�\�^�^�-=�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?s�BC:�:C>�C>c��tddd���5}tj|��}|�ddgddgg��|�d��|�|���d��ddd��n#1swxYwYtddd���5}tj|��}|�dgdgg��|�d��|�|���d	��ddd��n#1swxYwYtddd���5}tj|��}|�dgdgg��|�d��|�|���d
��ddd��dS#1swxYwYdS)Nrxryr+rzr�r�rza,
,d
z""
a
za
""
)rr6rGr�r~rNr�rr�rGs   r�test_writerows_with_nonez!Test_Csv.test_writerows_with_nonesW��
�4�'�2�
>�
>�
>�	=�'��Z��(�(�F����s�D�k�D�#�;�7�8�8�8��L�L��O�O�O����W�\�\�^�^�^�<�<�<�		=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=��4�'�2�
>�
>�
>�	<�'��Z��(�(�F����t�f�s�e�_�-�-�-��L�L��O�O�O����W�\�\�^�^�]�;�;�;�		<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<��4�'�2�
>�
>�
>�	<�'��Z��(�(�F����s�e�d�V�_�-�-�-��L�L��O�O�O����W�\�\�^�^�]�;�;�;�		<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s8�A-B�B�B�)A+D � D$�'D$�=A+F5�5F9�<F9c��|�dd��|�dgd��|�tjdgtj���|�dgd��|�tjdgtj���|�ddgd��|�ddgd��dS)Nrr+r�r)rJ)r�r�r6r7r9rs r�test_write_empty_fieldsz Test_Csv.test_write_empty_fieldss�������R� � � ����"��t�$�$�$����s�y�2�$����G�G�G����$���&�&�&����s�y�4�&�#�.��I�I�I����"�b��3�'�'�'����$���s�+�+�+�+�+rc��|�dgddd���|�dgddd���|�dgddd���|�dgddd���|�ddgddd���|�ddgddd���|�ddgddd���|�ddgddd���|�ddgdddtj���|�tjddgddtj���|�ddgdddtj���|�tjddgddtj���dS)	Nr+r�r,Fr0Tz"" "")r!r1r*)r�r6r9r�r7rs r�'test_write_empty_fields_space_delimiterz0Test_Csv.test_write_empty_fields_space_delimiter(s������"��t�s�U��K�K�K����"��t�s�T��J�J�J����$����u��M�M�M����$����t��L�L�L����"�b��3�#���N�N�N����"�b��7�c�D��Q�Q�Q����$���s�c�E��R�R�R����$���w�#�PT��U�U�U����"�b��3�#��!$��	�	1�	1�	1����s�y�2�r�(�),�t�'*�~�	�	7�	7�	7�	
���$���s�c�E�!$��	�	1�	1�	1����s�y�4��,�),�t�'*�~�	�	7�	7�	7�	7�	7rc� �tddd���5}tj|��}|�t|jd��|�t|jt����ddd��dS#1swxYwYdS)Nrxryr+rz)rr6rGr4r5r�rr
r�s   r�test_writerows_errorszTest_Csv.test_writerows_errors?s���
�4�'�2�
>�
>�
>�	H�'��Z��(�(�F����i��)9�4�@�@�@����g�v�'7����G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	H�	Hs�A#B�B�
B)�categoryc�^�ddl}|�d��}tddd���5}tj|��}|�|gg��|�d��|�|���d��ddd��dS#1swxYwYdS)Nrr�rxryr+rzza
)	�	_testcapi�unicode_legacy_stringrr6rGr�r~rNr)rr�r�r�rGs     r�test_writerows_legacy_stringsz&Test_Csv.test_writerows_legacy_stringsEs���	�����+�+�C�0�0��
�4�'�2�
>�
>�
>�	6�'��Z��(�(�F����q�c�U�#�#�#��L�L��O�O�O����W�\�\�^�^�W�5�5�5�		6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6s�A)B"�"B&�)B&c�t�tj|fi|��}t|��}|�||��dSr)r6r>�listrN)r�inputr�rer>�results      r�
_read_testzTest_Csv._read_testQs@����E�,�,�V�,�,���f���������(�(�(�(�(rc�<�|�gg��|�dggg��|�tj|jdgdd���|�dgdggd���|�tj|jdgd��dS)	Nr+z"ab"cr$�rS�abcr)rQsabc�r�r4r6r7rs r�test_read_oddinputszTest_Csv.test_read_oddinputsVs�������B���������r�d�#�#�#����#�)�T�_�"�)�T�A�	�	7�	7�	7�����	�U�G�9�A��>�>�>����#�)�T�_�!�(�D�	*�	*�	*�	*�	*rc��|�ddgddgddgg��|�ddgddgddgg��|�d	d
gddgddgg��|�ddgddgddgg��d
}|�tj|��5t	tjdg����ddd��n#1swxYwY|�tj|��5t	tjdg����ddd��n#1swxYwY|�tj|��5t	tjdg����ddd��dS#1swxYwYdS)Nr�zc,dr�r�r�r�za,b
zc,d
za,b
zc,d
za,b
zc,d
zwith newline=''za,b
c,dza,b
c,dza,b
c,d)r��assertRaisesRegexr6r7�nextr>)r�errmsgs  r�
test_read_eolzTest_Csv.test_read_eol`sB��������#�c��S��I�(>�?�?�?�����'�*�c�#�Y��S�	�,B�C�C�C�����I�.�#�c��S��I�0F�G�G�G�����'�*�c�#�Y��S�	�,B�C�C�C�"��
�
#�
#�C�I�v�
6�
6�	+�	+����Z�L�)�)�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
�
#�
#�C�I�v�
6�
6�	+�	+����Z�L�)�)�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
�
#�
#�C�I�v�
6�
6�	-�	-����\�N�+�+�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s6�#C
�
C�C�5#D$�$D(�+D(�#E?�?F�Fc��|�dgddgg��|�dgdgg��|�dgdggd���|�tj|jdggd�	��|�tj|jdggd�	��|�tj|jdggdd�
��dS)Nza,"r�r+z"ar2r�r-Tr�)r.rSr�rs r�
test_read_eofzTest_Csv.test_read_eofns��������3��)��-�-�-������#���(�(�(��������x�C��8�8�8����#�)�T�_�u�g�r�$��O�O�O����#�)�T�_�t�f�b���N�N�N����#�)�T�_��%���D�	�	B�	B�	B�	B�	Brc��|�dgdgg��|�dggd�g��|�dggd�g��|�dggd�gd���|�d	ggd�g��dS)
Nr��a,b,c)r�zbr�za,b,c)r�zbr�za,b\,crar-za,"b",c�r�rs r�
test_read_nulzTest_Csv.test_read_nulws��������$���)�)�)������&7�&7�&7�%8�9�9�9������&7�&7�&7�%8�9�9�9�����
�(9�(9�(9�':�t��L�L�L�����
�(9�(9�(9�':�;�;�;�;�;rc��|�dggd�g��|�dggd�gd���|�dggd�gd���dS)Nza,b,c�r�r�r�za;b;c�;r zabcr�r�rs r�test_read_delimiterzTest_Csv.test_read_delimiter~sg������	�O�O�O�#4�5�5�5�����	�O�O�O�#4���D�D�D������o�o�o�%6�$��G�G�G�G�Grc�2�|�dggd�gd���|�dgddggd���|�dgddggd���|�d	gddggd���|�d
gddggd���|�dgdd
ggd���|�dggd�gd���|�dggd�gd���|�dggd�gd���|�dggd�g��dS)Nza,\b,cr�rar-za,b\,cr�zb,cza,"b\,c"za,"b,\c"z	a,"b,c\""zb,c"za,"b,c"\zb,c\za,^b,cr2r�r�)r�z\br�r�rs r�test_read_escapezTest_Csv.test_read_escape�sP�������o�o�o�%6�4��H�H�H������s�E�l�^���E�E�E�����
��e��~�$��G�G�G�����
��e��~�$��G�G�G������#�v���D��I�I�I�����
��g��'7�D��I�I�I�����
�_�_�_�$5�#��F�F�F������o�o�o�%6�4��H�H�H������&7�&7�&7�%8�T��J�J�J������&7�&7�&7�%8�9�9�9�9�9rc��|�dggd�g��|�dggd�gdd���|�dggd�gtjd���|�dggd�gtj�	��|�d
gddgg��|�t
|jd
gggtj�	��|�dggd�gd���|�dggd�gd���dS)Nz	1,",3,",5)�1z,3,�5)r�rL�3rLr�ra)r&r.�r*r.z
,3,"5",7.3, 9)r+�r�g333333@�	r)z"a
b", 7r�z 7zabc,3z	1,@,3,@,5�@r%z	1,,3,,5r�)r�r6r9r�r4�
ValueErrorrs r�test_read_quotingzTest_Csv.test_read_quoting�sZ������
�(9�(9�(9�':�;�;�;�����
�(A�(A�(A�'B�"&�4�	�	9�	9�	9�����
�(A�(A�(A�'B� #��4�	�	A�	A�	A�	
����)�,@�,@�,@�+A� #� 4�	�	6�	6�	6�����
����'7�8�8�8����*�d�o�"�)�b�T�"%�"6�	�	8�	8�	8�	
����
�(9�(9�(9�':�c��J�J�J������*;�*;�*;�)<���M�M�M�M�Mrc�>�|�dggd�gd���dS)Nzno space, space,  spaces,	tab)zno space�space�spacesz	tabT)r1r�rs r�test_read_skipinitialspacez#Test_Csv.test_read_skipinitialspace�s<�����9�:�A�A�A�B�)-�	�	/�	/�	/�	/�	/rc��|�gd�gd�gd�gd�ggdd���|�gd�dd	gdd
gd
gggdd���dS)N)za   bz  a  z  r+)r�r+r+r�)r+r+r�r+r+)r+r+r+r,Fr0r�r�r+Tr�rs r�test_read_space_delimiterz"Test_Csv.test_read_space_delimiter�s������4�4�4�+�+�+�-B�-B�-B�L�L�L�RT�U�"%��	�	?�	?�	?�	
���4�4�4��s��c�2�Y���b�9�"%��	�	>�	>�	>�	>�	>rc��tj��}	d}d|z}|�d|��}|�|g||gg��tj|��|�|g||gg��|�tj��|��tj|dz
��|�tj|j|gg��|�ttjd��|�ttjdd��tj|��dS#tj|��wxYw)Nr�r�rJr$)r6�field_size_limitr�rNr4r7r5)r�limit�sizer��biglines     r�test_read_bigfieldzTest_Csv.test_read_bigfield�s<���$�&�&��
	(��D��d�
�I�!*���I�I�6�G��O�O�W�I��I�(>�'?�@�@�@�� ��&�&�&��O�O�W�I��I�(>�'?�@�@�@����S�1�3�3�T�:�:�:�� ��a��(�(�(����c�i���7�)�R�H�H�H����i��)=�t�D�D�D����i��)=�q�$�G�G�G�� ��'�'�'�'�'��C� ��'�'�'�'���s�D	D4�4E
c���tjgd���}|�|jd��t	|��|�|jd��t	|��|�|jd��t	|��|�|jd��|�tt|��|�|jd��dS)N)zline,1zline,2zline,3rr$r�r�)r6r>rN�line_numr�r4�
StopIteration)r�rs  r�test_read_linenumzTest_Csv.test_read_linenum�s����J�5�5�5�6�6�������Q�'�'�'��Q���������Q�'�'�'��Q���������Q�'�'�'��Q���������Q�'�'�'����-��q�1�1�1������Q�'�'�'�'�'rc	���gd�gd�gd�gd�gd�gd�g}dD]�}|�|���5td	d
d���5}tj||���}|�|��|�d
��t
tj|����D]!\}}|�|||���"	ddd��n#1swxYwYddd��n#1swxYwY��dS)N�z
azb
czd
�z
ezf
gzh
�z
izj
kzl
�z

mzn

ozp

�z

qzr

szt

�z

uzv

wzx

�rKr�rbr'rxryr+rzr)	r�rr6rGr�r~�	enumerater>rN�r�rowsr(r�rGr��rows       r�test_roundtrip_quoteed_newlinesz(Test_Csv.test_roundtrip_quoteed_newlines�s���"�"�"�"�"�"�(�(�(�(�(�(�(�(�(�(�(�(�

��1�	7�	7�N����^��<�<�
7�
7�"�4�'�2�F�F�F�7�'� �Z���O�O�O�F��$�$�T�*�*�*��L�L��O�O�O�"+�C�J�w�,?�,?�"@�"@�7�7���3��(�(��d�1�g�6�6�6�6�7�	7�7�7�7�7�7�7�7�7�7�7����7�7�7�7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��	7�	7s6�C*�BC�C*�C�C*�C�C*�*C.	�1C.	c
�"�gd�gd�gd�gd�gd�gd�g}dD]�}|�|���5td	d
d���5}tj||tjd
���}|�|��|�d��ttj|tjd
�����D]!\}}|�	|||���"	ddd��n#1swxYwYddd��n#1swxYwY��dS)Nrrr	r
rrr
r'rxryr+rzra)r(r*r.rr�)
r�rr6rGr9r�r~rr>rNrs       r�(test_roundtrip_escaped_unquoted_newlinesz1Test_Csv.test_roundtrip_escaped_unquoted_newlines�s���"�"�"�"�"�"�(�(�(�(�(�(�(�(�(�(�(�(�

��1�
	7�
	7�N����^��<�<�	
7�	
7�"�4�'�2�F�F�F�7�'� �Z���03��4�Q�Q�Q�F��$�$�T�*�*�*��L�L��O�O�O�"+�C�J�w�?B�~�BF�-H�-H�-H�#I�#I�7�7���3��(�(��d�1�g�6�6�6�6�7�7�7�7�7�7�7�7�7�7�7�7����7�7�7�7�	
7�	
7�	
7�	
7�	
7�	
7�	
7�	
7�	
7�	
7�	
7����	
7�	
7�	
7�	
7��
	7�
	7s6�D�BC,� D�,C0�0D�3C0�4D�D	�
D	N)2rrr�__doc__r<r?rHrYr[r^rfrhrjrqrsrur�r�r�r�r�r�r�r�r�r�r�r�r�r�cpython_only�requires_legacy_unicode_capir�ignore_warnings�DeprecationWarningr�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrs���������
 )� )� )�D>�>�>�<�<�<�+�+�+�$1�1�1�9�9�9�0�0�0� ,�,�,�4�4�4�1�1�1�,1�1�1�9�9�9�E�E�E�1�1�1�5�5�5� 1�1�1�2�2�2�E�E�E�>C�C�C�2�2�2�?�?�?�<�<�<�&,�,�,�7�7�7�.H�H�H�
���)�$�_�$�.@�A�A�A�6�6�B�A�*�)���6�)�)�)�
*�*�*�-�-�-�B�B�B�<�<�<�H�H�H�

:�
:�
:�N�N�N� /�/�/�
>�>�>�(�(�(�&
(�
(�
(�7�7�7�$7�7�7�7�7rrc�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TestDialectRegistryc��|�ttjd��|�ttj��|�tjtjd��|�tjtjd��|�ttj��|�tjtjd��|�tjtjd��|�ttjd��|�ttjdd��|�ttjddd��|�ttjdd���|�ttjdd���|�ttjg��dS)N�nonesuchr)�badargumentr))r4r5r6�
list_dialects�get_dialectr7�unregister_dialect�register_dialectrs r�test_registry_badargsz)TestDialectRegistry.test_registry_badargs�s������)�S�%6��=�=�=����)�S�_�5�5�5����#�)�S�_�d�;�;�;����#�)�S�_�j�A�A�A����)�S�%;�<�<�<����#�)�S�%;�T�B�B�B����#�)�S�%;�Z�H�H�H����)�S�%9�4�@�@�@����)�S�%9�4��F�F�F����)�S�%9�:�q�!�L�L�L����)�S�%9�:�&*�	�	,�	,�	,����)�S�%9�:�"&�	�	(�	(�	(����)�S�%9�2�>�>�>�>�>rc��Gd�dtj��}d}tj��|gz}|���tj||��|�tj|��|�tj|��j	d��ttj����}|�||��dS)Nc��eZdZdZdS)�5TestDialectRegistry.test_registry.<locals>.myexceltsvr/N�rrrr!rrr�
myexceltsvr&��������I�I�Irr(r/)r6�excelr�sortr"�
addCleanupr!rNr r!�sorted)rr(�name�expected_dialects�got_dialectss     r�
test_registryz!TestDialectRegistry.test_registrys���	�	�	�	�	���	�	�	����-�/�/�4�&�8����� � � ���T�:�.�.�.�����.��5�5�5�������.�.�8�$�?�?�?��c�/�1�1�2�2�����*�L�9�9�9�9�9rc	�D�d}tj|d���|�tj|��|�tj|��jd��|�gd�gttjdg|������dS)N�fedcbar�r )r��Y�ZzX;Y;Z)	r6r"r,r!rNr r!r�r>)rr.s  r�test_register_kwargsz(TestDialectRegistry.test_register_kwargss�������T�S�1�1�1�1�����.��5�5�5�������.�.�8�#�>�>�>����/�/�/�*�D���W�I�t�1L�1L�,M�,M�N�N�N�N�Nrc
�F�Gd�dtj��}d}tj||dddddtj�	��|�tj|��tj|��}|�|jd��|�|j	d��|�|j
d��|�|jd��|�|jd��|�|j
tj��dS)
Nc�0�eZdZdZdZdZdZdZej	Z
dS)�DTestDialectRegistry.test_register_kwargs_override.<locals>.mydialectr/rLTFrKN)rrrr!r&rQr1r(r6rRr*rrr�	mydialectr9s0�������I��I��K�$��#�N��'�G�G�Grr:�test_dialectr��'FTr�)r!r&rQr1r(r*)r6�Dialectr"r8r,r!r rNr!r&rQr1r(r*)rr:r.rOs    r�test_register_kwargs_overridez1TestDialectRegistry.test_register_kwargs_overrides.��	(�	(�	(�	(�	(���	(�	(�	(�����T�9�'*�'*�).�.2�,0�%(�]�
	4�	4�	4�	4�	
����.��5�5�5��/�$�'�'������*�C�0�0�0�����*�C�0�0�0�����,�e�4�4�4�����1�4�8�8�8�����/��6�6�6������#�-�8�8�8�8�8rc�v�Gd�dtj��}|�tj|��dS)Nc��eZdZdZdS)�?TestDialectRegistry.test_incomplete_dialect.<locals>.myexceltsvr/Nr'rrrr(rA5r)rr()r6r=r4r7)rr(s  r�test_incomplete_dialectz+TestDialectRegistry.test_incomplete_dialect4sL��	�	�	�	�	���	�	�	����#�)�Z�0�0�0�0�0rc��Gd�dtj��}tdd���5}|�d��|�d��tj||�����}|�t|��gd	���|�t|��d
dg��ddd��dS#1swxYwYdS)Nc�$�eZdZdZejZdZdS)�5TestDialectRegistry.test_space_dialect.<locals>.spacer,raN)rrrr!r6r9r*r.rrrr�rE:s�������I��n�G��J�J�Jrr�rxry�r{zabc   def
c1ccccc1 benzene
r�rO)r�r+r+�def�c1ccccc1�benzene)r6r*rrDr~r>rNr�)rr�r�r>s    r�test_space_dialectz&TestDialectRegistry.test_space_dialect9s7��	�	�	�	�	�C�I�	�	�	�
�4�'�
2�
2�
2�	D�g��M�M�9�:�:�:��L�L��O�O�O��Z������9�9�9�F����T�&�\�\�+A�+A�+A�B�B�B����T�&�\�\�J�	�+B�C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	D�	Ds�BC
�
C�Cc�.�tddd���5}tj|g|�Ri|��}|�gd���|�d��|�|���|��ddd��dS#1swxYwYdS)Nrxr+ry�r|r{�r$r�r�r)rr6rGr}r~rNr)r�expected�	writeargs�kwwriteargsr�rGs      r�compare_dialect_123z'TestDialectRegistry.compare_dialect_123Fs���
�4��g�
>�
>�
>�	7�'��Z��C�)�C�C�C�{�C�C�F��O�O�G�G�G�$�$�$��L�L��O�O�O����W�\�\�^�^�X�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�A*B
�
B�Bc���Gd�dtj��}Gd�dtj��}Gd�dtj��}Gd�dtj��}Gd	�d
��}tjd|��	|�d��|�dd���|�d|���|�d
|��|�d|�����|�dd���|�d|d���|�d|���tjd��dS#tjd��wxYw)Nc��eZdZdZdS)�5TestDialectRegistry.test_dialect_apply.<locals>.testAr/Nr'rrr�testArUPr)rrVc��eZdZdZdS)�5TestDialectRegistry.test_dialect_apply.<locals>.testBrMNr'rrr�testBrXR��������I�I�IrrYc��eZdZdZdS)�5TestDialectRegistry.test_dialect_apply.<locals>.testC�|Nr'rrr�testCr\TrZrr^c��eZdZdZdS)�7TestDialectRegistry.test_dialect_apply.<locals>.testUniuΛNr'rrr�testUnir`Vs������ �I�I�Irrac��eZdZdS)�;TestDialectRegistry.test_dialect_apply.<locals>.unspecifiedN�rrrrrr�unspecifiedrcYs�������Drrez1,2,3
rGz1	2	3
z1:2:3
z1|2|3
z1;2;3
r�)rOr!u	1Λ2Λ3
)r6r*r"rRr!)rrVrYr^rares      r�test_dialect_applyz&TestDialectRegistry.test_dialect_applyOs���	�	�	�	�	�C�I�	�	�	�	�	�	�	�	�C�I�	�	�	�	�	�	�	�	�C�I�	�	�	�	!�	!�	!�	!�	!�c�i�	!�	!�	!�	�	�	�	�	�	�	�	�	��W�e�,�,�,�
	,��$�$�[�1�1�1��$�$�[�$�$�?�?�?��$�$�[�+�$�F�F�F��$�$�]�E�:�:�:��$�$�[�%�%�'�'�$�B�B�B��$�$�[�'�$�B�B�B��$�$�[�%�/2�
%�
4�
4�
4��$�$�%:�-4�
%�
6�
6�
6�
�"�7�+�+�+�+�+��C�"�7�+�+�+�+���s
�B>E�E.c�F�|�ttjgd���|�ttjgd���|�ttjgd���|�ttjgd���dS)Nrrr ���r)�d)r4r5r6r>rs r�test_bad_dialectz$TestDialectRegistry.test_bad_dialectms������)�S�Z����B�B�B����)�S�Z����F�F�F����)�S�Z��r��B�B�B����)�S�Z��s��C�C�C�C�Crc��tj��D]<}tj|��}|�tt
j|���=dSr)r6rr r4r5�copy)rr.rOs   r�	test_copyzTestDialectRegistry.test_copyusP���%�'�'�	=�	=�D��o�d�+�+�G����i���G�<�<�<�<�	=�	=rc���tj��D]\}tj|��}ttjdz��D])}|�ttj||���*�]dS)Nr$)	r6rr �range�pickle�HIGHEST_PROTOCOLr4r5�dumps)rr.rO�protos    r�test_picklezTestDialectRegistry.test_picklezs}���%�'�'�	K�	K�D��o�d�+�+�G��v�6��:�;�;�
K�
K���!�!�)�V�\�7�E�J�J�J�J�
K�	K�	KrN)rrrr#r1r6r>rBrKrRrfrjrmrtrrrrr�s�������?�?�?�"
:�
:�
:�O�O�O�9�9�9�81�1�1�
D�D�D�7�7�7�,�,�,�<D�D�D�=�=�=�
K�K�K�K�Krrc��eZdZd�Zd�ZdS)�TestCsvBasec�0�tddd���5}|�|��|�d��tj||j���}t
|��}|�||��ddd��dS#1swxYwYdS)Nrxryr+rzrrG)rrDr~r6r>rOr�rN)rr��expected_resultr�r>r�s      r�readerAssertEqualzTestCsvBase.readerAssertEqual�s���
�4�'�2�
>�
>�
>�	6�'��M�M�%� � � ��L�L��O�O�O��Z��4�<�@�@�@�F��&�\�\�F����V�_�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�	6�	6s�A+B�B�Bc�6�tddd���5}tj||j���}|�|��|�d��|�|���|��ddd��dS#1swxYwYdS)Nrxryr+rzrGr)rr6rGrOr�r~rNr)rr�rxr�rGs     r�writerAssertEqualzTestCsvBase.writerAssertEqual�s���
�4�'�2�
>�
>�
>�	>�'��Z��4�<�@�@�@�F����U�#�#�#��L�L��O�O�O����W�\�\�^�^�_�=�=�=�		>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	>�	>s�A.B�B�BN)rrrryr{rrrrvrv�s2������6�6�6�>�>�>�>�>rrvc��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestDialectExcelr*c�6�|�ddgg��dS)Nr��ryrs r�test_singlezTestDialectExcel.test_single��"�����u��w�i�0�0�0�0�0rc�8�|�dgd�g��dS)Nz	1,2,3,4,5)r��2r��4r�rrs r�test_simplezTestDialectExcel.test_simple�s(�����{�-B�-B�-B�,C�D�D�D�D�Drc�2�|�dg��dS�Nr+rrs r�test_blanklinezTestDialectExcel.test_blankline�������r�2�&�&�&�&�&rc�8�|�dddgg��dS)NrJr+rrs r�test_empty_fieldsz"TestDialectExcel.test_empty_fields�s$�����s�b�"�X�J�/�/�/�/�/rc�6�|�ddgg��dS)Nr�r+rrs r�test_singlequotedz"TestDialectExcel.test_singlequoted�s"�����t�r�d�V�,�,�,�,�,rc�8�|�dddgg��dS)Nz"",r+rrs r�test_singlequoted_left_emptyz-TestDialectExcel.test_singlequoted_left_empty��$�����u��2�w�i�0�0�0�0�0rc�8�|�dddgg��dS)Nz,""r+rrs r�test_singlequoted_right_emptyz.TestDialectExcel.test_singlequoted_right_empty�r�rc�6�|�ddgg��dS)Nr�rLrrs r�test_single_quoted_quotez)TestDialectExcel.test_single_quoted_quote�s"�����v���w�/�/�/�/�/rc�6�|�ddgg��dS)Nz""""""r�rrs r�test_quoted_quotesz#TestDialectExcel.test_quoted_quotes�s"�����x�4�&��2�2�2�2�2rc�6�|�ddgg��dS)Nza""brrs r�test_inline_quotez"TestDialectExcel.test_inline_quote��"�����v���z�2�2�2�2�2rc�6�|�ddgg��dS)Nza"b"crrs r�test_inline_quotesz#TestDialectExcel.test_inline_quotes�s"�����w�'���4�4�4�4�4rc�6�|�ddgg��dS)Nz"a"b�abrrs r�test_quotes_and_morez%TestDialectExcel.test_quotes_and_more�s$��	
���v���x�0�0�0�0�0rc�6�|�ddgg��dS)Nza"brrs r�test_lone_quotez TestDialectExcel.test_lone_quote�r�rc�6�|�ddgg��dS)Nz"a" "b"za "b"rrs r�test_quote_and_quotez%TestDialectExcel.test_quote_and_quote�s$��	
���y�G�9�+�6�6�6�6�6rc�6�|�ddgg��dS)Nz "a"rrs r�test_space_and_quotez%TestDialectExcel.test_space_and_quote�r�rc�8�|�dgd�g��dS)Nz#1,2,3,"I think, therefore I am",5,6)r�r�r�zI think, therefore I amr�r�rrs r�test_quotedzTestDialectExcel.test_quoted�s;�����D�!+�!+�!+� ,�	-�	-�	-�	-�	-rc�8�|�dgd�g��dS)NzJ1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw")r�r�r�z"I see," said the blind manz"as he picked up his hammer and sawrrs r�test_quoted_quotez"TestDialectExcel.test_quoted_quote�sD�����k�!G�!G�!G� H�	I�	I�	I�	I�	Irc�B�d}|�|gd�gd�g��dS)NzR1,2,3,"""I see,""
said the blind man","as he picked up his
hammer and saw"
9,8,7,6)r�r�r�z"I see,"
said the blind manz"as he picked up his
hammer and saw)�9�8r�r�r)rr�s  r�test_quoted_nlzTestDialectExcel.test_quoted_nl�sQ����
	
���u�!J�!J�!J�!2� 1� 1� 3�	4�	4�	4�	4�	4rc�8�|�dgd�g��dS)Nz	12,12,1",)�12r�z1"r+rrs r�test_dubious_quotez#TestDialectExcel.test_dubious_quote�s(�����{�-C�-C�-C�,D�E�E�E�E�Erc�2�|�gd��dSr��r{rs r�	test_nullzTestDialectExcel.test_null�r�rc�6�|�dggd��dS)Nr�zabc
r�rs r�test_single_writerz#TestDialectExcel.test_single_writer�s"�������y�)�4�4�4�4�4rc�8�|�gd�gd��dS)N)r$r�r�r��z
1,2,abc,3,4
r�rs r�test_simple_writerz#TestDialectExcel.test_simple_writer�s)����� 3� 3� 3�4�6G�H�H�H�H�Hrc�8�|�gd�gd��dS)N)r$r�za"bc"r�r�z1,2,"a""bc""",3,4
r�rs r�test_quoteszTestDialectExcel.test_quotes��)����� 5� 5� 5�6�8O�P�P�P�P�Prc�6�|�dggd��dS�N�abc,defz"abc,def"
r�rs r�test_quote_fieldsepz$TestDialectExcel.test_quote_fieldsep��"�������}�o�>�>�>�>�>rc�8�|�gd�gd��dS)N)r$r�za
bcr�r�z1,2,"a
bc",3,4
r�rs r�
test_newlineszTestDialectExcel.test_newlines�s)����� 5� 5� 5�6�8M�N�N�N�N�NrN)rrrrOr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr}r}�s��������G�1�1�1�E�E�E�'�'�'�0�0�0�-�-�-�1�1�1�1�1�1�0�0�0�3�3�3�3�3�3�5�5�5�1�1�1�
1�1�1�7�7�7�
3�3�3�-�-�-�I�I�I�
4�
4�
4�F�F�F�'�'�'�5�5�5�I�I�I�Q�Q�Q�?�?�?�O�O�O�O�Orr}c� �eZdZejZdZdS)�EscapedExcelraN)rrrr6r9r*r.rrrr�r��s�������n�G��J�J�Jrr�c�.�eZdZe��Zd�Zd�ZdS)�TestEscapedExcelc�6�|�dggd��dS)Nr��
abc\,def
r�rs r�test_escape_fieldsepz%TestEscapedExcel.test_escape_fieldsep�r�rc�6�|�ddgg��dS)Nr�r�rrs r�test_read_escape_fieldsepz*TestEscapedExcel.test_read_escape_fieldsep�s"������)��
�>�>�>�>�>rN)rrrr�rOr�r�rrrr�r��s=�������l�n�n�G�?�?�?�?�?�?�?�?rr�c��eZdZdZd�Zd�ZdS)�TestDialectUnix�unixc�8�|�gd�gd��dS)N)r$�abc defr��"1","abc def","abc"
r�rs rr�z"TestDialectUnix.test_simple_writerr�rc�8�|�dgd�g��dS)Nr�)r�r�r�rrs r�test_simple_readerz"TestDialectUnix.test_simple_readers)�����6�9P�9P�9P�8Q�R�R�R�R�RrN)rrrrOr�r�rrrr�r��s?�������G�Q�Q�Q�S�S�S�S�Srr�c� �eZdZejZdZdS)�QuotedEscapedExcelraN)rrrr6r�r*r.rrrr�r�s�������"�G��J�J�Jrr�c�.�eZdZe��Zd�Zd�ZdS)�TestQuotedEscapedExcelc�6�|�dggd��dSr�r�rs r�test_write_escape_fieldsepz1TestQuotedEscapedExcel.test_write_escape_fieldsepr�rc�6�|�ddgg��dS)Nz"abc\,def"
r�rrs rr�z0TestQuotedEscapedExcel.test_read_escape_fieldseps#�����0�I�;�-�@�@�@�@�@rN)rrrr�rOr�r�rrrr�r�sE������ � �"�"�G�?�?�?�A�A�A�A�Arr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestDictFieldsc���tddd���5}tj|gd����}|���}|�|d��ddd��dS#1swxYwYdS)Nrxryr+rz��f1�f2�f3��
fieldnamesr�)rr6�
DictWriter�writeheaderrN)rr�rG�writeheader_return_values    r�test_writeheader_return_valuez,TestDictFields.test_writeheader_return_values���
�4�'�2�
>�
>�
>�	;�'��^�G�:L�:L�:L�M�M�M�F�'-�'9�'9�';�';�$����5�r�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�AA#�#A'�*A'c��tddd���5}tj|gd����}|���|�d��|�|���d��|�d	d
d���|�d��|���|�|���d��ddd��dS#1swxYwYdS)
Nrxryr+rzr�r�r�
f1,f2,f3
r�r�)r�r�z	10,,abc
)	rr6r�r�r~rN�readliner}rr�s   r�test_write_simple_dictz%TestDictFields.test_write_simple_dicts/��
�4�'�2�
>�
>�
>�	<�'��^�G�:L�:L�:L�M�M�M�F���� � � ��L�L��O�O�O����W�-�-�/�/��@�@�@��O�O�2�U�3�3�4�4�4��L�L��O�O�O����������W�\�\�^�^�]�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s�CC3�3C7�:C7c�X�t��}tj|gd����}|���|�|���d��|�dddd�ddd	d�g��|�|���d
��dS)Nr�r�r�r$r��fr���xyzzf1,f2,f3
1,abc,f
2,5,xyz
)rr6r�r�rNr�r�r�s   r�test_write_multiple_dict_rowsz,TestDictFields.test_write_multiple_dict_rows(s����*�*�����4F�4F�4F�G�G�G������������)�)�+�+�^�<�<�<�����%�s�;�;�!"�!�5�9�9�;�	<�	<�	<�����)�)�+�+�=�	?�	?�	?�	?�	?rc�n�t��}|�ttj|��dSr)rr4r5r6r��rr�s  r�test_write_no_fieldsz#TestDictFields.test_write_no_fields2s+���*�*�����)�S�^�W�=�=�=�=�=rc��tddd���5}tj|gd����}|�t��5}|�ddd	d
���ddd��n#1swxYwYt
|j��}|�d|��|�d|��|�	d
|��|�d|��ddd��dS#1swxYwYdS)Nrxryr+rzr�r�r��spamr�)�f4r�r$r�z'f4'z'f2'r�)
rr6r�r4r�r}�str�	exception�assertIn�assertNotIn)rr�rG�cxr�s     r�#test_write_fields_not_in_fieldnamesz2TestDictFields.test_write_fields_not_in_fieldnames6s���
�4�'�2�
>�
>�
>�		*�'��^�G�:L�:L�:L�M�M�M�F��"�"�:�.�.�
D�"����r��E� B� B�C�C�C�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D�
D����
D�
D�
D�
D��B�L�)�)�I��M�M�,�	�2�2�2��M�M�&�)�,�,�,����V�Y�/�/�/��M�M�#�y�)�)�)�		*�		*�		*�		*�		*�		*�		*�		*�		*�		*�		*�		*����		*�		*�		*�		*�		*�		*s6�3C0�A,� C0�,A0	�0C0�3A0	�4A/C0�0C4�7C4c�x�t��}|�ttj|ddgd���dS)Nr�r��raised��extrasaction)rr4r�r6r�r�s  r�&test_typo_in_extrasaction_raises_errorz5TestDictFields.test_typo_in_extrasaction_raises_errorBsC���*�*�����*�c�n�g��d�|�'/�	�	1�	1�	1�	1�	1rc��t��}tj|ddgd���}ddddd	�}|�ttjj||��dS)
Nr�r��raiser�rr$r�r���f0r�r�r�)rr6r�r4r�r}�rr�rG�dictrows    r�)test_write_field_not_in_field_names_raisez8TestDictFields.test_write_field_not_in_field_names_raiseGs[���*�*�����$���G�L�L�L���!�1�A�6�6�����*�c�n�&=�v�w�O�O�O�O�Orc���t��}tj|ddgd���}ddddd	�}tj�||��|�|���d
��dS)Nr�r��ignorer�rr$r�r�rz1,2
)rr6r�r}rNr�rs    r�*test_write_field_not_in_field_names_ignorez9TestDictFields.test_write_field_not_in_field_names_ignoreMsv���*�*�����$���H�M�M�M���!�1�A�6�6��������0�0�0�����)�)�+�+�Y�7�7�7�7�7rc�,�tdd���5}|�d��|�d��tj|gd����}|�t
|��dd	d
d���ddd��dS#1swxYwYdS)NrxryrFz	1,2,abc
rr�r�r�r�r��rrDr~r6�
DictReaderrNr��rr�r>s   r�test_read_dict_fieldsz$TestDictFields.test_read_dict_fieldsTs���
�4�'�
2�
2�
2�	P�g��M�M�-�(�(�(��L�L��O�O�O��^�G�/A�/A�/A�C�C�C�F����T�&�\�\�#�S��+N�+N�O�O�O�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P����	P�	P�	P�	P�	P�	Ps�A*B	�	B
�B
c�^�tdd���5}|�d��|�d��tj|��}|�t
|��dddd	���|�|jgd	���ddd��dS#1swxYwYdS)
NrxryrF�f1,f2,f3
1,2,abc
rr�r�r�r�)rrDr~r6r
rNr�r�rs   r�test_read_dict_no_fieldnamesz+TestDictFields.test_read_dict_no_fieldnames\s��
�4�'�
2�
2�
2�	D�g��M�M�3�4�4�4��L�L��O�O�O��^�G�,�,�F����T�&�\�\�#�S��+N�+N�O�O�O����V�.�0B�0B�0B�C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	D�	Ds�BB"�"B&�)B&c	��tdd���5}|�d��|�d��tj|ttj|�������}|�|jgd���|�t|��dd	d
d���ddd��dS#1swxYwYdS)NrxryrFrrr�r�r�r�r�)	rrDr~r6r
r�r>rNr�rs   r�#test_read_dict_fieldnames_from_filez2TestDictFields.test_read_dict_fieldnames_from_filefs!��
�4�'�
2�
2�
2�	P�g��M�M�3�4�4�4��L�L��O�O�O��^�G�/3�C�J�w�4G�4G�/H�/H�J�J�J�F����V�.�0B�0B�0B�C�C�C����T�&�\�\�#�S��+N�+N�O�O�O�
	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P����	P�	P�	P�	P�	P�	Ps�B$C�C�
Cc	��ddl}tdd���5}|�d��|�d��t	j|��}t
|��}|�|g|��D]9}|�|j	gd���|�|ddd	d����:	ddd��dS#1swxYwYdS)
NrrxryrFrr�r�r�r�)
�	itertoolsrrDr~r6r
r��chainrNr�)rrr�r>�firstrs      r�test_read_dict_fieldnames_chainz.TestDictFields.test_read_dict_fieldnames_chainos;������
�4�'�
2�
2�
2�	K�g��M�M�3�4�4�4��L�L��O�O�O��^�G�,�,�F���L�L�E� ����w��7�7�
K�
K��� � ��!2�4F�4F�4F�G�G�G�� � ��S��5�&I�&I�J�J�J�J�
K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	Ks�BC�C�
Cc�0�tdd���5}|�d��|�d��tj|ddg���}|�t
|��d	d
gd�d���ddd��dS#1swxYwYdS)
NrxryrF�1,2,abc,4,5,6
rr�r�r�r�r��r�r�r�r�)r�r�Nrrs   r�test_read_longzTestDictFields.test_read_longzs��
�4�'�
2�
2�
2�	L�g��M�M�-�.�.�.��L�L��O�O�O��^�G�04�d�|�=�=�=�F����T�&�\�\�#�S�3I�3I�3I�,K�,K�
L�
L�
L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�	L�	Ls�A,B�B�Bc�2�tdd���5}|�d��|�d��tj|ddgd�	��}|�t
|��d
dgd�d
���ddd��dS#1swxYwYdS)NrxryrFrrr�r��_rest)r��restkeyr�r�r�r�r�rrrs   r�test_read_long_with_restz'TestDictFields.test_read_long_with_rest�s��
�4�'�
2�
2�
2�	O�g��M�M�-�.�.�.��L�L��O�O�O��^�G�04�d�|�W�N�N�N�F����T�&�\�\�#�S�6L�6L�6L�,N�,N�
O�
O�
O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O�	O�	Os�A-B�B�Bc�f�tdd���5}|�d��|�d��tj|d���}|�|jdd	g��|�t|��d
dgd�d
���ddd��dS#1swxYwYdS)NrxryrFzf1,f2
1,2,abc,4,5,6
rr�r r�r�r�r�rr!)rrDr~r6r
rNr�r�rs   r�&test_read_long_with_rest_no_fieldnamesz5TestDictFields.test_read_long_with_rest_no_fieldnames�s��
�4�'�
2�
2�
2�	O�g��M�M�6�7�7�7��L�L��O�O�O��^�G�W�=�=�=�F����V�.��t��=�=�=����T�&�\�\�#�S�6L�6L�6L�,N�,N�
O�
O�
O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O�	O�	Os�BB&�&B*�-B*c��tdd���5}|�d��|�d��tj|d���d���}|�t|��d	d
ddd
dd���|�t|��d	d
ddddd���ddd��dS#1swxYwYdS)NrxryrFz1,2,abc,4,5,6
1,2,abc
r�1 2 3 4 5 6�DEFAULT)r��restvalr�r�r�r�r�r��r�r�r�r�r�r�)rrDr~r6r
�splitrNr�rs   r�test_read_shortzTestDictFields.test_read_short�s8��
�4�'�
2�
2�
2�
	>�g��M�M�8�9�9�9��L�L��O�O�O��^�G�/<�/B�/B�/D�/D�,5�7�7�7�F�
���T�&�\�\��3�U�25�C�c�,K�,K�
L�
L�
L����T�&�\�\��3�U�2;�)�2;�,=�,=�
>�
>�
>�
	>�
	>�
	>�
	>�
	>�
	>�
	>�
	>�
	>�
	>�
	>�
	>����
	>�
	>�
	>�
	>�
	>�
	>s�B(C�C�Cc	��gd�}tj|d������}|�t	|��dddddd	���dS)
N)z2147483648,43.0e12,17,abc,def
z147483648,43.0e2,17,abc,def
z47483648,43.0,170,abc,def
zi1 float i2 s1 s2r��
2147483648z43.0e12�17r�rH)�i1�float�i2�s1�s2�r6r
r+rNr�)r�sampler>s   r�test_read_multizTestDictFields.test_read_multi�s����������+>�+D�+D�+F�+F�H�H�H������f���l�2;�/3�/4�/4�	(6�(6�	7�	7�	7�	7�	7rc
��tjgd�d������}|�t	|��dddddd	d
���|�t	|��dddddd	d
���dS)N)rrKrr'r�r�r�r�r�r�r�r*r5�rr>s  r�test_read_with_blanksz$TestDictFields.test_read_with_blanks�s�����!6�!6�!6�+8�+>�+>�+@�+@�B�B�B��	
����f���S�s��.1��#�(G�(G�	H�	H�	H�����f���S�s��.1��#�(G�(G�	H�	H�	H�	H�	Hrc
��tjdgd���d���}|�t	|��ddddd	d
d���dS)Nz1;2;abc;4;5;6
r'r�)r�r!r�r�r�r�r�r�r*r5r9s  r�test_read_semi_sepz!TestDictFields.test_read_semi_sep�sz����!4� 5�+8�+>�+>�+@�+@�*-�/�/�/��	
����f���S�s��.1��#�(G�(G�	H�	H�	H�	H�	HrN)rrrr�r�r�r�r�rrr
rrrrrr"r%r,r7r:r<rrrr�r�sQ������;�;�;�	<�	<�	<�?�?�?�>�>�>�
*�
*�
*�1�1�1�
P�P�P�8�8�8�P�P�P�D�D�D�P�P�P�	K�	K�	K�L�L�L�O�O�O�O�O�O�>�>�>�
7�
7�
7�H�H�H�H�H�H�H�Hrr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestArrayWritesc���ddl}d�td��D��}|�d|��}tddd���5}tj|d	�
��}|�|��d�d�|D����d
z}|�d��|�|�	��|��ddd��dS#1swxYwYdS)Nrc��g|]}d|z
��S)�r��.0r�s  r�
<listcomp>z2TestArrayWrites.test_int_write.<locals>.<listcomp>�s��.�.�.�q�R��T�.�.�.rrAr�rxryr+rzr*rGrJc�,�g|]}t|����Sr�r�rBs  rrDz2TestArrayWrites.test_int_write.<locals>.<listcomp>���� 3� 3� 3�A��Q��� 3� 3� 3rrK�
�arrayrorr6rGr}�joinr~rNr�rrI�contentsr�r�rGrOs       r�test_int_writezTestArrayWrites.test_int_write�s%������.�.�E�"�I�I�.�.�.���K�K��X�&�&��
�4�'�2�
>�
>�
>�	7�'��Z���9�9�9�F��O�O�A�����x�x� 3� 3�� 3� 3� 3�4�4�V�;�H��L�L��O�O�O����W�\�\�^�^�X�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7��BC�C"�%C"c���ddl}d�td��D��}|�d|��}tddd���5}tj|d	�
��}|�|��d�d�|D����d
z}|�d��|�|�	��|��ddd��dS#1swxYwYdS)Nrc��g|]
}d|z
dz��S�rAg�������?rrBs  rrDz5TestArrayWrites.test_double_write.<locals>.<listcomp>�� ��2�2�2�1�R��T�3�J�2�2�2rrAr�rxryr+rzr*rGrJc�,�g|]}t|����SrrFrBs  rrDz5TestArrayWrites.test_double_write.<locals>.<listcomp>�rGrrKrHrKs       r�test_double_writez!TestArrayWrites.test_double_write��%������2�2��b�	�	�2�2�2���K�K��X�&�&��
�4�'�2�
>�
>�
>�	7�'��Z���9�9�9�F��O�O�A�����x�x� 3� 3�� 3� 3� 3�4�4�V�;�H��L�L��O�O�O����W�\�\�^�^�X�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7rNc���ddl}d�td��D��}|�d|��}tddd���5}tj|d	�
��}|�|��d�d�|D����d
z}|�d��|�|�	��|��ddd��dS#1swxYwYdS)Nrc��g|]
}d|z
dz��SrQrrBs  rrDz4TestArrayWrites.test_float_write.<locals>.<listcomp>�rRrrAr�rxryr+rzr*rGrJc�,�g|]}t|����SrrFrBs  rrDz4TestArrayWrites.test_float_write.<locals>.<listcomp>�rGrrKrHrKs       r�test_float_writez TestArrayWrites.test_float_write�rUrNc��ddl}ddl}|�d|j��}tddd���5}t	j|d���}|�|��d	�|��d
z}|�d��|�	|�
��|��ddd��dS#1swxYwYdS)Nr�urxryr+rzr*rGrJrK)rI�string�
ascii_lettersrr6rGr}rJr~rNr)rrIr\r�r�rGrOs       r�test_char_writezTestArrayWrites.test_char_write�s
�����������K�K��V�1�2�2��
�4�'�2�
>�
>�
>�	7�'��Z���9�9�9�F��O�O�A�����x�x��{�{�6�)�H��L�L��O�O�O����W�\�\�^�^�X�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�BC�C�CN)rrrrMrTrYr^rrrr>r>�sP������
7�
7�
7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7rr>c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestDialectValidityc��Gd�dtj��}|��}|�|jtj��d|_|�tj|��d|_tj|_d|_	|��}|�|jtj��|�|j	d��|�
|j��d|_	|�tj��5}|��ddd��n#1swxYwY|�t|j��d��d|_	|�tj��5}|��ddd��n#1swxYwY|�t|j��d��d|_	|�tj��5}|��ddd��n#1swxYwY|�t|j��d	��dS)
Nc�0�eZdZdZdZdZdZdZej	Z
dS)�3TestDialectValidity.test_quoting.<locals>.mydialectr�raFTrKN�rrrr!r.rQr1r(r6r9r*rrrr:rc��/�������I��J��K�#��#�N��n�G�G�Grr:TrLr+z("quotechar" must be a 1-character stringz''r�z+"quotechar" must be string or None, not int)
r6r=rNr*r9r4r7rQr8r&�
assertTruer�r��rr:r��cms    r�test_quotingz TestDialectValidity.test_quoting�s���	%�	%�	%�	%�	%���	%�	%�	%�
�I�K�K�������C�N�3�3�3� �	�����#�)�Y�/�/�/� $�	���M�	��!�	���I�K�K�������C�M�2�2�2������c�*�*�*�����
�&�&�&� �	��
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�C�	E�	E�	E�#�	��
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�C�	E�	E�	E� �	��
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�F�	H�	H�	H�	H�	Hs6�D/�/D3�6D3�F�F#�&F#�8H�H�Hc���Gd�dtj��}|��}|�|jd��d|_|�tj��5}|��ddd��n#1swxYwY|�t
|j��d��d|_|�tj��5}|��ddd��n#1swxYwY|�t
|j��d��d|_|�tj��5}|��ddd��n#1swxYwY|�t
|j��d��d	|_|�tj��5}|��ddd��n#1swxYwY|�t
|j��d
��d|_|�tj��5}|��ddd��n#1swxYwY|�t
|j��d��dS)Nc�0�eZdZdZdZdZdZdZej	Z
dS)�5TestDialectValidity.test_delimiter.<locals>.mydialectr�raFTrKNrdrrrr:rlrerr:r��:::z("delimiter" must be a 1-character stringr+�,z%"delimiter" must be string, not bytesr�z#"delimiter" must be string, not intz("delimiter" must be string, not NoneType)r6r=rNr!r4r7r�r�rgs    r�test_delimiterz"TestDialectValidity.test_delimiters���	%�	%�	%�	%�	%���	%�	%�	%�
�I�K�K�������c�*�*�*�#�	��
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�C�	E�	E�	E�!�	��
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�C�	E�	E�	E�#�	��
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�@�	B�	B�	B� �	��
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�>�	@�	@�	@�#�	��
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�C�	E�	E�	E�	E�	EsZ�$A;�;A?�A?�C+�+C/�2C/�E�E�"E�4G�G�G�$H;�;H?�H?c���Gd�dtj��}|��}|�|jd��d|_|�tjd��5|��ddd��n#1swxYwYd|_|�tjd��5|��ddd��n#1swxYwYd|_|�tjd��5|��ddd��n#1swxYwYd	|_|�tjd
��5|��ddd��dS#1swxYwYdS)Nc�0�eZdZdZdZdZdZdZej	Z
dS)�6TestDialectValidity.test_escapechar.<locals>.mydialectr�raFTrKNrdrrrr:rrBrerr:rar+z)"escapechar" must be a 1-character stringz**�*z."escapechar" must be string or None, not bytesr�z,"escapechar" must be string or None, not int)r6r=rNr.r�r7)rr:r�s   r�test_escapecharz#TestDialectValidity.test_escapecharAsl��	%�	%�	%�	%�	%���	%�	%�	%�
�I�K�K�������t�,�,�,�!�	��
�
#�
#�C�I�/Z�
[�
[�	�	��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	� $�	��
�
#�
#�C�I�/Z�
[�
[�	�	��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	� $�	��
�
#�
#�C�I�/_�
`�
`�	�	��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	� !�	��
�
#�
#�C�I�/]�
^�
^�	�	��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sH�%A<�<B�B�.C�C	�C	�7D�D�D�E�E�Ec��Gd�dtj��}|��}|�|jd��d|_|��}|�|jd��d|_|�tj��5}|��ddd��n#1swxYwY|�t
|j��d��dS)Nc�0�eZdZdZdZdZdZdZej	Z
dS)�:TestDialectValidity.test_lineterminator.<locals>.mydialectr�raFTrKNrdrrrr:rw]rerr:rKrmr�z!"lineterminator" must be a string)r6r=rNr(r4r7r�r�rgs    r�test_lineterminatorz'TestDialectValidity.test_lineterminator\s,��	%�	%�	%�	%�	%���	%�	%�	%�
�I�K�K������)�6�2�2�2�#(�	� ��I�K�K������)�5�1�1�1�#$�	� �
�
�
�s�y�
)�
)�	�R��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����R�\�*�*�<�	>�	>�	>�	>�	>s�B'�'B+�.B+c��d�}dD]�}|�|���5|�tj||d��|�tj||d��|�tj||d��|�tj||d��ddd��n#1swxYwY��dS)Nc�l�Gd�dtj��}t|||��|��}dS)Nc��eZdZdS)�QTestDialectValidity.test_invalid_chars.<locals>.create_invalid.<locals>.mydialectNrdrrrr:r|ss�������rr:)r6r=rV)�
field_name�valuer:r�s    r�create_invalidz>TestDialectValidity.test_invalid_chars.<locals>.create_invalidrsO��
�
�
�
�
�C�K�
�
�
��I�z�5�1�1�1��	���A�A�Ar)r!r.r&)r}r+r��xr�)r�r4r6r7)rrr}s   r�test_invalid_charsz&TestDialectValidity.test_invalid_charsqs��	�	�	�C�	L�	L�J������4�4�
L�
L��!�!�#�)�^�Z��L�L�L��!�!�#�)�^�Z��O�O�O��!�!�#�)�^�Z��N�N�N��!�!�#�)�^�Z��K�K�K�	
L�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L����
L�
L�
L�
L��	L�	Ls�B	B3�3B7	�:B7	N)rrrrirortrxr�rrrr`r`�sl������&H�&H�&H�P'E�'E�'E�R���6>�>�>�*L�L�L�L�Lrr`c���eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
ed��Zed
��Zed��Zed��ZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestSnifferz�Harry's, Arlington Heights, IL, 2/1/03, Kimi Hayes
Shark City, Glendale Heights, IL, 12/28/02, Prezence
Tommy's Place, Blue Island, IL, 12/28/02, Blue Sunday/White Crow
Stonecutters Seafood and Chop House, Lemont, IL, 12/19/02, Week Back
a'Harry''s':'Arlington Heights':'IL':'2/1/03':'Kimi Hayes'
'Shark City':'Glendale Heights':'IL':'12/28/02':'Prezence'
'Tommy''s Place':'Blue Island':'IL':'12/28/02':'Blue Sunday/White Crow'
'Stonecutters ''Seafood'' and Chop House':'Lemont':'IL':'12/19/02':'Week Back'
z+"venue","city","state","date","performers"
z�05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
zT2147483648;43.0e12;17;abc;def
147483648;43.0e2;17;abc;def
47483648;43.0;170;abc;def
zaaa	bbb
AAA	
BBB	
za|b|c
d|e|f
z'a'|'b'|'c'
'd'|e|f
z+"venue"+"city"+"state"+"date"+"performers"
z�Harry's+ Arlington Heights+ IL+ 2/1/03+ Kimi Hayes
Shark City+ Glendale Heights+ IL+ 12/28/02+ Prezence
Tommy's Place+ Blue Island+ IL+ 12/28/02+ Blue Sunday/White Crow
Stonecutters Seafood and Chop House+ Lemont+ IL+ 12/19/02+ Week Back
a'Harry''s'+ Arlington Heights'+ 'IL'+ '2/1/03'+ 'Kimi Hayes'
'Shark City'+ Glendale Heights'+' IL'+ '12/28/02'+ 'Prezence'
'Tommy''s Place'+ Blue Island'+ 'IL'+ '12/28/02'+ 'Blue Sunday/White Crow'
'Stonecutters ''Seafood'' and Chop House'+ 'Lemont'+ 'IL'+ '12/19/02'+ 'Week Back'
z|
                        abc,def
                        ghijkl,mno
                        ghi,jkl
                        z~
                        abc,def
                        ghijkl,mnop
                        ghi,jkl
                         z�"time","forces"
                        1,1.5
                        0.5,5+0j
                        0,0
                        1+1j,6
                        z|"time","forces"
                        0,0
                        1,2
                        a,b
                        zabcdef
ghijklmno
ghijkl
c���tj��}|�|�|j����|�|�|j����dSr)r6�Snifferrf�
has_header�sample12�assertFalse�sample13�r�sniffers  r�test_issue43625zTestSniffer.test_issue43625�sY���+�-�-������*�*�4�=�9�9�:�:�:�����+�+�D�M�:�:�;�;�;�;�;rc���tj��}|�|�|j����|�|�|j����dS)zDMore to document existing (unexpected?) behavior than anything else.N)r6r�r�r��sample10�sample11r�s  r�test_has_header_stringsz#TestSniffer.test_has_header_strings�s[���+�-�-������+�+�D�M�:�:�;�;�;�����+�+�D�M�:�:�;�;�;�;�;rc���tj��}|�|�|j��d��|�|�|j|jz��d��dS�NFT)r6r�rPr��sample1�header1r�s  r�test_has_headerzTestSniffer.test_has_header��b���+�-�-���
�
�g�(�(���6�6��>�>�>��
�
�g�(�(�����)D�E�E�t�L�L�L�L�Lrc���tj��}|�|�|j��d��|�|�|j|jz��d��dSr�)r6r�rPr��sample8�header2r�s  r�'test_has_header_regex_special_delimiterz3TestSniffer.test_has_header_regex_special_delimiter�r�rc��tj��}dD]�}|�|��5|�|d��}|�|jd��|�|jd��|�|jd��|�|j	d��ddd��n#1swxYwY��dS)N)z	;'123;4';z'123;4';z;'123;4'z'123;4'z,;r�r<F)
r6r�r��sniffrNr!r&rPrQr1)rr��headerrOs    r�test_guess_quote_and_delimiterz*TestSniffer.test_guess_quote_and_delimiter�s���+�-�-��F�	?�	?�F����f�%�%�
?�
?�!�-�-���5�5��� � ��!2�C�8�8�8�� � ��!2�C�8�8�8��
�
�g�1�5�9�9�9��
�
�g�6��>�>�>�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?��	?�	?s�BB<�<C	�C	c���tj��}|�|j��}|�|jd��|�|jd��|�|jd��|�|j	��}|�|jd��|�|jd��|�|jd��dS)NrJrLTrMr<F)
r6r�r�r�rNr!r&rPr1�sample2�rr�rOs   r�
test_sniffzTestSniffer.test_sniff�s����+�-�-���-�-���-�-������*�C�0�0�0�����*�C�0�0�0��
�
�g�.��5�5�5��-�-���-�-������*�C�0�0�0�����*�C�0�0�0��
�
�g�.��6�6�6�6�6rc���tj��}|�|j��}|�|j|j��|�|jd���}|�|jd��|�|jd���}|�|jd��|�|j��}|�|jd��|�|j��}|�|jd��|�|j	��}|�|jd��|�|j
��}|�|jd��|�|jd	��|�|j��}|�|jd
��|�|j
��}|�|jd
��|�|jd	��|�|j��}|�|jd��dS)Nz?,)�
delimiters�?z/,�/r�r/r]r<�+r�)r6r�r��sample3r�r!rN�sample4�sample5�sample6�sample7r&r��sample9�sample14r�s   r�test_delimiterszTestSniffer.test_delimiters�s���+�-�-���-�-���-�-��	
�
�
�g�'���6�6�6��-�-����-�>�>������*�C�0�0�0��-�-����-�>�>������*�C�0�0�0��-�-���-�-������*�C�0�0�0��-�-���-�-������*�D�1�1�1��-�-���-�-������*�C�0�0�0��-�-���-�-������*�C�0�0�0�����*�C�0�0�0��-�-���-�-������*�C�0�0�0��-�-���-�-������*�C�0�0�0�����*�C�0�0�0��-�-��
�.�.������*�D�1�1�1�1�1rc�4�tj��}|�|j��}|�|j��|�|j��}|�|j��|�|j��}|�|j��|�|j	��}|�|j��|�|j
��}|�|j��dSr)r6r�r�r�r�rQr�r�rfr�r�r�s   r�test_doublequotezTestSniffer.test_doublequotes����+�-�-���-�-���-�-������,�-�-�-��-�-���-�-������,�-�-�-��-�-���-�-������+�,�,�,��-�-���-�-������,�-�-�-��-�-���-�-������+�,�,�,�,�,rN)rrrr�r�r�r�r�r�r�r�r�r�r�r
r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r��sB�������G��G��G��G��G�/�G�"�G�*�G��G��G��G��v����H��v����H��v����H��v����H��H�<�<�<�
<�<�<�M�M�M�
M�M�M�
?�?�?�
7�
7�
7�2�2�2�8-�-�-�-�-rr�c��eZdZd�ZeZdS)�NULc��dSrr)�srWs  rrDz	NUL.write&s���rN)rrrrD�
writelinesrrrr�r�%s"������
�
�
��J�J�Jrr��gettotalrefcountzrequires sys.gettotalrefcount()c�&�eZdZd�Zd�Zd�Zd�ZdS)�	TestLeaksc��d}tj��}td��D]�}tj��|�tjg��tj��}tjdg��tjdg��tjdg��||z
}|}��|�	|d��dS)NrrA�a,b,c
r��
�sysr�ro�gc�collectrN�garbager6r>�
assertLess)r�delta�lastrcr��rcs     r�test_create_readzTestLeaks.test_create_read-s������%�'�'���r���	�	�A��J�L�L�L����R�Z��,�,�,��%�'�'�B��J��}�%�%�%��J��}�%�%�%��J��}�%�%�%��v�I�E��F�F�����q�!�!�!�!�!rc��d}tj��}t��}td��D]�}t	j��|�tjg��tj��}tj	|��tj	|��tj	|��||z
}|}��|�
|d��dS)NrrAr�)r�r�r�ror�r�rNr�r6rGr�)rr�r�r�r�r�s      r�test_create_writezTestLeaks.test_create_write<s������%�'�'���E�E���r���	�	�A��J�L�L�L����R�Z��,�,�,��%�'�'�B��J�q�M�M�M��J�q�M�M�M��J�q�M�M�M��v�I�E��F�F�����q�!�!�!�!�!rc�X�d}dgdz}tj��}td��D]h}tj��|�tjg��tj��}tj|��}|D]}�||z
}|}�i|�	|d��dS)Nrr�r�rAr�)rr�rr�r�r��rdrrs        r�	test_readzTestLeaks.test_readLs������}�Q����%�'�'���r���	�	�A��J�L�L�L����R�Z��,�,�,��%�'�'�B��*�T�"�"�C��
�
����v�I�E��F�F�����q�!�!�!�!�!rc��d}gd�gdz}t��}tj��}td��D]}}t	j��|�tjg��tj��}tj	|��}|D]}|�
|���||z
}|}�~|�|d��dS)NrrNr�rA)r�r�r�ror�r�rNr�r6rGr}r�)	rr�rr�r�r�r�rGrs	         r�
test_writezTestLeaks.test_write\s��������y��{���E�E���%�'�'���r���	�	�A��J�L�L�L����R�Z��,�,�,��%�'�'�B��Z��]�]�F��
%�
%������$�$�$�$��v�I�E��F�F�����q�!�!�!�!�!rN)rrrr�r�r�r�rrrr�r�*sP������
"�
"�
"�"�"�"� "�"�"� "�"�"�"�"rr�c�"�eZdZgd�Zd�Zd�ZdS)�TestUnicode)uMartin von LöwisuMarc André LemburgzGuido van RossumuFrançois Pinardc�`�tddd���5}|�d�|j��dz��|�d��tj|��}|�t|��|jg��ddd��dS#1swxYwYdS�Nrxr+ryrMrJrKr)	rrDrJ�namesr~r6r>rNr�rs   r�test_unicode_readzTestUnicode.test_unicode_readts���
�4��g�
>�
>�
>�	9�'��M�M�#�(�(�4�:�.�.��7�8�8�8��L�L��O�O�O��Z��(�(�F����T�&�\�\�D�J�<�8�8�8�		9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s�BB#�#B'�*B'c�l�tddd���5}tj|��}|�|j��d�|j��dz}|�d��|�|���|��ddd��dS#1swxYwYdSr�)	rr6rGr}r�rJr~rNr)rr�rGrOs    r�test_unicode_writezTestUnicode.test_unicode_write|s���
�4��g�
>�
>�
>�	7�'��Z��(�(�F��O�O�D�J�'�'�'��x�x��
�+�+�F�2�H��L�L��O�O�O����W�\�\�^�^�X�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�B	B)�)B-�0B-N)rrrr�r�r�rrrr�r�msC������
!�
!�
!�E�
9�9�9�7�7�7�7�7rr�c��eZdZd�Zd�ZdS)�KeyOrderingTestc��t��}td��D]�}tddd���5}tj||��}|���|�d��tj|��}t|j	��}|�
||��|�|��ddd��n#1swxYwY��|�
t|��dd��dS)	N�abcderxr+ryrMr�xz@Key ordering: some key permutations not collected (expected 120))
�setr	rr6r�r�r~r
�tupler�rN�add�len)r�	resultset�keys�
fileobject�dw�dr�kts       r�,test_ordering_for_the_dict_reader_and_writerz<KeyOrderingTest.test_ordering_for_the_dict_reader_and_writer�s*���E�E�	� ��)�)�	"�	"�D��t�R�'�B�B�B�
"�j��^�J��5�5����� � � �����"�"�"��^�J�/�/���2�=�)�)��� � ��r�*�*�*��
�
�b�!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"��	
����Y����.p�q�q�q�q�qs�BC�C	�C	c�6�td�����}|�tt	j|����t
ddg��t
dddddgfg��t
dd	g��t
d
dg��g��|�tt	j|d�
����t
ddg��t
dddddgfg��t
dd	g��t
d
dg��g��|d=|�tt	j|ddg�����t
ddg��t
dddddgfg��t
ddg��t
ddg��g��dS)Nz�            FirstName,LastName
            Eric,Idle
            Graham,Chapman,Over1,Over2

            Under1
            John,Cleese
        )�	FirstName�Eric)�LastName�Idle)r��Graham)r��Chapman�Over1�Over2)r��Under1)r�N)r��John)r��Cleese�	OtherInfor$r�fname�lnamer�)r�r�)r�r�)r�r�)r�r�)r�r�)r�N)r�r�)r�r�)r
�
splitlinesrNr�r6r
r)r�datas  r�test_ordered_dict_readerz(KeyOrderingTest.test_ordered_dict_reader�s�����
�
��Z�\�\�	
�	
����c�n�T�2�2�3�3�
�/�1E�F�
G�
G�
�1�3J��'�7�!3�4�6�7�7�
�1�3E�F�
G�
G�
�/�1G�H�
I�
I�	
�	�	�	�	
����c�n�T�;�G�G�G�H�H�
�/�1E�F�
G�
G�
�1�3J�&��'�(:�;�=�>�>�
�1�3E�F�
G�
G�
�/�1G�H�
I�
I�	
�	�	�	�
��G�����c�n�T�w��>P�Q�Q�Q�R�R�
�+�->�?�
@�
@�
�-�/C��'�7�!3�4�6�7�7�
�-��?�
@�
@�
�+�-@�A�
B�
B�	
�	�	�	�	�	rN)rrrr�r�rrrr�r��s5������r�r�r�!�!�!�!�!rr�c�:�eZdZd�Zd�Zejd���ZdS)�MiscTestCasec�H�ddh}tj|td|���dS)Nr�__version__)r6�_csv)�extra)r�check__all__r6)rr�s  r�test__all__zMiscTestCase.test__all__�s,���M�*����T�3��u�E�E�E�E�E�Erc�6�Gd�dtj��}dS)Nc��eZdZdS)�+MiscTestCase.test_subclassable.<locals>.FooNrdrrr�Foor�s�������rr)r6r7)rrs  r�test_subclassablezMiscTestCase.test_subclassable�s$��!�!�!�!�!�#�)�!�!�!�!�!rc���tjd��}|j|jfD]@}|�|���5t||��ddd��n#1swxYwY�AdS)Nr�)�tp)r�
import_module�Reader�Writerr�r)rr�rs   r�test_disallow_instantiationz(MiscTestCase.test_disallow_instantiation�s����*�6�2�2���+�t�{�*�	7�	7�B������$�$�
7�
7�,�T�2�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��	7�	7s�A�A	�A	N)rrrr�rrrr	rrrr�r��sT������F�F�F�"�"�"�
��7�7���7�7�7rr��__main__)/rlr��unittest�ior�tempfilerr6r�rp�testr�test.supportrrrrr	�textwrapr
�collectionsrr
�TestCaserrrvr}r*r�r�r�r�r�r�r>r`r�r��
skipUnless�hasattrr�r�r�r�r�mainrrr�<module>rs�������
�
�
�
�����������"�"�"�"�"�"�
�
�
�
�	�	�	�	�
�
�
�
�������U�U�U�U�U�U�U�U�U�U�"�"�"�"�"�"�������#�#�#�#�#�#���������
X7�X7�X7�X7�X7�x� �X7�X7�X7�vKK�KK�KK�KK�KK�(�+�KK�KK�KK�Z>�>�>�>�>�(�#�>�>�>� _O�_O�_O�_O�_O�{�_O�_O�_O�B�����3�9����?�?�?�?�?�{�?�?�?�S�S�S�S�S�k�S�S�S�����������A�A�A�A�A�[�A�A�A�kH�kH�kH�kH�kH�X�&�kH�kH�kH�Z,7�,7�,7�,7�,7�h�'�,7�,7�,7�\NL�NL�NL�NL�NL�(�+�NL�NL�NL�bc-�c-�c-�c-�c-�(�#�c-�c-�c-�J��������
���W�W�S�"4�5�5�6�8�8�?"�?"�?"�?"�?"��!�?"�?"�8�8�?"�B7�7�7�7�7�(�#�7�7�7�.1�1�1�1�1�h�'�1�1�1�h7�7�7�7�7�8�$�7�7�7� �z����H�M�O�O�O�O�O��r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists