Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_csv.cpython-312.opt-2.pyc

�

'Μg�����ddlZddlZddlZddlmZddlmZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZddlmZddlmZddlmZGd	�d
�ZGd�dej.�ZGd
�dej.�ZGd�dej.�ZGd�de�ZGd�dej8�ZGd�de�ZGd�de�ZGd�dej8�Z Gd�de�Z!Gd�dej.�Z"Gd�d ej.�Z#Gd!�d"ej.�Z$Gd#�d$ej.�Z%Gd%�d&�Z&ejNe(ed'�d(�Gd)�d*ej.��Z)Gd+�d,ej.�Z*Gd-�d.ej.�Z+Gd/�d0ej.�Z,e-d1k(rej\�yy)2�N)�StringIO)�
TemporaryFile)�support)�warnings_helper�
import_helper�check_disallow_instantiation)�permutations)�dedent)�OrderedDictc��eZdZd�Zy)�BadIterablec��t��N��OSError��selfs �*/usr/local/lib/python3.12/test/test_csv.py�__iter__zBadIterable.__iter__s���
�N)�__name__�
__module__�__qualname__r�rrr
r
s��rr
c�p�eZdZ	d�Zd�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�Zej:ej<�ej@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(�Z/d)�Z0y*)+�Test_Csvc�t�|jt|�|jt|d�|jt||d��|jt||d��|jt||d��|jtj||d�|jt||d��|jt||d��|jt||d��|jt||d��|jt||d��|jt||d�	�|jt||tjd
��|jt||tjd��|jt||tj
d
��||d��||d�
�||d��||dd��||dd��||dd��||dd��||d��||d�
�||d��||d��||d�
�||d��||d��y)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����)�T�3�1��=����)�T�3�A��>����)�T�3�D��A����#�)�)�T�3��6����)�T�3�$��?����)�T�3�!��<����)�T�3�!��<����)�T�3�t��D����)�T�3�q��A����)�T�3���=����)�T�3�"%�-�-�2�	�	?����)�T�3�"%�-�-�4�	�	A����)�T�3�"%�.�.�B�	�	@��S�C� ��S�S�!��S�C� ��S�D�4�8��S�T�D�9��S�D�4�8��S�C�$�7��S�C� ��S�S�!��S�C� ��S�F�#��S�V�$��S�F�#��S��(rc��|jtjg�|jttjt��yr)r<r6�readerr4rr
rs r�test_reader_arg_validzTest_Csv.test_reader_arg_valid@s.�����S�Z�Z��,����'�3�:�:�{�}�=rc��|jtjt��Gd�d�}|j	t
tj|��y)Nc��eZdZed��Zy)�1Test_Csv.test_writer_arg_valid.<locals>.BadWriterc��t�rrrs r�writez7Test_Csv.test_writer_arg_valid.<locals>.BadWriter.writeGs���
rN)rrr�propertyrDrrr�	BadWriterrBFs��
�
��
rrF)r<r6�writerrr4r)rrFs  r�test_writer_arg_validzTest_Csv.test_writer_arg_validDs<�����S�Z�Z���4�	�	�	
���'�3�:�:�y�{�;rc��||�}|j|jjd�|j|jjd�|j|jj
d�|j|jjd�|j|jjd�|j|jjtj�|j|jjd�|j|jjd�|jtt|jd�|jtt |jdd�|jtt|jd�|jtt |jdd�y)	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_attrsLsB���D�k��������.�.��4��
�
�c�k�k�-�-�t�4�������/�/��6�������3�3�V�<�������.�.��4�������,�,�c�.?�.?�@��
�
�c�k�k�2�2�E�:��
�
�c�k�k�(�(�%�0����.�'�3�;�;��L����.�'�3�;�;��S�Q����.�'�3�;�;�	�J����.�'�3�;�;�#�T�	+rc�D�|jtjg�yr)rYr6r>rs r�test_reader_attrszTest_Csv.test_reader_attrs^���� � ����R�0rc�T�|jtjt��yr)rYr6rGrrs r�test_writer_attrszTest_Csv.test_writer_attrsa���� � ����X�Z�8rc
���tdddddtjdd��}||i|��}|j|jj
d�|j
|jjd�|j|jjd�|j|jjd�|j|jjd�|j|jjtj�|j
|jjd�|j
|jjd�y)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�n�t�!�#���D�#�F�#��������.�.��4��
�
�c�k�k�-�-�u�5�������/�/��6�������3�3�T�:�������.�.��4�������,�,�c�n�n�=��
�
�c�k�k�2�2�D�9��
�
�c�k�k�(�(�$�/rc�D�|jtjg�yr)rfr6r>rs r�test_reader_kw_attrszTest_Csv.test_reader_kw_attrsts�����C�J�J��+rc�T�|jtjt��yr)rfr6rGrrs r�test_writer_kw_attrszTest_Csv.test_writer_kw_attrsws�����C�J�J��
�3rc��Gd�d�}||fz}||�}|j|jjd�|j|jjd�|j|jj
d�|j|jjd�|j|jjd�|j|jjtj�|j|jjd�|j|jjd�y)	Nc�@�eZdZdZdZdZdZdZejZ
dZdZy)�-Test_Csv._test_dialect_attrs.<locals>.dialect�-Fr2�$�#TN)
rrrr!rQr.r(r&r6r8r*r1rSrrrrOrm|s/���I��K��J��N��I��M�M�G�!���FrrOrnFr2rorpT)
rNrOr!rPrQr.r(r&r*r6r8r1rS)rr:rWrOrXs     r�_test_dialect_attrszTest_Csv._test_dialect_attrszs���	�	��w�j� ���D�k��������.�.��4��
�
�c�k�k�-�-�u�5�������/�/��5�������3�3�S�9�������.�.��4�������,�,�c�m�m�<��
�
�c�k�k�2�2�D�9��
�
�c�k�k�(�(�%�0rc�D�|jtjg�yr)rqr6r>rs r�test_reader_dialect_attrsz"Test_Csv.test_reader_dialect_attrs�r\rc�T�|jtjt��yr)rqr6rGrrs r�test_writer_dialect_attrsz"Test_Csv.test_writer_dialect_attrs�r_rc�(�tddd��5}tj|fi|��}|j|�|j	d�|j|j
�||jjz�ddd�y#1swYyxYw�N�w+�utf-8r+��encoding�newliner)	rr6rG�writerow�seekrN�readrOr()r�fields�expectre�fileobjrGs      r�_write_testzTest_Csv._write_test�so��
�4�'�2�
>�'��Z�Z��2�6�2�F��O�O�F�#��L�L��O����W�\�\�^�#�f�n�n�&C�&C�C�
E�	?�
>�
>�s�A0B�Bc�F�tddd��5}tj|fi|��}|j|�5|j	|�ddd�|jd�|j
|j�d�ddd�y#1swY�CxYw#1swYyxYwrw)rr6rGr4r}r~rNr)r�excr�rer�rGs      r�_write_error_testzTest_Csv._write_error_test�s{��
�4�'�2�
>�'��Z�Z��2�6�2�F��"�"�3�'�����'�(��L�L��O����W�\�\�^�R�0�?�
>�'�'��?�
>�s"�(B�B�	9B�B	�B�B c��|jtjd�|jtt	��Gd�d�}|jt|��Gd�d�}|jt|�g�y)Nc��eZdZd�Zd�Zy)�.Test_Csv.test_write_arg_valid.<locals>.BadListc��y)N�
rrs r�__len__z6Test_Csv.test_write_arg_valid.<locals>.BadList.__len__�s��rc��|dkDrt�y)N�r)r�is  r�__getitem__z:Test_Csv.test_write_arg_valid.<locals>.BadList.__getitem__�s���q�5�!�M�rN)rrrr�r�rrr�BadListr��s��
�
"rr�c��eZdZd�Zy)�.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�sf�����s�y�y�$�/����w��
�6�	"�	"�	
���w��	�2�	�	�	
���w����4rc�@�ddz}|j||g|�d|���y)N�X�P�rJ)r�)r�	bigstrings  r�test_write_bigfieldzTest_Csv.test_write_bigfield�s*���%�K�	����)�I�.�#�Y�10�	1rc�@�|jgd�d�|jtjgd�tj��|jgd�dtj
��|jgd�dtj��|jgd�dtj��|jddgdtj��|jgd	�d
tj��|jgd	�dtj��y)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+Nr$z	"a","",,1z"a","",,"1")
r�r�r6r7r9rR�QUOTE_NONNUMERICr8�
QUOTE_STRINGS�
QUOTE_NOTNULLrs r�test_write_quotingzTest_Csv.test_write_quoting�s��������4����s�y�y�-�),���	�	9������#&�#4�#4�	�	6�����
�#&�#7�#7�	�	9������#&�=�=�	�	2����&���\�#&�=�=�	�	2�����+�#&�#4�#4�	�	6�����-�#&�#4�#4�	�	6rc���|jgd�dd��|jtjgd�dd��|jgd�ddd��|jd	gd
dtj��|jd	gddtjd�
�|jd	gddtj
��|jgd�ddtj
��|jddgddtj
��|jddgddtj��|jddgddtj��|jddgddtj��|jddgddtj
��|jddgddtj��|jgd�ddtj��y)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�y�/�*.�E�	�	C�����*;�$(��	�	?����#���$(�C�4E�4E�	�	G����#���$(�C�4E�4E�',�	�	.�	
���#���$(�C�N�N�	�	D������$(�C�N�N�	�	D����$���h�$(�#�.�.�	�	B����$���h�$(�#�2C�2C�	�	E����$���l�$(�#�-�-�	�	A����%���y�$(�#�2C�2C�	�	E����%���{�$(�#�.�.�	�	B����%���{�$(�#�2C�2C�	�	E����0�2C�$(�#�2C�2C�	�	Erc��dD]�}|j|��5t�5}tj||��}|j	ddg�|j	ddg�|j	ddg�|j|j
�d	|�d
|�d|���ddd�ddd���y#1swY�xYw#1swY��xYw)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���=�N����^��<��Z�3� �Z�Z��N�K�F��O�O�S�#�J�/��O�O�Q��F�+��O�O�T�4�L�1��$�$�S�\�\�^�'*�>�*:�'*�>�*:�'0��0@�&B�C� �=�<�>��Z��=�<�s#�B<�A:B0�B<�0B9�5B<�<C	c��|jtgd��d�|jtgd��d�|jtg�d�|jtdg�d�|jtjtdg�tj
��|jtddg�d�y)	Nr�r�)r�r$Nza,1,r+�""r)rJ)r��iterr�r6r7r9rs r�test_write_iterablezTest_Csv.test_write_iterable�s�������o�.��<�����n�-�v�6�����b��2�&�����t�f��t�,����s�y�y�$��v�,�����O�����t�T�l�+�S�1rc���Gd�d�}tj|��}|jt|jdgg�tddd��5}tj|�}|jt|jd�|j	ddgd	d
gg�|jd�|j|j�d�ddd�y#1swYyxYw)
Nc��eZdZd�Zy)�+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_writerowss���	�	����J�L�)�����'�6�#3�#3�s�e�W�=�
�4�'�2�
>�'��Z�Z��(�F����i��)9�)9�4�@����s�C�j�3��*�5�6��L�L��O����W�\�\�^�-=�>�?�
>�
>�s
�A?C�C'c��tddd��5}tj|�}|jddgddgg�|j	d�|j|j
�d�ddd�tddd��5}tj|�}|jdgdgg�|j	d�|j|j
�d	�ddd�tddd��5}tj|�}|jdgdgg�|j	d�|j|j
�d
�ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)Nrxryr+rzr�r�rza,
,d
z""
a
za
""
)rr6rGr�r~rNr�rr�rGs   r�test_writerows_with_nonez!Test_Csv.test_writerows_with_nones1��
�4�'�2�
>�'��Z�Z��(�F����s�D�k�D�#�;�7�8��L�L��O����W�\�\�^�^�<�	?��4�'�2�
>�'��Z�Z��(�F����t�f�s�e�_�-��L�L��O����W�\�\�^�]�;�	?��4�'�2�
>�'��Z�Z��(�F����s�e�d�V�_�-��L�L��O����W�\�\�^�]�;�	?�
>�?�
>��?�
>��?�
>�s&�AE�AE&�5AE2�E#�&E/�2E;c���|jdd�|jdgd�|jtjdgtj��|jdgdtj
��|jdgdtj��|jdgd�|jtjdgtj��|jtjdgtj
��|jtjdgtj��|jddgd�|jddgd�y)Nrr+r�r)rJ)r�r�r6r7r9r�r�rs r�test_write_empty_fieldsz Test_Csv.test_write_empty_fields#s������R� ����"��t�$����s�y�y�2�$�����G����"��t�S�->�->��?����"��t�S�->�->��?����$���&����s�y�y�4�&�#�.�.��I����s�y�y�4�&�#�:K�:K��L����s�y�y�4�&�#�:K�:K��L����"�b��3�'����$���s�+rc��|jdgddd��|jdgddd��|jdgddd��|jdgddd��|jddgddd��|jddgddd��|jddgddd��|jddgddd��|jddgdddtj��|jtjddgddtj��tj
tjfD]2}|jddgddd|��|jddgddd|���4tjtj
tjfD]@}|jddgddd|��|jtjddgdd|���By)	Nr+r�r,Fr0Tz"" "")r!r1r*)r�r6r9r�r7r�r�)rr*s  r�'test_write_empty_fields_space_delimiterz0Test_Csv.test_write_empty_fields_space_delimiter0s������"��t�s�U��K����"��t�s�T��J����$����u��M����$����t��L����"�b��3�#���N����"�b��7�c�D��Q����$���s�c�E��R����$���w�#�PT��U����"�b��3�#��!$���	�	1����s�y�y�2�r�(�),�t�'*�~�~�	�	7��(�(�#�*;�*;�;�G����b�"�X�w�#�PU�%,�
�
.����b�"�X�w�#�PT�%,�
�
.�<��~�~�s�'8�'8�#�:K�:K�K�G����d�D�\�3�#�PU�%,�
�
.��"�"�3�9�9�t�T�l�-0�4�+2�
#�
4�Lrc��tddd��5}tj|�}|jt|j
d�|jt|j
t��ddd�y#1swYyxYw)Nrxryr+rz)rr6rGr4r5r�rr
r�s   r�test_writerows_errorszTest_Csv.test_writerows_errorsMs\��
�4�'�2�
>�'��Z�Z��(�F����i��)9�)9�4�@����g�v�'7�'7���G�?�
>�
>�s�A A8�8B)�categoryc�&�ddl}|jd�}tddd��5}tj|�}|j|gg�|j
d�|j|j�d�ddd�y#1swYyxYw)Nrr�rxryr+rzza
)	�	_testcapi�unicode_legacy_stringrr6rGr�r~rNr)rr�r�r�rGs     r�test_writerows_legacy_stringsz&Test_Csv.test_writerows_legacy_stringsSsr��	��+�+�C�0��
�4�'�2�
>�'��Z�Z��(�F����q�c�U�#��L�L��O����W�\�\�^�W�5�	?�
>�
>�s�AB�Bc�j�tj|fi|��}t|�}|j||�yr)r6r>�listrN)r�inputr�rer>�results      r�
_read_testzTest_Csv._read_test_s.�����E�,�V�,���f��������(rc�6�|jgg�|jdggg�|jtj|jdgdd��|jdgdggd��|jtj|jdgd�y)	Nr+z"ab"cr$�rS�abcr)rQsabc�r�r4r6r7rs r�test_read_oddinputszTest_Csv.test_read_oddinputsds�������B�������r�d�#����#�)�)�T�_�_�"�)�T�A�	�	7�����	�U�G�9�A��>����#�)�)�T�_�_�!�(�D�	*rc���|jddgddgddgg�|jddgddgddgg�|jd	d
gddgddgg�|jddgddgddgg�d
}|jtj|�5t	tj
dg��ddd�|jtj|�5t	tj
dg��ddd�|jtj|�5t	tj
dg��ddd�y#1swY��xYw#1swY�^xYw#1swYyxYw)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_eolns$��������#�c��S��I�(>�?�����'�*�c�#�Y��S�	�,B�C�����I�.�#�c��S��I�0F�G�����'�*�c�#�Y��S�	�,B�C�"��
�
#�
#�C�I�I�v�
6�����Z�L�)�*�7�
�
#�
#�C�I�I�v�
6�����Z�L�)�*�7�
�
#�
#�C�I�I�v�
6�����\�N�+�,�7�
6�	7�
6��
6�
6��
6�
6�s$� E� E� E�E
�E�E%c��|jdgddgg�|jdgdgg�|jdgdggd��|jtj|jdggd�	�|jtj|jdggd�	�|jtj|jdggdd�
�y)Nza,"r�r+z"ar2r�r-Tr�)r.rSr�rs r�
test_read_eofzTest_Csv.test_read_eof|s��������3��)��-������#���(��������x�C��8����#�)�)�T�_�_�u�g�r�$��O����#�)�)�T�_�_�t�f�b���N����#�)�)�T�_�_��%���D�	�	Brc���|jdgdgg�|jdggd�g�|jdggd�g�|jdggd�gd��|jd	ggd�g�y)
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_nul�sj�������$���)������&7�%8�9������&7�%8�9�����
�(9�':�t��L�����
�(9�':�;rc��|jdggd�g�|jdggd�gd��|jdggd�gd��y)Nza,b,c�r�r�r�za;b;c�;r zabcr�r�rs r�test_read_delimiterzTest_Csv.test_read_delimiter�sC������	�O�#4�5�����	�O�#4���D������o�%6�$��Grc���|jdggd�gd��|jdgddggd��|jdgddggd��|jd	gddggd��|jd
gddggd��|jdgdd
ggd��|jdggd�gd��|jdggd�gd��|jdggd�gd��|jdggd�g�y)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�s��������o�%6�4��H������s�E�l�^���E�����
��e��~�$��G�����
��e��~�$��G������#�v���D��I�����
��g��'7�D��I�����
�_�$5�#��F������o�%6�4��H������&7�%8�T��J������&7�%8�9rc�>�|jdggd�g�|jdggd�gdd��|jdggd�gtjd��|jdggd�gtj�	�|jd
gddgg�|j	t
|jd
gggtj�	�|jdggd�gd��|jdggd�gd��|jdggd�gtjd��y)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�z1\.5,\.5,.5)g�?��?r�)r�r6r9r�r4�
ValueErrorrs r�test_read_quotingzTest_Csv.test_read_quoting�s������
�(9�':�;�����
�(A�'B�"&�4�	�	9�����
�(A�'B� #���4�	�	A�	
����)�,@�+A� #� 4� 4�	�	6�����
����'7�8����*�d�o�o�"�)�b�T�"%�"6�"6�	�	8�	
����
�(9�':�c��J������*;�)<���M�����)�O�+<� #� 4� 4��	�	Grc�4�|jdggd�gd��y)Nzno space, space,  spaces,	tab)zno space�space�spacesz	tabT)r1r�rs r�test_read_skipinitialspacez#Test_Csv.test_read_skipinitialspace�s"�����9�:�A�B�)-�	�	/rc��|jgd�gd�gd�gd�ggdd��|jgd�dd	gdd
gd
gggdd��y)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�sZ�����4�+�-B�L�RT�U�"%��	�	?�	
���4��s��c�2�Y���b�9�"%��	�	>rc��tj�}	d}d|z}|�d|��}|j|g||gg�tj|�|j|g||gg�|jtj�|�tj|dz
�|j	tj
|j|gg�|j	ttjd�|j	ttjdd�tj|�y#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�6�G��O�O�W�I��I�(>�'?�@�� � ��&��O�O�W�I��I�(>�'?�@����S�1�1�3�T�:�� � ��a��(����c�i�i����7�)�R�H����i��)=�)=�t�D����i��)=�)=�q�$�G�� � ��'��C� � ��'�s�DD/�/Ec���tjgd��}|j|jd�t	|�|j|jd�t	|�|j|jd�t	|�|j|jd�|jtt|�|j|jd�y)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�J�5�6��������Q�'��Q��������Q�'��Q��������Q�'��Q��������Q�'����-��q�1�������Q�'rc	��gd�gd�gd�gd�gd�gd�g}dD]�}|j|��5td	d
d��5}tj||��}|j	|�|jd
�t
tj|��D]\}}|j|||��	ddd�ddd���y#1swY�xYw#1swY��xYw)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�N����^��<�"�4�'�2�F�'� �Z�Z���O�F��$�$�T�*��L�L��O�"+�C�J�J�w�,?�"@���3��(�(��d�1�g�6�#A�	G�=�<�1�F�F��=�<�s#�C�A5C�1C�C
�	C�C	c
��gd�gd�gd�gd�gd�gd�g}dD]�}|j|��5td	d
d��5}tj||tjd
��}|j|�|j
d�ttj|tjd
���D]\}}|j|||��	ddd�ddd���y#1swY�xYw#1swY��xYw)Nr
rrr
rrrr'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�N����^��<�"�4�'�2�F�'� �Z�Z���03���4�Q�F��$�$�T�*��L�L��O�"+�C�J�J�w�?B�~�~�BF�-H�#I���3��(�(��d�1�g�6�#I�G�=�<�1�F�F��=�<�s#�C1�BC%�C1�%C.�*C1�1C:	N)1rrrr<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�9�0� ,�4�1�,1�9�E�1�5�1�6�"E�>C�2�?�<�(,�4�:H�
���)�W�)�)�+�$�_�$�$�.@�A�6�B�,��6�)�
*�-�B�<�H�

:�G�$/�
>�(�&
(�7�$7rrc�N�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
y)
�TestDialectRegistryc� �|jttjd�|jttj�|jtj
tjd�|jtj
tjd�|jttj�|jtj
tjd�|jtj
tjd�|jttjd�|jttjdd�|jttjddd�|jttjdd��|jttjdd��|jttjg�y)N�nonesuchr)�badargumentr))r4r5r6�
list_dialects�get_dialectr7�unregister_dialect�register_dialectrs r�test_registry_badargsz)TestDialectRegistry.test_registry_badargssZ�����)�S�%6�%6��=����)�S�_�_�5����#�)�)�S�_�_�d�;����#�)�)�S�_�_�j�A����)�S�%;�%;�<����#�)�)�S�%;�%;�T�B����#�)�)�S�%;�%;�Z�H����)�S�%9�%9�4�@����)�S�%9�%9�4��F����)�S�%9�%9�:�q�!�L����)�S�%9�%9�:�&*�	�	,����)�S�%9�%9�:�"&�	�	(����)�S�%9�%9�2�>rc��Gd�dtj�}d}tj�|gz}|j�tj||�|jtj|�|jtj|�jd�ttj��}|j||�y)Nc��eZdZdZy)�5TestDialectRegistry.test_registry.<locals>.myexceltsvr/N�rrrr!rrr�
myexceltsvr(����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��������.�8�8�$�?��c�/�/�1�2�����*�L�9rc	�:�d}tj|d��|jtj|�|j	tj
|�jd�|j	gd�gttjdg|���y)N�fedcbar�r )r��Y�ZzX;Y;Z)	r6r$r.r#rNr"r!r�r>)rr0s  r�test_register_kwargsz(TestDialectRegistry.test_register_kwargs!so�������T�S�1�����.�.��5��������.�8�8�#�>����/�*�D����W�I�t�1L�,M�Nrc
�f�Gd�dtj�}d}tj||dddddtj�	�|j	tj
|�tj|�}|j|jd�|j|jd�|j|jd�|j|jd�|j|jd�|j|jtj�y)
Nc�8�eZdZdZdZdZdZdZejZ
y)�DTestDialectRegistry.test_register_kwargs_override.<locals>.mydialectr/rLTFrKN)rrrr!r&rQr1r(r6rRr*rrr�	mydialectr;)s'���I��I��K�$��#�N��'�'�Grr<�test_dialectr��'FTr�)r!r&rQr1r(r*)r6�Dialectr$r8r.r#r"rNr!r&rQr1r(r*)rr<r0rOs    r�test_register_kwargs_overridez1TestDialectRegistry.test_register_kwargs_override(s���	(����	(������T�9�'*�'*�).�.2�,0�%(�]�]�
	4�	
����.�.��5��/�/�$�'������*�*�C�0�����*�*�C�0�����,�,�e�4�����1�1�4�8�����/�/��6�������#�-�-�8rc�v�Gd�dtj�}|jtj|�y)Nc��eZdZdZy)�?TestDialectRegistry.test_incomplete_dialect.<locals>.myexceltsvr/Nr)rrrr*rCEr+rr*)r6r?r4r7)rr*s  r�test_incomplete_dialectz+TestDialectRegistry.test_incomplete_dialectDs&��	����	����#�)�)�Z�0rc�j�Gd�dtj�}tdd��5}|jd�|j	d�tj
||���}|j
t|�gd	��|j
t|�d
dg�ddd�y#1swYyxYw)Nc�,�eZdZdZej
ZdZy)�5TestDialectRegistry.test_space_dialect.<locals>.spacer,raN)rrrr!r6r9r*r.rrrr�rGJs���I��n�n�G��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_dialectIs���	�C�I�I�	�
�4�'�
2�g��M�M�9�:��L�L��O��Z�Z����9�F����T�&�\�+A�B����T�&�\�J�	�+B�C�3�
2�
2�s�A9B)�)B2c��tddd��5}tj|g|��i|��}|jgd��|j	d�|j|j
�|�ddd�y#1swYyxYw)Nrxr+ry�r|r{�r$r�r�r)rr6rGr}r~rNr)r�expected�	writeargs�kwwriteargsr�rGs      r�compare_dialect_123z'TestDialectRegistry.compare_dialect_123Vsa��
�4��g�
>�'��Z�Z��C�)�C�{�C�F��O�O�G�$��L�L��O����W�\�\�^�X�6�?�
>�
>�s�AA6�6A?c��Gd�dtj�}Gd�dtj�}Gd�dtj�}Gd�dtj�}Gd	�d
�}tjd|�	|jd�|jdd��|jd|��|jd
|�|jd|���|jdd��|jd|d��|jd|��tjd�y#tjd�wxYw)Nc��eZdZdZy)�5TestDialectRegistry.test_dialect_apply.<locals>.testAr/Nr)rrr�testArW`r+rrXc��eZdZdZy)�5TestDialectRegistry.test_dialect_apply.<locals>.testBrMNr)rrr�testBrZb����Irr[c��eZdZdZy)�5TestDialectRegistry.test_dialect_apply.<locals>.testC�|Nr)rrr�testCr^dr\rr`c��eZdZdZy)�7TestDialectRegistry.test_dialect_apply.<locals>.testUniuΛNr)rrr�testUnirbfs�� �Irrcc��eZdZy)�;TestDialectRegistry.test_dialect_apply.<locals>.unspecifiedN�rrrrrr�unspecifiedreis��rrgz1,2,3
rIz1	2	3
z1:2:3
z1|2|3
z1;2;3
r�)rOr!u	1Λ2Λ3
)r6r,r$rTr#)rrXr[r`rcrgs      r�test_dialect_applyz&TestDialectRegistry.test_dialect_apply_s!��	�C�I�I�	�	�C�I�I�	�	�C�I�I�	�	!�c�i�i�	!�	�	�	���W�e�,�
	,��$�$�[�1��$�$�[�$�$�?��$�$�[�+�$�F��$�$�]�E�:��$�$�[�%�'�$�B��$�$�[�'�$�B��$�$�[�%�/2�
%�
4��$�$�%:�-4�
%�
6�
�"�"�7�+��C�"�"�7�+�s
�BD7�7Ec�<�|jttjgd��|jttjgd��|jttjgd��|jttjgd��y)Nrrr ���r)�d)r4r5r6r>rs r�test_bad_dialectz$TestDialectRegistry.test_bad_dialect}sn�����)�S�Z�Z����B����)�S�Z�Z����F����)�S�Z�Z��r��B����)�S�Z�Z��s��Crc��tj�D]<}tj|�}|jtt
j
|��>yr)r6r!r"r4r5�copy)rr0rOs   r�	test_copyzTestDialectRegistry.test_copy�s9���%�%�'�D��o�o�d�+�G����i����G�<�(rc���tj�D]^}tj|�}ttj
dz�D](}|j
ttj||��*�`y)Nr$)	r6r!r"�range�pickle�HIGHEST_PROTOCOLr4r5�dumps)rr0rO�protos    r�test_picklezTestDialectRegistry.test_pickle�sU���%�%�'�D��o�o�d�+�G��v�6�6��:�;���!�!�)�V�\�\�7�E�J�<�(rN)rrrr%r3r8r@rDrMrTrhrlrorvrrrrrs=��?�"
:�O�9�81�
D�7�,�<D�=�
Krrc��eZdZd�Zd�Zy)�TestCsvBasec�
�tddd��5}|j|�|jd�tj||j
��}t
|�}|j||�ddd�y#1swYyxYw)Nrxryr+rzrrI)rrDr~r6r>rOr�rN)rr��expected_resultr�r>r�s      r�readerAssertEqualzTestCsvBase.readerAssertEqual�s`��
�4�'�2�
>�'��M�M�%� ��L�L��O��Z�Z��4�<�<�@�F��&�\�F����V�_�5�?�
>�
>�s�A!A9�9Bc��tddd��5}tj||j��}|j	|�|jd�|j
|j�|�ddd�y#1swYyxYw)Nrxryr+rzrIr)rr6rGrOr�r~rNr)rr�rzr�rGs     r�writerAssertEqualzTestCsvBase.writerAssertEqual�s_��
�4�'�2�
>�'��Z�Z��4�<�<�@�F����U�#��L�L��O����W�\�\�^�_�=�	?�
>�
>�s�A$A<�<BN)rrrr{r}rrrrxrx�s��6�>rrxc��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�Zy)�TestDialectExcelr,c�,�|jddgg�y)Nr��r{rs r�test_singlezTestDialectExcel.test_single�������u��w�i�0rc�.�|jdgd�g�y)Nz	1,2,3,4,5)r��2r��4r�r�rs r�test_simplezTestDialectExcel.test_simple�s�����{�-B�,C�Drc�(�|jdg�y�Nr+r�rs r�test_blanklinezTestDialectExcel.test_blankline�������r�2�&rc�.�|jdddgg�y)NrJr+r�rs r�test_empty_fieldsz"TestDialectExcel.test_empty_fields�s�����s�b�"�X�J�/rc�,�|jddgg�y)Nr�r+r�rs r�test_singlequotedz"TestDialectExcel.test_singlequoted�s�����t�r�d�V�,rc�.�|jdddgg�y)Nz"",r+r�rs r�test_singlequoted_left_emptyz-TestDialectExcel.test_singlequoted_left_empty�������u��2�w�i�0rc�.�|jdddgg�y)Nz,""r+r�rs r�test_singlequoted_right_emptyz.TestDialectExcel.test_singlequoted_right_empty�r�rc�,�|jddgg�y)Nr�rLr�rs r�test_single_quoted_quotez)TestDialectExcel.test_single_quoted_quote�s�����v���w�/rc�,�|jddgg�y)Nz""""""r�r�rs r�test_quoted_quotesz#TestDialectExcel.test_quoted_quotes�s�����x�4�&��2rc�,�|jddgg�y)Nza""br�rs r�test_inline_quotez"TestDialectExcel.test_inline_quote�������v���z�2rc�,�|jddgg�y)Nza"b"cr�rs r�test_inline_quotesz#TestDialectExcel.test_inline_quotes�s�����w�'���4rc�,�|jddgg�y)Nz"a"b�abr�rs r�test_quotes_and_morez%TestDialectExcel.test_quotes_and_more�s��	
���v���x�0rc�,�|jddgg�y)Nza"br�rs r�test_lone_quotez TestDialectExcel.test_lone_quote�r�rc�,�|jddgg�y)Nz"a" "b"za "b"r�rs r�test_quote_and_quotez%TestDialectExcel.test_quote_and_quote�s��	
���y�G�9�+�6rc�,�|jddgg�y)Nz "a"r�rs r�test_space_and_quotez%TestDialectExcel.test_space_and_quote�r�rc�.�|jdgd�g�y)Nz#1,2,3,"I think, therefore I am",5,6)r�r�r�zI think, therefore I amr�r�r�rs r�test_quotedzTestDialectExcel.test_quoted�s�����D�!+� ,�	-rc�.�|jdgd�g�y)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 sawr�rs r�test_quoted_quotez"TestDialectExcel.test_quoted_quote�s �����k�!G� H�	Irc�8�d}|j|gd�gd�g�y)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�s+����
	
���u�!J�!2� 3�	4rc�.�|jdgd�g�y)Nz	12,12,1",)�12r�z1"r+r�rs r�test_dubious_quotez#TestDialectExcel.test_dubious_quote�s�����{�-C�,D�Erc�(�|jgd�yr��r}rs r�	test_nullzTestDialectExcel.test_null�r�rc�,�|jdggd�y)Nr�zabc
r�rs r�test_single_writerz#TestDialectExcel.test_single_writer�s�������y�)�4rc�.�|jgd�gd�y)N)r$r�r�r��z
1,2,abc,3,4
r�rs r�test_simple_writerz#TestDialectExcel.test_simple_writer�s����� 3�4�6G�Hrc�.�|jgd�gd�y)N)r$r�za"bc"r�r�z1,2,"a""bc""",3,4
r�rs r�test_quoteszTestDialectExcel.test_quotes������� 5�6�8O�Prc�,�|jdggd�y�N�abc,defz"abc,def"
r�rs r�test_quote_fieldsepz$TestDialectExcel.test_quote_fieldsep���������}�o�>rc�.�|jgd�gd�y)N)r$r�za
bcr�r�z1,2,"a
bc",3,4
r�rs r�
test_newlineszTestDialectExcel.test_newlines�s����� 5�6�8M�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�rrrrr�s����G�1�E�'�0�-�1�1�0�3�3�5�1�
1�7�
3�-�I�
4�F�'�5�I�Q�?�Orrc�(�eZdZejZdZy)�EscapedExcelraN)rrrr6r9r*r.rrrr�r�s���n�n�G��Jrr�c�&�eZdZe�Zd�Zd�Zy)�TestEscapedExcelc�,�|jdggd�y)Nr��
abc\,def
r�rs r�test_escape_fieldsepz%TestEscapedExcel.test_escape_fieldsepr�rc�,�|jddgg�y)Nr�r�r�rs r�test_read_escape_fieldsepz*TestEscapedExcel.test_read_escape_fieldseps������)��
�>rN)rrrr�rOr�r�rrrr�r�s���n�G�?�?rr�c��eZdZdZd�Zd�Zy)�TestDialectUnix�unixc�.�|jgd�gd�y)N)r$�abc defr��"1","abc def","abc"
r�rs rr�z"TestDialectUnix.test_simple_writerr�rc�.�|jdgd�g�y)Nr�)r�r�r�r�rs r�test_simple_readerz"TestDialectUnix.test_simple_readers�����6�9P�8Q�RrN)rrrrOr�r�rrrr�r�s���G�Q�Srr�c�(�eZdZejZdZy)�QuotedEscapedExcelraN)rrrr6r�r*r.rrrr�r�s���"�"�G��Jrr�c�&�eZdZe�Zd�Zd�Zy)�TestQuotedEscapedExcelc�,�|jdggd�yr�r�rs r�test_write_escape_fieldsepz1TestQuotedEscapedExcel.test_write_escape_fieldsepr�rc�,�|jddgg�y)Nz"abc\,def"
r�r�rs rr�z0TestQuotedEscapedExcel.test_read_escape_fieldsep!s�����0�I�;�-�@rN)rrrr�rOr�r�rrrr�r�s�� �"�G�?�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�Zd�Zd�Zd�Zd�Zd�Zy)�TestDictFieldsc��tddd��5}tj|gd���}|j�}|j	|d�ddd�y#1swYyxYw)Nrxryr+rz��f1�f2�f3��
fieldnamesr�)rr6�
DictWriter�writeheaderrN)rr�rG�writeheader_return_values    r�test_writeheader_return_valuez,TestDictFields.test_writeheader_return_value'sM��
�4�'�2�
>�'��^�^�G�:L�M�F�'-�'9�'9�';�$����5�r�:�?�
>�
>�s�<A�Ac��tddd��5}tj|gd���}|j�|j	d�|j|j
�d�|jd	d
d��|j	d�|j
�|j|j�d�ddd�y#1swYyxYw)
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_dict-s���
�4�'�2�
>�'��^�^�G�:L�M�F���� ��L�L��O����W�-�-�/��@��O�O�2�U�3�4��L�L��O��������W�\�\�^�]�;�?�
>�
>�s�B0C�Cc� �t�}tj|gd���}|j�|j	|j�d�|j
dddd�ddd	d�g�|j	|j�d
�y)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_rows8s����*������4F�G����������)�)�+�^�<�����%�s�;�!"�!�5�9�;�	<�����)�)�+�=�	?rc�b�t�}|jttj|�yr)rr4r5r6r��rr�s  r�test_write_no_fieldsz#TestDictFields.test_write_no_fieldsBs���*�����)�S�^�^�W�=rc��tddd��5}tj|gd���}|jt�5}|jddd	d
��ddd�t
j�}|jd|�|jd|�|jd
|�|jd|�ddd�y#1swY�oxYw#1swYyxYw)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_fieldnamesFs���
�4�'�2�
>�'��^�^�G�:L�M�F��"�"�:�.�"����r��E� B�C�/��B�L�L�)�I��M�M�,�	�2��M�M�&�)�,����V�Y�/��M�M�#�y�)�?�
>�/�.��?�
>�s#�/C�C�A%C�C	�C�Cc�l�t�}|jttj|ddgd��y)Nr�r��raised��extrasaction)rr4r�r6r�r�s  r�&test_typo_in_extrasaction_raises_errorz5TestDictFields.test_typo_in_extrasaction_raises_errorRs/���*�����*�c�n�n�g��d�|�'/�	�	1rc�N�t�}tj|ddgd��}ddddd	�}|jttjj
||�tj|ddgd
��}|jttjj
||�y)Nr�r��raiserrr$r�r���f0r�r�r��RAISE)rr6r�r4r�r}�rr�rG�dictrows    r�)test_write_field_not_in_field_names_raisez8TestDictFields.test_write_field_not_in_field_names_raiseWs����*������$���G�L���!�1�A�6�����*�c�n�n�&=�&=�v�w�O�����$���G�L�����*�c�n�n�&=�&=�v�w�Orc�N�t�}tj|ddgd��}ddddd	�}tjj||�|j	|j�d
�tj|ddgd��}tjj||�y)Nr�r��ignorerrr$r�r�rz1,2
�IGNORE)rr6r�r}rNr�rs    r�*test_write_field_not_in_field_names_ignorez9TestDictFields.test_write_field_not_in_field_names_ignoreas����*������$���H�M���!�1�A�6���������0�����)�)�+�Y�7�����$���H�M���������0rc��gd�}t�}tj|t|��}|j	|j
|�y�Nr�)rr6�
DictReaderr�rNr��rr�r�r>s    r�(test_dict_reader_fieldnames_accepts_iterz7TestDictFields.test_dict_reader_fieldnames_accepts_iterl�9��$�
��J������4�
�#3�4������*�*�J�7rc��gd�}t�}tj||�}|j|j|�yr)rr6rrNr�rs    r�(test_dict_reader_fieldnames_accepts_listz7TestDictFields.test_dict_reader_fieldnames_accepts_listr�4��$�
��J������:�.������*�*�J�7rc��gd�}t�}tj|t|��}|j	|j
|�yr)rr6r�r�rNr��rr�r�rGs    r�(test_dict_writer_fieldnames_rejects_iterz7TestDictFields.test_dict_writer_fieldnames_rejects_iterxrrc��gd�}t�}tj||�}|j|j|�yr)rr6r�rNr�rs    r�(test_dict_writer_fieldnames_accepts_listz7TestDictFields.test_dict_writer_fieldnames_accepts_list~rrc�F�t�}tj|d��}y)Nr�)rr6r)rr�r>s   r�'test_dict_reader_fieldnames_is_optionalz6TestDictFields.test_dict_reader_fieldnames_is_optional�s���J������d�3�rc��tdd��5}|jd�|jd�tj|gd���}|jt
|�dd	d
d��ddd�y#1swYyxYw)NrxryrHz	1,2,abc
rr�r�r�r�r��rrDr~r6rrNr��rr�r>s   r�test_read_dict_fieldsz$TestDictFields.test_read_dict_fields�s`��
�4�'�
2�g��M�M�-�(��L�L��O��^�^�G�/A�C�F����T�&�\�#�S��+N�O�3�
2�
2�s�AA2�2A;c�0�tdd��5}|jd�|jd�tj|�}|jt
|�dddd	��|j|jgd	��ddd�y#1swYyxYw)
NrxryrH�f1,f2,f3
1,2,abc
rr�r�r�r�)rrDr~r6rrNr�r�r!s   r�test_read_dict_no_fieldnamesz+TestDictFields.test_read_dict_no_fieldnames�sr��
�4�'�
2�g��M�M�3�4��L�L��O��^�^�G�,�F����T�&�\�#�S��+N�O����V�.�.�0B�C�3�
2�
2�s�A5B�Bc	�l�tdd��5}|jd�|jd�tj|ttj|����}|j|jgd��|jt|�dd	d
d��ddd�y#1swYyxYw)NrxryrHr$rr�r�r�r�r�)	rrDr~r6rr�r>rNr�r!s   r�#test_read_dict_fieldnames_from_filez2TestDictFields.test_read_dict_fieldnames_from_file�s���
�4�'�
2�g��M�M�3�4��L�L��O��^�^�G�/3�C�J�J�w�4G�/H�J�F����V�.�.�0B�C����T�&�\�#�S��+N�O�
3�
2�
2�s�BB*�*B3c	�n�ddl}tdd��5}|jd�|jd�t	j
|�}t
|�}|j|g|�D]6}|j|jgd��|j|ddd	d���8	ddd�y#1swYyxYw)
NrrxryrHr$r�r�r�r�)
�	itertoolsrrDr~r6rr��chainrNr�)rr)r�r>�firstrs      r�test_read_dict_fieldnames_chainz.TestDictFields.test_read_dict_fieldnames_chain�s����
�4�'�
2�g��M�M�3�4��L�L��O��^�^�G�,�F���L�E� ����w��7��� � ��!2�!2�4F�G�� � ��S��5�&I�J�8�3�
2�
2�s�BB+�+B4c��tdd��5}|jd�|jd�tj|ddg��}|jt
|�d	d
gd�d��ddd�y#1swYyxYw)
NrxryrH�1,2,abc,4,5,6
rr�r�r�r�r��r�r�r�r�)r�r�Nr r!s   r�test_read_longzTestDictFields.test_read_long�sk��
�4�'�
2�g��M�M�-�.��L�L��O��^�^�G�04�d�|�=�F����T�&�\�#�S�3I�,K�
L�3�
2�
2�s�AA4�4A=c��tdd��5}|jd�|jd�tj|ddgd�	�}|jt
|�d
dgd�d
��ddd�y#1swYyxYw)NrxryrHr.rr�r��_rest)r��restkeyr�r�r/�r�r�r2r r!s   r�test_read_long_with_restz'TestDictFields.test_read_long_with_rest�sn��
�4�'�
2�g��M�M�-�.��L�L��O��^�^�G�04�d�|�W�N�F����T�&�\�#�S�6L�,N�
O�3�
2�
2�s�AA5�5A>c�8�tdd��5}|jd�|jd�tj|d��}|j|jdd	g�|jt|�d
dgd�d
��ddd�y#1swYyxYw)NrxryrHzf1,f2
1,2,abc,4,5,6
rr2�r3r�r�r�r�r/r4)rrDr~r6rrNr�r�r!s   r�&test_read_long_with_rest_no_fieldnamesz5TestDictFields.test_read_long_with_rest_no_fieldnames�s~��
�4�'�
2�g��M�M�6�7��L�L��O��^�^�G�W�=�F����V�.�.��t��=����T�&�\�#�S�6L�,N�
O�3�
2�
2�s�A9B�Bc�`�tdd��5}|jd�|jd�tj|dj�d��}|j
t|�d	d
ddd
dd��|j
t|�d	d
ddddd��ddd�y#1swYyxYw)NrxryrHz1,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�r!s   r�test_read_shortzTestDictFields.test_read_short�s���
�4�'�
2�g��M�M�8�9��L�L��O��^�^�G�/<�/B�/B�/D�,5�7�F�
���T�&�\��3�U�25�C�c�,K�
L����T�&�\��3�U�2;�)�2;�,=�
>�3�
2�
2�s�B
B$�$B-c	��gd�}tj|dj���}|jt	|�dddddd	��y)
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�rJ)�i1�float�i2�s1�s2�r6rr>rNr�)r�sampler>s   r�test_read_multizTestDictFields.test_read_multi�sO��������+>�+D�+D�+F�H������f��l�2;�/3�/4�/4�	(6�	7rc
���tjgd�dj���}|jt	|�dddddd	d
��|jt	|�dddddd	d
��y)N)r.rKr.r:r�r�r�r�r�r�r�r=rH�rr>s  r�test_read_with_blanksz$TestDictFields.test_read_with_blanks�st�����!6�+8�+>�+>�+@�B��	
����f��S�s��.1��#�(G�	H�����f��S�s��.1��#�(G�	Hrc
��tjdgdj�d��}|jt	|�ddddd	d
d��y)Nz1;2;abc;4;5;6
r:r�)r�r!r�r�r�r�r�r�r=rHrLs  r�test_read_semi_sepz!TestDictFields.test_read_semi_sep�sO�����!4� 5�+8�+>�+>�+@�*-�/��	
����f��S�s��.1��#�(G�	HrN)rrrr�r�r�r�r�rr
rrrrrrr"r%r'r,r0r5r8r?rJrMrOrrrr�r�$s���;�	<�?�>�
*�1�
P�	1�8�8�8�8�4�P�D�P�	K�L�O�O�>�
7�H�Hrr�c�$�eZdZd�Zd�Zd�Zd�Zy)�TestArrayWritesc	���ddl}td�D�cgc]}d|z
��	}}|jd|�}tddd��5}tj|d�	�}|j|�d
j
|D�cgc]
}t|���c}�dz}|jd�|j|j�|�ddd�ycc}wcc}w#1swYyxYw)Nr�r�rxryr+rzr,rIrJrK��arrayrqrr6rGr}�joinr�r~rNr�rrUr��contentsr�r�rGrQs        r�test_int_writezTestArrayWrites.test_int_write�s����$)�"�I�.�I�q�R��T�I��.��K�K��X�&��
�4�'�2�
>�'��Z�Z���9�F��O�O�A���x�x�� 3��A��Q��� 3�4�V�;�H��L�L��O����W�\�\�^�X�6�?�
>��/��!4�?�
>�s#�C�8C�8C
�
;C�C�C!c	���ddl}td�D�cgc]
}d|z
dz��}}|jd|�}tddd��5}tj|d	�
�}|j|�dj
|D�cgc]
}t|���c}�dz}|jd�|j|j�|�ddd�ycc}wcc}w#1swYyxYw)
NrrS皙�����?r�rxryr+rzr,rIrJrKrTrWs        r�test_double_writez!TestArrayWrites.test_double_write����(-�b�	�2�	�1�R��T�3�J�	��2��K�K��X�&��
�4�'�2�
>�'��Z�Z���9�F��O�O�A���x�x�� 3��A��Q��� 3�4�V�;�H��L�L��O����W�\�\�^�X�6�?�
>��3��
!4�?�
>��#�C�8C�;C
�
;C�C�C$c	���ddl}td�D�cgc]
}d|z
dz��}}|jd|�}tddd��5}tj|d	�
�}|j|�dj
|D�cgc]
}t|���c}�dz}|jd�|j|j�|�ddd�ycc}wcc}w#1swYyxYw)
NrrSr[r�rxryr+rzr,rIrJrKrTrWs        r�test_float_writez TestArrayWrites.test_float_write
r]r^c�l�ddl}ddl}|jd|j�}tddd��5}t	j
|d��}|j
|�d	j|�d
z}|jd�|j|j�|�ddd�y#1swYyxYw)Nr�urxryr+rzr,rIrJrK)rU�string�
ascii_lettersrr6rGr}rVr~rNr)rrUrcr�r�rGrQs       r�test_char_writezTestArrayWrites.test_char_writes�����K�K��V�1�1�2��
�4�'�2�
>�'��Z�Z���9�F��O�O�A���x�x��{�6�)�H��L�L��O����W�\�\�^�X�6�?�
>�
>�s�A.B*�*B3N)rrrrYr\r`rerrrrQrQ�s��
7�	7�	7�	7rrQc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�TestDialectValidityc�f�Gd�dtj�}|�}|j|jtj�d|_|jtj|�d|_tj|_d|_	|�}|j|jtj�|j|jd�|j|j�d|_	|jtj�5}|�ddd�|jtj�d�d|_	|jtj�5}|�ddd�|jt|j�d�d|_	|jtj�5}|�ddd�|jt|j�d	�y#1swY��xYw#1swY��xYw#1swY�GxYw)
Nc�8�eZdZdZdZdZdZdZejZ
y)�3TestDialectValidity.test_quoting.<locals>.mydialectr�raFTrKN�rrrr!r.rQr1r(r6r9r*rrrr<rj%�%���I��J��K�#��#�N��n�n�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���	%����	%�
�K��������C�N�N�3� �	�����#�)�)�Y�/� $�	���M�M�	��!�	���K��������C�M�M�2�������c�*�����
�
�&� �	��
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�C�	E�#�	��
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�C�	E� �	��
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�F�	H�*�
)��*�
)��*�
)�s$�#H�>H�H'�H�H$�'H0c��Gd�dtj�}|�}|j|jd�d|_|j	tj
�5}|�ddd�|jt
j�d�d|_|j	tj
�5}|�ddd�|jt
|j�d�d|_|j	tj
�5}|�ddd�|jt
|j�d�d	|_|j	tj
�5}|�ddd�|jt
|j�d
�d|_|j	tj
�5}|�ddd�|jt
|j�d�y#1swY���xYw#1swY��NxYw#1swY��xYw#1swY��xYw#1swY�axYw)Nc�8�eZdZdZdZdZdZdZejZ
y)�5TestDialectValidity.test_delimiter.<locals>.mydialectr�raFTrKNrkrrrr<rsMrlrr<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�rns    r�test_delimiterz"TestDialectValidity.test_delimiterLs���	%����	%�
�K��������c�*�#�	��
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�C�	E�!�	��
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�C�	E�#�	��
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�@�	B� �	��
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�>�	@�#�	��
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�C�	E�5*�
)��*�
)��*�
)��*�
)��*�
)�s<�#H�>H�H�4H+�H7�H�H�H(�+H4�7Ic��Gd�dtj�}|�}|j|jd�d|_|j	tj
d�5|�ddd�d|_|j	tj
d�5|�ddd�d|_|j	tj
d�5|�ddd�d	|_|j	tj
d
�5|�ddd�y#1swY��xYw#1swY��xYw#1swY�YxYw#1swYyxYw)Nc�8�eZdZdZdZdZdZdZejZ
y)�6TestDialectValidity.test_escapechar.<locals>.mydialectr�raFTrKNrkrrrr<ryvrlrr<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_escapecharus��	%����	%�
�K��������t�,�!�	��
�
#�
#�C�I�I�/Z�
[��K�\� $�	��
�
#�
#�C�I�I�/Z�
[��K�\� $�	��
�
#�
#�C�I�I�/_�
`��K�a� !�	��
�
#�
#�C�I�I�/]�
^��K�_�
^�\�
[��\�
[��a�
`��_�
^�s0�$D�D&�D2�	D>�D#�&D/�2D;�>Ec��Gd�dtj�}|�}|j|jd�d|_|�}|j|jd�d|_|j	tj
�5}|�ddd�|jt
j�d�y#1swY�/xYw)Nc�8�eZdZdZdZdZdZdZejZ
y)�:TestDialectValidity.test_lineterminator.<locals>.mydialectr�raFTrKNrkrrrr<r~�rlrr<rKrtr�z!"lineterminator" must be a string)r6r?rNr(r4r7r�r�rns    r�test_lineterminatorz'TestDialectValidity.test_lineterminator�s���	%����	%�
�K������)�)�6�2�#(�	� ��K������)�)�5�1�#$�	� �
�
�
�s�y�y�
)�R��K�*�����R�\�\�*�<�	>�*�
)�s�
C�Cc�v�d�}dD]�}|j|��5|jtj||d�|jtj||d�|jtj||d�|jtj||d�ddd���y#1swY��xYw)Nc�^�Gd�dtj�}t|||�|�}y)Nc��eZdZy)�QTestDialectValidity.test_invalid_chars.<locals>.create_invalid.<locals>.mydialectNrfrrrr<r��s��rr<)r6r?rV)�
field_name�valuer<r�s    r�create_invalidz>TestDialectValidity.test_invalid_chars.<locals>.create_invalid�s%��
�C�K�K�
��I�z�5�1���Ar)r!r.r&)r�r+r��xr�)r�r4r6r7)rr�r�s   r�test_invalid_charsz&TestDialectValidity.test_invalid_chars�s���	�C�J������4��!�!�#�)�)�^�Z��L��!�!�#�)�)�^�Z��O��!�!�#�)�)�^�Z��N��!�!�#�)�)�^�Z��K�	5�4�C�4�4�s�B	B/�/B8	N)rrrrprvr{rr�rrrrgrg#s ��&H�P'E�R�6>�*Lrrgc��eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
ed�Zed
�Zed�Zed�ZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�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|j��|j|j|j��yr)r6�Snifferrm�
has_header�sample12�assertFalse�sample13�r�sniffers  r�test_issue43625zTestSniffer.test_issue43625sE���+�+�-������*�*�4�=�=�9�:�����+�+�D�M�M�:�;rc���	tj�}|j|j|j��|j|j|j
��yr)r6r�r�r��sample10�sample11r�s  r�test_has_header_stringsz#TestSniffer.test_has_header_strings
sJ��N��+�+�-������+�+�D�M�M�:�;�����+�+�D�M�M�:�;rc���tj�}|j|j|j�d�|j|j|j
|jz�d�y�NFT)r6r�rPr��sample1�header1r�s  r�test_has_headerzTestSniffer.test_has_header�P���+�+�-���
�
�g�(�(����6��>��
�
�g�(�(�������)D�E�t�Lrc���tj�}|j|j|j�d�|j|j|j
|jz�d�yr�)r6r�rPr��sample8�header2r�s  r�'test_has_header_regex_special_delimiterz3TestSniffer.test_has_header_regex_special_delimiterr�rc��tj�}dD]�}|j|�5|j|d�}|j	|j
d�|j	|jd�|j|jd�|j|jd�ddd���y#1swY��xYw)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_delimiters����+�+�-��F�F����f�%�!�-�-���5��� � ��!2�!2�C�8�� � ��!2�!2�C�8��
�
�g�1�1�5�9��
�
�g�6�6��>�&�%�G�%�%�s�BB9�9C	c���tj�}|j|j�}|j	|j
d�|j	|jd�|j|jd�|j|j�}|j	|j
d�|j	|jd�|j|jd�y)NrJrLTrMr>F)
r6r�r�r�rNr!r&rPr1�sample2�rr�rOs   r�
test_sniffzTestSniffer.test_sniff$s����+�+�-���-�-����-������*�*�C�0�����*�*�C�0��
�
�g�.�.��5��-�-����-������*�*�C�0�����*�*�C�0��
�
�g�.�.��6rc��tj�}|j|j�}|j	|j
|j�|j|jd��}|j
|j
d�|j|jd��}|j
|j
d�|j|j�}|j
|j
d�|j|j�}|j
|j
d�|j|j�}|j
|j
d�|j|j�}|j
|j
d�|j
|jd	�|j|j�}|j
|j
d
�|j|j�}|j
|j
d
�|j
|jd	�|j|j�}|j
|j
d�y)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_delimiters0s����+�+�-���-�-����-��	
�
�
�g�'�'����6��-�-�����-�>������*�*�C�0��-�-�����-�>������*�*�C�0��-�-����-������*�*�C�0��-�-����-������*�*�D�1��-�-����-������*�*�C�0��-�-����-������*�*�C�0�����*�*�C�0��-�-����-������*�*�C�0��-�-����-������*�*�C�0�����*�*�C�0��-�-��
�
�.������*�*�D�1rc�H�tj�}|j|j�}|j	|j
�|j|j�}|j	|j
�|j|j�}|j|j
�|j|j�}|j	|j
�|j|j�}|j|j
�yr)r6r�r�r�r�rQr�r�rmr�r�r�s   r�test_doublequotezTestSniffer.test_doublequoteLs����+�+�-���-�-����-������,�,�-��-�-����-������,�,�-��-�-����-������+�+�,��-�-����-������,�,�-��-�-����-������+�+�,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��s����G��G��G��G��G�/�G�"�G�*�G��G��G��G����H����H����H����H��H�<�
<�M�
M�
?�
7�2�8-rr�c��eZdZd�ZeZy)�NULc��yrr)�srWs  rrDz	NUL.writeZs��rN)rrrrD�
writelinesrrrr�r�Ys��
��Jrr��gettotalrefcountzrequires sys.gettotalrefcount()c�$�eZdZd�Zd�Zd�Zd�Zy)�	TestLeaksc��d}tj�}td�D]�}tj�|jtjg�tj�}tjdg�tjdg�tjdg�||z
}|}��|j|d�y)NrrS�a,b,c
r��
�sysr�rq�gc�collectrN�garbager6r>�
assertLess)r�delta�lastrcr��rcs     r�test_create_readzTestLeaks.test_create_readas������%�%�'���r��A��J�J�L����R�Z�Z��,��%�%�'�B��J�J��}�%��J�J��}�%��J�J��}�%��v�I�E��F��	
����q�!rc��d}tj�}t�}td�D]�}t	j
�|j
tjg�tj�}tj|�tj|�tj|�||z
}|}��|j|d�y)NrrSr�)r�r�r�rqr�r�rNr�r6rGr�)rr�r�r�r�r�s      r�test_create_writezTestLeaks.test_create_writeps������%�%�'���E���r��A��J�J�L����R�Z�Z��,��%�%�'�B��J�J�q�M��J�J�q�M��J�J�q�M��v�I�E��F��	
����q�!rc�V�d}dgdz}tj�}td�D]m}tj�|jtjg�tj�}tj|�}|D]}�||z
}|}�o|j|d�y)Nrr�r�rSr�)rr�rr�r�r��rdrrs        r�	test_readzTestLeaks.test_read�s������}�Q����%�%�'���r��A��J�J�L����R�Z�Z��,��%�%�'�B��*�*�T�"�C������v�I�E��F��	
����q�!rc��d}gd�gdz}t�}tj�}td�D]~}t	j
�|j
tjg�tj�}tj|�}|D]}|j|��||z
}|}��|j|d�y)NrrPr�rS)r�r�r�rqr�r�rNr�r6rGr}r�)	rr�rr�r�r�r�rGrs	         r�
test_writezTestLeaks.test_write�s������y��{���E���%�%�'���r��A��J�J�L����R�Z�Z��,��%�%�'�B��Z�Z��]�F�������$���v�I�E��F��	
����q�!rN)rrrr�r�r�r�rrrr�r�^s��
"�"� "� "rr�c� �eZdZgd�Zd�Zd�Zy)�TestUnicode)uMartin von LöwisuMarc André LemburgzGuido van RossumuFrançois Pinardc�<�tddd��5}|jdj|j�dz�|j	d�tj|�}|jt|�|jg�ddd�y#1swYyxYw�Nrxr+ryrOrJrKr)	rrDrV�namesr~r6r>rNr�r!s   r�test_unicode_readzTestUnicode.test_unicode_read�sm��
�4��g�
>�'��M�M�#�(�(�4�:�:�.��7�8��L�L��O��Z�Z��(�F����T�&�\�D�J�J�<�8�	?�
>�
>�s�A:B�Bc�H�tddd��5}tj|�}|j|j�dj|j�dz}|j
d�|j|j�|�ddd�y#1swYyxYwr�)	rr6rGr}r�rVr~rNr)rr�rGrQs    r�test_unicode_writezTestUnicode.test_unicode_write�sr��
�4��g�
>�'��Z�Z��(�F��O�O�D�J�J�'��x�x��
�
�+�F�2�H��L�L��O����W�\�\�^�X�6�?�
>�
>�s�BB�B!N)rrrr�r�r�rrrr�r��s��
!�E�
9�7rr�c��eZdZd�Zd�Zy)�KeyOrderingTestc��t�}td�D]�}tddd��5}tj||�}|j�|j
d�tj|�}t|j�}|j||�|j|�ddd���|jt|�dd�y#1swY��xYw)	N�abcderxr+ryrOr�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�	� ��)�D��t�R�'�B�j��^�^�J��5����� �����"��^�^�J�/���2�=�=�)��� � ��r�*��
�
�b�!�C�B�*�	
����Y���.p�q�C�B�s�BC�C	c��td�j�}|jtt	j
|��t
ddg�t
dddddgfg�t
dd	g�t
d
dg�g�|jtt	j
|d�
��t
ddg�t
dddddgfg�t
dd	g�t
d
dg�g�|d=|jtt	j
|ddg���t
ddg�t
dddddgfg�t
ddg�t
ddg�g�y)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�	OtherInfor7r�fname�lnamer�)r�r�)r�r�)r�r�)r�r�)r�r�)r�N)r�r�)r�r�)r
�
splitlinesrNr�r6rr)r�datas  r�test_ordered_dict_readerz(KeyOrderingTest.test_ordered_dict_reader�s�����
��Z�\�	
�	
����c�n�n�T�2�3�
�/�1E�F�
G�
�1�3J��'�7�!3�4�6�7�
�1�3E�F�
G�
�/�1G�H�
I�	
�	�	
����c�n�n�T�;�G�H�
�/�1E�F�
G�
�1�3J�&��'�(:�;�=�>�
�1�3E�F�
G�
�/�1G�H�
I�	
�	�
��G�����c�n�n�T�w��>P�Q�R�
�+�->�?�
@�
�-�/C��'�7�!3�4�6�7�
�-��?�
@�
�+�-@�A�
B�	
�	rN)rrrr�r�rrrr�r��s
��r�!rr�c�<�eZdZd�Zd�Zejd��Zy)�MiscTestCasec�F�ddh}tj|td|��y)N�__doc__�__version__)r6�_csv)�extra)r�check__all__r6)rrs  r�test__all__zMiscTestCase.test__all__�s ���M�*�����T�3��u�Erc�6�Gd�dtj�}y)Nc��eZdZy)�+MiscTestCase.test_subclassable.<locals>.FooNrfrrr�Foor	�s�rr
)r6r7)rr
s  r�test_subclassablezMiscTestCase.test_subclassable�s��!�#�)�)�!rc���tjd�}|j|jfD])}|j	|��5t||�ddd��+y#1swY�6xYw)Nr)�tp)r�
import_module�Reader�Writerr�r)rrr
s   r�test_disallow_instantiationz(MiscTestCase.test_disallow_instantiation�sP���*�*�6�2���+�+�t�{�{�*�B������$�,�T�2�6�%�$�+�$�$�s�
A�A$	N)rrrrrrrrrrrr�r��s'��F�"�
���7��7rr��__main__)/rnr��unittest�ior�tempfilerr6r�rr�testr�test.supportrrrr)r	�textwrapr
�collectionsrr
�TestCaserrrxrr,r�r�r�r�r�r�rQrgr�r��
skipUnless�hasattrr�r�r�r�r�mainrrr�<module>rs����
���"�
�	�
��U�U�"��#���
h7�x� � �h7�VKK�(�+�+�KK�Z>�(�#�#�>� _O�{�_O�B�3�9�9��?�{�?�S�k�S������A�[�A�OH�X�&�&�OH�b,7�h�'�'�,7�\NL�(�+�+�NL�bc-�(�#�#�c-�J��
����W�S�"4�5�6�8�?"��!�!�?"�8�?"�B7�(�#�#�7�.1�h�'�'�1�h7�8�$�$�7� �z���H�M�M�O�r

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