Ë
    ìmxi'0 ã                   ó  — d dl Z d dlZd dlmZmZ d dlmZ d dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZmZmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$ d„ Z%d„ Z&d„ Z'd4d	„Z(d
„ Z)d„ Z*d„ Z+ G d„ d«      Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1 G d„ de jd                  «      Z3 G d„ de3«      Z4 G d„ de4«      Z5 G d„ de4«      Z6 G d„ de3«      Z7 G d„ de7«      Z8ejr                  j"                   G d „ d!e7«      «       Z: G d"„ d#«      Z; G d$„ d%e;ejx                  «      Z= G d&„ d'e;ejx                  «      Z>d(„ Z?d)„ Z@d*„ ZAd+„ ZBd,„ ZCejr                  j‰                  d-d.„ d/„ d0„ d1„ f«      d2„ «       ZEd3„ ZFy)5é    N)ÚdateÚdatetime)ÚDecimal)
Úopen_csvÚread_csvÚReadOptionsÚParseOptionsÚConvertOptionsÚISO8601Ú	write_csvÚWriteOptionsÚ	CSVWriterÚ
InvalidRow)Úutilc               #   ón   K  — t         j                  } | E d {  –—†  | D ]  }| D ]	  }||z   –— Œ Œ y 7 Œ­w©N)ÚstringÚascii_lowercase)ÚlettersÚfirstÚseconds      úM/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/test_csv.pyÚgenerate_col_namesr   /   sG   è ø€ ä×$Ñ$€GØ×ÐØò !ˆØò 	!ˆFØ˜&‘.Ó ñ	!ñ!ð ús   ‚5˜3™5c              #   óJ   K  — t        d||z  |«      D ]  }| |||z    –— Œ y ­w©Nr   ©Úrange©ÚarrÚnum_colsÚnum_rowsÚis       r   Ú
split_rowsr#   8   s4   è ø€ ä�1�h Ñ)¨8Ó4ò "ˆØ�!�A˜‘LÐ!Ó!ñ"ùs   ‚!#c              #   óB   K  — t        d|«      D ]  }| |d |…   –— Œ y ­wr   r   r   s       r   Úsplit_columnsr%   >   s-   è ø€ ä�1�hÓò ˆØ�!�+�X�+ÑÓñùs   ‚c           	      ó  — t        j                  d«      }t        | |z  «      D �cg c]  }|j                  dd«      ‘Œ }}t	        j
                  «       }t        t        j                  t        «       | «      «      }|r1|j                  dj                  |«      «       |j                  |«       t        || |«      D ]A  }	|j                  dj                  t        t        |	«      «      «       |j                  |«       ŒC |j                  «       j!                  «       }t#        || |«      D �	cg c]+  }	t%        j&                  |	t%        j(                  «       ¬«      ‘Œ- }
}	t$        j*                  j-                  |
|«      }||fS c c}w c c}	w )Né*   r   éè  ú,)Útype)ÚrandomÚRandomr   ÚrandintÚioÚStringIOÚlistÚ	itertoolsÚislicer   ÚwriteÚjoinr#   ÚmapÚstrÚgetvalueÚencoder%   ÚpaÚarrayÚint64ÚTableÚfrom_arrays)r    r!   ÚlinesepÚwrite_namesÚrndÚ_r   ÚcsvÚ	col_namesÚrowÚcolumnsÚexpecteds               r   Úmake_random_csvrG   D   s=  € Ü
�-‰-˜Ó
€CÜ).¨x¸(Ñ/BÓ)CÖ
D Aˆ3�;‰;�q˜$ÕÐ
D€CÐ
DÜ
�+‰+‹-€CÜ”Y×%Ñ%Ô&8Ó&:¸HÓEÓF€IÙØ�	‰	�#—(‘(˜9Ó%Ô&Ø�	‰	�'ÔÜ˜#˜x¨Ó2ò ˆØ�	‰	�#—(‘(œ3œs C›=Ó)Ô*Ø�	‰	�'Õðð �,‰,‹.×
Ñ
Ó
!€Cä'¨¨X°xÓ@öBØô �x‰x˜¤"§(¡(£*Ö-ð B€Gð Bä�x‰x×#Ñ# G¨YÓ7€HØ�ˆ=Ðùò EùòBs   ¦FÄ-0Fc                 óÈ   — t        j                  «       }|j                  dj                  | «      «       |j                  d«       |j	                  «       j                  «       S )Nr)   ú
)r.   r/   r3   r4   r7   r8   )Úcolumn_namesrB   s     r   Úmake_empty_csvrK   V   sB   € Ü
�+‰+‹-€CØ‡I�Iˆc�h‰h�|Ó$Ô%Ø‡I�Iˆd„OØ�<‰<‹>× Ñ Ó"Ð"ó    c                 óò  —  | «       }|j                  «       D ]K  \  }}t        ||«      |d   k(  s
J d|z   «       ‚|D ]%  }t        |||«       t        ||«      |k(  rŒ J d«       ‚ ŒM t        j                  t
        «      5  d|_        ddd«       |j                  «       D ��ci c]  \  }}||d   “Œ }}} | di |¤Ž}|j                  «       D ]  \  }}t        ||«      |k(  rŒJ ‚ y# 1 sw Y   ŒaxY wc c}}w )zD
    Check setting and getting attributes of an *Options class.
    r   zincorrect default value for zfailed setting valueTNé   © )ÚitemsÚgetattrÚsetattrÚpytestÚraisesÚAttributeErrorÚzzz_non_existent)ÚclsÚattr_valuesÚoptsÚnameÚvaluesÚvÚnon_defaultsÚvalues           r   Úcheck_options_classr_   ]   s"  € ñ ‹5€Dà#×)Ñ)Ó+ò D‰ˆˆfÜ�t˜TÓ" f¨Q¡iÒ/ð 	2Ø*¨TÑ1ó	2Ð/àò 	DˆAÜ�D˜$ Ô"Ü˜4 Ó&¨!Ó+ÐCÐ-CÓCÐ+ñ	DðDô 
�‰”~Ó	&ñ %Ø $ˆÔ÷%ð 9D×8IÑ8IÓ8K×L©¨¨f�D˜& ™)‘OÐL€LÑLÙÑ�Ñ€DØ#×)Ñ)Ó+ò ,‰ˆˆeÜ�t˜TÓ" eÓ+Ð+Ð+ñ,÷%ð %üó Ms   Á?C'Â"C3Ã'C0c                 ó¾   —  | di |¤Ž}|j                  |j                  ||j                  ¬«      «      }|j                  «       D ]  \  }}t	        ||«      |k(  rŒJ ‚ y )N)ÚprotocolrO   )ÚloadsÚdumpsÚHIGHEST_PROTOCOLrP   rQ   )rW   ÚpicklerrX   rY   Únew_optsrZ   r^   s          r   Úcheck_options_class_picklingrg   u   sk   € ÙÑ�Ñ€DØ�}‰}˜WŸ]™]¨4Ø4;×4LÑ4Lð +ó Nó O€Hà"×(Ñ(Ó*ò 0‰ˆˆeÜ�x Ó&¨%Ó/Ð/Ð/ñ0rL   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚInvalidRowHandlerc                 ó    — || _         g | _        y r   )ÚresultÚrows)Úselfrk   s     r   Ú__init__zInvalidRowHandler.__init__~   s   € ØˆŒØˆ�	rL   c                 óP   — | j                   j                  |«       | j                  S r   )rl   Úappendrk   )rm   rD   s     r   Ú__call__zInvalidRowHandler.__call__‚   s   € Ø�	‰	×Ñ˜ÔØ�{‰{ÐrL   c                 óX   — t        |t        «      xr |j                  | j                  k(  S r   ©Ú
isinstanceri   rk   ©rm   Úothers     r   Ú__eq__zInvalidRowHandler.__eq__†   s'   € Ü˜5Ô"3Ó4ò ,Ø—‘ §¡Ñ+ð	-rL   c                 óZ   — t        |t        «       xs |j                  | j                  k7  S r   rs   ru   s     r   Ú__ne__zInvalidRowHandler.__ne__Š   s*   € Ü˜uÔ&7Ó8Ð8ò ,Ø—‘ §¡Ñ+ð	-rL   N)Ú__name__Ú
__module__Ú__qualname__rn   rq   rw   ry   rO   rL   r   ri   ri   }   s   „ òòò-ó-rL   ri   c                  óæ   — d} d}t        dd«      D �cg c]  }|‘Œ }}t        t        || |«      «      }|g d¢g d¢gk(  sJ ‚t        t        || |«      «      }|ddgddgd	d
gddgddggk(  sJ ‚y c c}w )Né   é   rN   é   )rN   r   é   é   r~   )é   é   é   é	   é
   rƒ   r„   r�   r…   r‚   r†   r‡   )r   r0   r#   r%   )r    r!   Úxr   rl   rE   s         r   Ú#test_split_rows_and_columns_utilityr‰   �   s©   € Ø€HØ€HÜ˜A˜r“lÖ
#�Š1Ð
#€CÐ
#Ü”
˜3 ¨(Ó3Ó4€DØÚÚðò ð ð ô ”=  h°Ó9Ó:€GØØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆBˆðò ð ñ ùò $s   “	A.c           
      ó  — t         } |«       }t        |ddgddgg ddggddgddgdd	g¬
«       t        || ddddgddd	¬«       |j                  dkD  sJ ‚d|_        |j                  dk(  sJ ‚ |d¬«      }|j                  dk(  sJ ‚|j	                  «        d}t        j                  t        j                  |¬«      5   |«       }d|_        |j	                  «        d d d «       d}t        j                  t        j                  |¬«      5   |«       }d|_	        |j	                  «        d d d «       d}t        j                  t        j                  |¬«      5   |«       }d|_
        |j	                  «        d d d «       d}t        j                  t        j                  |¬«      5   |«       }d|_        d|_        |j	                  «        d d d «       y # 1 sw Y   ŒûxY w# 1 sw Y   Œ¹xY w# 1 sw Y   ŒwxY w# 1 sw Y   y xY w)NTFr   r�   ÚabÚcdÚutf8Úutf16é   )Úuse_threadsÚ	skip_rowsrJ   Úautogenerate_column_namesÚencodingÚskip_rows_after_names)re   r�   r‘   rJ   r’   r“   r”   é90  iÒ  ©Ú
block_sizez-ReadOptions: block_size must be at least 1: 0©Úmatchz-ReadOptions: skip_rows cannot be negative: -1éÿÿÿÿz9ReadOptions: skip_rows_after_names cannot be negative: -1zTReadOptions: autogenerate_column_names cannot be true when column_names are provided©ÚaÚb)r   r_   rg   r—   ÚvalidaterS   rT   r9   ÚArrowInvalidr‘   r”   r’   rJ   )Úpickle_modulerW   rY   r™   s       r   Útest_read_optionsr¡   ¢   sß  € Ü
€CÙ‹5€Dä˜¨$°¨Ø#$ a &Ø&(¨4°¨,Ð%7Ø38¸$°-Ø"(¨'Ð!2Ø/0°"¨gõ7ô ! ¨mØ-1Ø+,Ø/3°T¨lØ;@Ø*1Ø79õ;ð �?‰?˜QÒÐÐØ€D„OØ�?‰?˜eÒ#Ð#Ð#á˜$Ô€DØ�?‰?˜dÒ"Ð"Ð"à‡M�M„Oà;€EÜ	�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆŒØ�‰Œ÷ð
 <€EÜ	�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆŒØ�‰Œ÷ð
 H€EÜ	�‰”r—‘¨eÔ	4ñ Ù‹uˆØ%'ˆÔ"Ø�‰Œ÷ð
)€Eä	�‰”r—‘¨eÔ	4ñ Ù‹uˆØ)-ˆÔ&Ø&ˆÔØ�‰Œ÷	ð ÷'ð ú÷ð ú÷ð ú÷ð ús0   Â=GÄG"ÅG.Æ'&G:ÇGÇ"G+Ç.G7Ç:Hc                 ó(  — t         }t        d«      }t        |ddgddgg d¢ddgddgddgd |g¬«       t        || dddddd|¬	«	        |«       j	                  «         |«       }d
|_        |j	                  «        d}t        j                  t        j                  |¬«      5   |«       }d|_        |j	                  «        d d d «       t        j                  t        j                  |¬«      5   |«       }d|_        |j	                  «        d d d «       d}t        j                  t        j                  |¬«      5   |«       }d|_
        |j	                  «        d d d «       t        j                  t        j                  |¬«      5   |«       }d|_
        |j	                  «        d d d «       d}t        j                  t        j                  |¬«      5   |«       }d|_        |j	                  «        d d d «       t        j                  t        j                  |¬«      5   |«       }d|_        |j	                  «        d d d «       y # 1 sw Y   �Œ‹xY w# 1 sw Y   �ŒLxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒËxY w# 1 sw Y   Œ‰xY w# 1 sw Y   y xY w)NÚskipr)   rˆ   FÚy)ú"ÚzFT)Ú	delimiterÚescape_charÚ
quote_charÚdouble_quoteÚnewlines_in_valuesÚignore_empty_linesÚinvalid_row_handler)re   r§   r¨   r©   rª   r«   r¬   r­   ú	z,ParseOptions: delimiter cannot be \\r or \\nr˜   rI   úz-ParseOptions: quote_char cannot be \\r or \\nz.ParseOptions: escape_char cannot be \\r or \\n)r	   ri   r_   rg   rž   r§   rS   rT   r9   rŸ   r©   r¨   )r    rW   Úskip_handlerrY   r™   s        r   Útest_parse_optionsr±   Ù   s(  € Ü
€CÜ$ VÓ,€Lä˜¨¨S zØ%*¨C LÚ#4Ø&*¨E ]Ø,1°4¨=Ø,0°%¨=Ø-1°<Ð,@õBô ! ¨mØ+.Ø-0Ø,1Ø.3Ø48Ø49Ø5AõCñ ƒE‡N�NÔÙ‹5€DØ€D„NØ‡M�M„Oà>€EÜ	�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆŒØ�‰Œ÷ô
 
�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆŒØ�‰Œ÷ð
 @€EÜ	�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆŒØ�‰Œ÷ô
 
�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆŒØ�‰Œ÷ð
 A€EÜ	�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆÔØ�‰Œ÷ô
 
�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆÔØ�‰Œ÷ð ÷7ñ ú÷
ñ ú÷ñ ú÷
ð ú÷ð ú÷
ð úsH   Â!I	Ã-IÄ;I#ÆI0ÇI<È!JÉ	IÉI É#I-É0I9É<JÊJc                 óœ  — t         } |«       }t        |ddgddgddgddgg ddggddgddgg t        dgg¬«	       t        || ddddddgddt        dg¬	«
       t	        j
                  t        «      5  d
|_        d d d «       |j                  dkD  sJ ‚d|_        |j                  dk(  sJ ‚|j                  i k(  sJ ‚t        j                  «       t        j                  «       dœ|_	        |j                  t        j                  «       t        j                  «       dœk(  sJ ‚dddœ|_	        |j                  t        j                  «       t        j                  «       dœk(  sJ ‚t        j                  dt        j                  «       fdt        j                   «       fg«      }||_	        |j                  t        j                  «       t        j                   «       dœk(  sJ ‚dt        j"                  «       fg|_	        |j                  dt        j"                  «       ik(  sJ ‚t	        j
                  t$        d¬«      5  dd i|_	        d d d «       t	        j
                  t$        «      5  d|_	        d d d «       t'        |j(                  t*        «      sJ ‚d|j(                  v sJ ‚d|j(                  v sJ ‚ddg|_        |j(                  ddgk(  sJ ‚t'        |j,                  t*        «      sJ ‚ddg|_        |j,                  ddgk(  sJ ‚t'        |j.                  t*        «      sJ ‚ddg|_        |j.                  ddgk(  sJ ‚|j0                  g k(  sJ ‚t        g|_        |j0                  t        gk(  sJ ‚ |dt        j                  «       iddgddgdd gd!t        d"g¬#«      }|j                  dt        j                  «       ik(  sJ ‚|j(                  ddgk(  sJ ‚|j.                  dd gk(  sJ ‚|j,                  ddgk(  sJ ‚|j                  d!k(  sJ ‚|j0                  t        d"gk(  sJ ‚y # 1 sw Y   �Œ±xY w# 1 sw Y   �ŒðxY w# 1 sw Y   �ŒÔxY w)$NTFú.r)   ÚdefÚabcz%y-%m)Ú
check_utf8Ústrings_can_be_nullÚquoted_strings_can_be_nullÚdecimal_pointÚinclude_columnsÚinclude_missing_columnsÚauto_dict_encodeÚtimestamp_parsers)	re   r¶   r·   r¸   r¹   rº   r»   r¼   r½   z..r   éŸ† )r�   ÚcÚint16Únull)r\   Úwrœ   r�   r›   rˆ   zDataType expectedr˜   Ú úN/AÚxxxÚyyyÚNÚnnÚTÚttÚFÚffiç  z%Y-%m-%d)Úcolumn_typesÚnull_valuesÚtrue_valuesÚfalse_valuesÚauto_dict_max_cardinalityr½   )r
   r_   r   rg   rS   rT   Ú
ValueErrorr¹   rÑ   rÍ   r9   rÀ   Úfloat32rÁ   ÚschemaÚint32r   ÚbinaryÚ	TypeErrorrt   rÎ   r0   rÏ   rÐ   r½   )r    rW   rY   rÔ   s       r   Útest_convert_optionsrØ     s(  € Ü
€CÙ‹5€DäØ˜˜u˜Ø" D˜MØ$(¨% =Ø˜C�jØ˜e U˜^Ð,Ø!&¨ Ø ˜Ø¤¨Ð1Ð2õ4ô !Ø�]ØØ Ø#(ØØ ˜Ø %ØÜ" GÐ,õ	.ô 
�‰”zÓ	"ñ "Ø!ˆÔ÷"ð ×)Ñ)¨AÒ-Ð-Ð-Ø%*€DÔ"Ø×)Ñ)¨UÒ2Ð2Ð2à×Ñ Ò"Ð"Ð"ä Ÿh™h›j¬r¯z©z«|Ñ<€DÔØ×Ñ¤b§h¡h£j´r·z±z³|Ñ DÒDÐDÐDØ%¨FÑ3€DÔØ×Ñ¤b§h¡h£j´r·w±w³yÑ AÒAÐAÐAä�Y‰Y˜œbŸh™h›jÐ)¨C´·±³Ð+=Ð>Ó?€FØ€DÔØ×Ñ¤b§h¡h£j´r·y±y³{Ñ CÒCÐCÐCàœrŸy™y›{Ð+Ð,€DÔØ×Ñ ¤b§i¡i£kÐ 2Ò2Ð2Ð2ä	�‰”yÐ(;Ô	<ñ (Ø  $˜KˆÔ÷(ä	�‰”yÓ	!ñ ØˆÔ÷ô �d×&Ñ&¬Ô-Ð-Ð-Ø�×!Ñ!Ñ!Ð!Ð!Ø�D×$Ñ$Ñ$Ð$Ð$Ø˜u�~€DÔØ×Ñ  u˜~Ò-Ð-Ð-ä�d×&Ñ&¬Ô-Ð-Ð-Ø˜u�~€DÔØ×Ñ  u˜~Ò-Ð-Ð-ä�d×'Ñ'¬Ô.Ð.Ð.Ø ˜€DÔØ×Ñ ¨ Ò.Ð.Ð.à×!Ñ! RÒ'Ð'Ð'Ü%˜Y€DÔØ×!Ñ!¤g YÒ.Ð.Ð.á˜S¤"§'¡'£)Ð,Ø ˜;°S¸$°KØ  $˜KÀ3Ü")¨:Ð!6ô8€Dð ×Ñ ¤b§g¡g£iÐ 0Ò0Ð0Ð0Ø×Ñ  T˜{Ò*Ð*Ð*Ø×Ñ  d Ò+Ð+Ð+Ø×Ñ  T˜{Ò*Ð*Ð*Ø×)Ñ)¨SÒ0Ð0Ð0Ø×!Ñ!¤g¨zÐ%:Ò:Ð:Ñ:÷k"ñ "ú÷*(ñ (ú÷ñ ús$   Á0P'È<
P4É'QÐ'P1Ð4P>ÑQc                  ó¢  — t         }  | «       }t        | ddgg d¢g d¢¬«       |j                  dkD  sJ ‚d|_        |j                  dk(  sJ ‚ | d¬	«      }|j                  dk(  sJ ‚|j                  «        d
}t	        j
                  t        j                  |¬«      5   | «       }d|_        |j                  «        d d d «       y # 1 sw Y   y xY w)NTF)r)   r®   ú|)ÚneededÚnoneÚ	all_valid)Úinclude_headerr§   Úquoting_styler   r•   i”&  )Ú
batch_sizez.WriteOptions: batch_size must be at least 1: 0r˜   )r   r_   rà   rž   rS   rT   r9   rŸ   )rW   rY   r™   s      r   Útest_write_optionsrá   f  sº   € Ü
€CÙ‹5€DäØ˜T 5˜MÒ5EÚ5õ7ð �?‰?˜QÒÐÐØ€D„OØ�?‰?˜eÒ#Ð#Ð#á˜$Ô€DØ�?‰?˜dÒ"Ð"Ð"à‡M�M„Oà<€EÜ	�‰”r—‘¨eÔ	4ñ Ù‹uˆØˆŒØ�‰Œ÷÷ ñ ús   ÂCÃCc                   óÂ   — e Zd ZdZej
                  d„ «       Zeej
                  d„ «       «       Ze	d„ «       Z
d„ Zd„ Zej                  j                  d„ «       Zd„ Zd	„ Zy
)ÚBaseTestCSVzDCommon tests which are shared by streaming and non streaming readersc                 ó   — t         ‚)zš
        :param b: bytes to be parsed
        :param kwargs: arguments passed on to open the csv file
        :return: b parsed as a single Table
        ©ÚNotImplementedError©rm   r�   Úkwargss      r   Ú
read_byteszBaseTestCSV.read_bytes�  s
   € ô "Ð!rL   c                 ó   — t         ‚)z#Whether this test is multi-threadedrå   ©rm   s    r   r�   zBaseTestCSV.use_threadsŠ  s
   € ô "Ð!rL   c                 óZ   — | j                   t        |«      k(  sJ ‚| j                  |k(  sJ ‚y r   )Únum_columnsÚlenrJ   )ÚtableÚnamess     r   Úcheck_nameszBaseTestCSV.check_names�  s.   € à× Ñ ¤C¨£JÒ.Ð.Ð.Ø×!Ñ! UÒ*Ð*Ñ*rL   c                 ó  — d}t        «       }d|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       ddgdd	gd
œk(  sJ ‚d|_        | j                  ||¬«      }| j                  |dd	g«       |j	                  «       g g dœk(  sJ ‚d|_        t        j                  t        j                  «      5  | j                  ||¬«      }d d d «       d}d|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       dgd	gdœk(  sJ ‚d|_        ddg|_	        | j                  ||¬«      }| j                  |ddg«       |j	                  «       g g dœk(  sJ ‚y # 1 sw Y   Œ£xY w)Nó   ab,cd
ef,gh
ij,kl
mn,op
rN   ©Úread_optionsÚefÚghÚijÚmnÚklÚop)rö   r÷   r�   )rù   rû   r‚   ó   abcd
,,,,,
ij,kl
mn,op
r   )rø   rú   )
r   r‘   ré   rñ   Ú	to_pydictrS   rT   r9   rŸ   rJ   ©rm   rl   rY   rï   s       r   Útest_header_skip_rowsz!BaseTestCSV.test_header_skip_rows•  sµ  € Ø.ˆä‹}ˆØˆŒØ—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø˜�,Ø˜�,ñ%
ò 
ð 	
ð 
ð
 ˆŒØ—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó ØØñ%
ò 
ð 	
ð 
ð
 ˆŒÜ�]‰]œ2Ÿ?™?Ó+ñ 	=à—O‘O D°t�OÓ<ˆE÷	=ð
 .ˆØˆŒØ—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�&Ø�&ñ%
ò 
ð 	
ð 
ð ˆŒØ! 4˜LˆÔØ—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó ØØñ%
ò 
ð 	
ñ 
÷'	=ð 	=ús   ÃE=Å=Fc                 óT  — d}t        «       }d|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       ddgdd	gd
œk(  sJ ‚d|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       g g d
œk(  sJ ‚d|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       g g d
œk(  sJ ‚d}d|_        ddg|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       ddgdd	gdœk(  sJ ‚t        «       }d}d|_        t        «       }d|_        | j                  |||¬«      }| j                  |ddg«       |j	                  «       dgd	gd
œk(  sJ ‚d|_        d|_        | j                  |||¬«      }| j                  |ddg«       |j	                  «       dgd	gd
œk(  sJ ‚t        «       }t        dd¬«      \  }}d|_        t        |«      dz  |_        | j                  ||¬«      }|j                  |j                  k(  sJ ‚|j                  dk(  sJ ‚|j	                  «       }|j	                  «       j                  «       D ]  \  }}|dd  ||   k(  rŒJ ‚ | j                  |||¬«      }|j                  |j                  k(  sJ ‚|j                  dk(  sJ ‚|j	                  «       }|j	                  «       j                  «       D ]  \  }}|dd  ||   k(  rŒJ ‚ t        ddd¬«      \  }}t        «       }d|_        d |_        |j                  j                  |_        | j                  |||¬«      }|j                  |j                  k(  sJ ‚|j                  |j                  |j                  z
  |j                  z
  k(  sJ ‚|j	                  «       }|j	                  «       j                  «       D ])  \  }}||j                  |j                  z   d  ||   k(  rŒ)J ‚ y )!Nró   rN   rô   r‹   rŒ   rø   rù   rú   rû   ©r‹   rŒ   r�   r‚   rü   r   Úf0Úf1©r  r  s#   ab,cd
"e
f","g

h"
"ij","k
l"
mn,opT©rõ   Úparse_optionsé   r~   r(   ©r    r!   i„  r€   éd   éÈ   F)r    r!   r?   é%   é)   )r   r”   ré   rñ   rý   rJ   r	   r«   r—   rG   rî   rÔ   r!   rP   r‘   rð   )	rm   rl   rY   rï   Ú
parse_optsrF   Ú
table_dictrZ   r[   s	            r   Útest_skip_rows_after_namesz&BaseTestCSV.test_skip_rows_after_namesÂ  s®  € Ø.ˆä‹}ˆØ%&ˆÔ"Ø—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø˜�,Ø˜�,ñ%
ò 
ð 	
ð 
ð &'ˆÔ"Ø—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó ØØñ%
ò 
ð 	
ð 
ð &'ˆÔ"Ø—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó ØØñ%
ò 
ð 	
ð 
ð .ˆØ%&ˆÔ"Ø! 4˜LˆÔØ—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø˜�,Ø˜�,ñ%
ò 
ð 	
ð 
ô ‹}ˆð =ˆØ%&ˆÔ"Ü!“^ˆ
Ø(,ˆ
Ô%Ø—‘ °4Ø.8ð  ó :ˆà×Ñ˜  t Ô-Ø�‰Ó Ø�&Ø�&ñ%
ò 
ð 	
ð 
ð &'ˆÔ"ØˆŒØ—‘ °4Ø.8ð  ó :ˆà×Ñ˜  t Ô-Ø�‰Ó Ø�&Ø�&ñ%
ò 
ð 	
ð 
ô ‹}ˆô )°!¸dÔC‰ˆˆhØ%(ˆÔ"Ü˜d›) b™.ˆŒØ—‘ °4�Ó8ˆØ�|‰|˜xŸ™Ò.Ð.Ð.Ø�~‰~ Ò$Ð$Ð$Ø—_‘_Ó&ˆ
Ø$×.Ñ.Ó0×6Ñ6Ó8ò 	4‰LˆD�&Ø˜#˜$�< :¨dÑ#3Ó3Ð3Ð3ð	4ð —‘ °4Ø.8ð  ó :ˆà�|‰|˜xŸ™Ò.Ð.Ð.Ø�~‰~ Ò$Ð$Ð$Ø—_‘_Ó&ˆ
Ø$×.Ñ.Ó0×6Ñ6Ó8ò 	4‰LˆD�&Ø˜#˜$�< :¨dÑ#3Ó3Ð3Ð3ð	4ô )°!¸cØ5:ô<‰ˆˆhä‹}ˆØˆŒØ%'ˆÔ"Ø$ŸO™O×1Ñ1ˆÔØ—‘ °4Ø.8ð  ó :ˆà�|‰|˜xŸ™Ò.Ð.Ð.Ø—‘Ø×!Ñ! D§N¡NÑ2Ø×*Ñ*ñ+ò+ð 	,ð +ð —_‘_Ó&ˆ
Ø$×.Ñ.Ó0×6Ñ6Ó8ò 	&‰LˆD�&Ø˜4Ÿ>™>¨D×,FÑ,FÑFÐGÐHØ˜tÑ$ó%ð &ð %ñ	&rL   c                 ó	  ‡ — ˆ fd„}t        ddd¬«      \  }}t        «       }t        |«      dz  |_        t	        «       }dt        j                  «       i|_        |dz   } |d	d
«      }t        j                  t
        j                  |¬«      5  ‰ j                  |||¬«       d d d «       |dz   } |dd
|«      }	t        j                  t
        j                  |	¬«      5  ‰ j                  |||¬«       d d d «       d}
||
z   } |dd
|
dd j                  d«      «      }t        j                  t
        j                  |¬«      5  ‰ j                  |||¬«       d d d «       d|_        t        j                  t
        j                  |¬«      5  ‰ j                  |||¬«       d d d «       t        j                  t
        j                  |	¬«      5  ‰ j                  |||¬«       d d d «       t        j                  t
        j                  |¬«      5  ‰ j                  |||¬«       d d d «       d|_        t        ddd¬«      \  }}g d¢|_        |dz   } |d	d«      }t        j                  t
        j                  |¬«      5  ‰ j                  |||¬«       d d d «       ||
z   } |dd|
dd j                  d«      «      }t        j                  t
        j                  |¬«      5  ‰ j                  |||¬«       d d d «       |dz   } |dd«      }	|	j                  t        |«      «      }	t        j                  t
        j                  |	¬«      5  ‰ j                  |||¬«       d d d «       d|_        t        j                  t
        j                  |¬«      5  ‰ j                  |||¬«       d d d «       t        j                  t
        j                  |	¬«      5  ‰ j                  |||¬«       d d d «       y # 1 sw Y   �ŒWxY w# 1 sw Y   �ŒxY w# 1 sw Y   �Œ»xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒJxY w# 1 sw Y   �ŒxY w# 1 sw Y   �Œ±xY w# 1 sw Y   �Œ[xY w# 1 sw Y   ŒýxY w# 1 sw Y   ŒÀxY w# 1 sw Y   y xY w)Nc                 óT   •— ‰j                   rd}nd|› d�} | j                  |g|¢­Ž S )NrÃ   zRow #z: )r�   Úformat)Ú
msg_formatrD   ÚargsÚrow_inform   s       €r   Ú
format_msgz@BaseTestCSV.test_row_number_offset_in_errors.<locals>.format_msg.  s6   ø€ Ø×ÒØ‘à" 3 % r˜?�Ø$�:×$Ñ$ XÐ5°Ò5Ð5rL   r‚   r	  T)r?   r�   rœ   s   1,2
z{}Expected 4 columns, got 2éf   r˜   ©rõ   Úconvert_optionss	   a,b,c,d
zDIn CSV column #0: {}CSV conversion error to int32: invalid value 'a's  this is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long rowthis is a long row,3
z#{}Expected 4 columns, got 2: {} ...r   é`   zutf-8é/   F©rœ   r�   r¿   Údée   é   )rG   r   rî   r—   r
   r9   rÕ   rÍ   rS   rT   rŸ   ré   Údecoder”   rJ   r  r‘   )rm   r  rB   rA   rõ   r  Úcsv_bad_columnsÚmessage_columnsÚcsv_bad_typeÚmessage_valueÚlong_rowÚcsv_bad_columns_longÚmessage_longs   `            r   Ú test_row_number_offset_in_errorsz,BaseTestCSV.test_row_number_offset_in_errors+  sB  ø€ ô	6ô !  C°TÔ:‰ˆˆQä"“}ˆÜ"% c£(¨Q¡,ˆÔÜ(Ó*ˆØ(+¬R¯X©X«ZÐ'8ˆÔ$ð  
Ñ*ˆÙ$Ð%BÀCÓHˆÜ�]‰]œ2Ÿ?™?°/ÔBñ 	=Ø�O‰O˜OØ)5Ø,;ð ô =÷	=ð
 ˜^Ñ+ˆÙ"ð?à�óˆô �]‰]œ2Ÿ?™?°-Ô@ñ 	=Ø�O‰O˜LØ)5Ø,;ð ô =÷	=ð
 <ˆØ" X™~ÐÙ!Ð"GÈØ"*¨1¨R .×"7Ñ"7¸Ó"@óBˆä�]‰]œ2Ÿ?™?°,Ô?ñ 	=Ø�O‰OÐ0Ø)5Ø,;ð ô =÷	=ð .0ˆÔ*ä�]‰]œ2Ÿ?™?°/ÔBñ 	=Ø�O‰O˜OØ)5Ø,;ð ô =÷	=ô
 �]‰]œ2Ÿ?™?°-Ô@ñ 	=Ø�O‰O˜LØ)5Ø,;ð ô =÷	=ô
 �]‰]œ2Ÿ?™?°,Ô?ñ 	=Ø�O‰OÐ0Ø)5Ø,;ð ô =÷	=ð
 ./ˆÔ*ô !  C°UÔ;‰ˆˆQÚ$8ˆÔ!Ø 
Ñ*ˆÙ$Ð%BÀCÓHˆÜ�]‰]œ2Ÿ?™?°/ÔBñ 	=Ø�O‰O˜OØ)5Ø,;ð ô =÷	=ð
  # X™~ÐÙ!Ð"GÈØ"*¨1¨R .×"7Ñ"7¸Ó"@óBˆä�]‰]œ2Ÿ?™?°,Ô?ñ 	=Ø�O‰OÐ0Ø)5Ø,;ð ô =÷	=ð
 ˜^Ñ+ˆÙ"ð?àóˆð &×,Ñ,¬S°«XÓ6ˆÜ�]‰]œ2Ÿ?™?°-Ô@ñ 	=Ø�O‰O˜LØ)5Ø,;ð ô =÷	=ð "$ˆÔÜ�]‰]œ2Ÿ?™?°/ÔBñ 	=Ø�O‰O˜OØ)5Ø,;ð ô =÷	=ô
 �]‰]œ2Ÿ?™?°-Ô@ñ 	=Ø�O‰O˜LØ)5Ø,;ð ô =÷	=ð 	=÷a	=ñ 	=ú÷	=ñ 	=ú÷	=ñ 	=ú÷	=ñ 	=ú÷
	=ñ 	=ú÷
	=ñ 	=ú÷	=ñ 	=ú÷	=ñ 	=ú÷	=ð 	=ú÷	=ð 	=ú÷
	=ð 	=ús„   ÂO7ÃPÅPÆPÇP+ÈP8ÊQË$QÍQÎQ+ÏQ7Ï7PÐPÐPÐP(Ð+P5Ð8QÑQÑQÑQ(Ñ+Q4Ñ7R c                 óx  ‡ — d}t        «       }t        j                  t        d¬«      5  ‰ j	                  ||¬«       d d d «       t        d«      |_        ‰ j	                  ||¬«      }|j                  «       ddgdd	gd
œk(  sJ ‚ˆ fd„}t        dd |d«      d«      t        dd |d«      d«      g}|j                  j                  |k(  sJ ‚t        d«      |_        t        j                  t        d¬«      5  ‰ j	                  ||¬«       d d d «       t        dd |d«      d«      g}|j                  j                  |k(  sJ ‚t        d«      |_        |j                  |j                  |«      «      }‰ j	                  ||¬«      }|j                  «       ddgdd	gd
œk(  sJ ‚y # 1 sw Y   �ŒhxY w# 1 sw Y   Œ¦xY w)Ns   a,b
c
d,e
f,g,h
i,j
zExpected 2 columns, got 1: cr˜   ©r  r£   r  r"   ÚeÚjr›   c                 ó$   •— ‰j                   rd S | S r   )r�   )rˆ   rm   s    €r   Úrow_numz5BaseTestCSV.test_invalid_row_handler.<locals>.row_num¤  s   ø€ Ø×+Ò+�4Ð2°Ð2rL   r   rN   r¿   r�   r‚   zf,g,hÚerror)r	   rS   rT   rÒ   ré   ri   r­   rý   r   rl   rb   rc   )rm   r    rl   r  rï   r.  Úexpected_rowss   `      r   Útest_invalid_row_handlerz$BaseTestCSV.test_invalid_row_handler”  sÇ  ø€ Ø+ˆÜ!“^ˆ
Ü�]‰]ÜØ4ô6ñ 	<ð �O‰O˜D°
ˆOÔ;÷	<ô *;¸6Ó)Bˆ
Ô&Ø—‘ °J�Ó?ˆØ�‰Ó Ø�s�Ø�s�ñ%
ò 
ð 	
ð 
ô
	3ô �q˜!™W Q›Z¨Ó-Ü�q˜!™W Q›Z¨Ó1ð
ˆð ×-Ñ-×2Ñ2°mÒCÐCÐCô *;¸7Ó)Cˆ
Ô&Ü�]‰]ÜØ4ô6ñ 	<ð �O‰O˜D°
ˆOÔ;÷	<ô $ A q©'°!«*°cÓ:Ð;ˆØ×-Ñ-×2Ñ2°mÒCÐCÐCô *;¸6Ó)Bˆ
Ô&Ø"×(Ñ(¨×)<Ñ)<¸ZÓ)HÓIˆ
à—‘ °J�Ó?ˆØ�‰Ó Ø�s�Ø�s�ñ%
ò 
ð 	
ñ 
÷G	<ñ 	<ú÷.	<ð 	<ús   ©F#Ã7F0Æ#F-Æ0F9c                 óx  — d}ddgddgddgdœ}t        d	d
«      D ]?  }| j                  |t        d¬«      t        |¬«      ¬«      j	                  «       }||k(  rŒ?J ‚ t        d	d«      D ]C  }t        j                  t        d¬«      5  | j                  |t        |¬«      ¬«       d d d «       ŒE y # 1 sw Y   ŒPxY w)Ns   a,b,c
d,e,"f
"
g,h,i
r  Úgr+  Úhzf
r"   ©rœ   r�   r¿   r…   é   T)r«   r–   ©r  rõ   r€   z#cell values spanning multiple linesr˜   rô   )r   ré   r	   r   rý   rS   rT   rÒ   )rm   rl   rF   r—   r  s        r   Útest_chunker_out_of_syncz$BaseTestCSV.test_chunker_out_of_sync¿  sà   € ð 0ˆà�s�Ø�s�Ø˜�ñ
ˆô
    2›,ò 	!ˆJà—‘Ø¤LÀDÔ$IÜ(°JÔ?ð  ó AçAJÁÃð ð ˜“=Ð �=ð	!ô    2›,ò 	KˆJÜ—‘œzØ%JôLñ Kà—‘Ø¤{¸jÔ'Ið  ô K÷Kð Kñ	K÷Kð Kús   ÂB0Â0B9	N)rz   r{   r|   Ú__doc__rµ   Úabstractmethodré   Úpropertyr�   Ústaticmethodrñ   rÿ   r  rS   ÚmarkÚnumpyr(  r1  r8  rO   rL   r   rã   rã   ~  s�   „ ÙNà×Ññ"ó ð"ð Ø×Ññ"ó ó ð"ð ñ+ó ð+ò+
òZg&ðR ‡[�[×Ññf=ó ðf=òP)
óVKrL   rã   c                   óB  — e Zd Zddœ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„ 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„ Zd „ Z d!„ Z!d"„ Z"e#jH                  jJ                  d#„ «       Z&e#jH                  jJ                  d$„ «       Z'y%)&ÚBaseCSVTableReadT)Úvalidate_fullc                óÖ   — t        | j                  t        «      sJ ‚|j                  dt	        «       «      }| j                  |_        t        |g|¢­i |¤Ž}|j                  |¬«       |S )a=  
        Reads the CSV file into memory using pyarrow's read_csv
        csv The CSV bytes
        args Positional arguments to be forwarded to pyarrow's read_csv
        validate_full Whether or not to fully validate the resulting table
        kwargs Keyword arguments to be forwarded to pyarrow's read_csv
        rõ   ©Úfull)rt   r�   ÚboolÚ
setdefaultr   r   rž   )rm   rB   rA  r  rè   rõ   rï   s          r   r   zBaseCSVTableRead.read_csvÛ  sc   € ô ˜$×*Ñ*¬DÔ1Ð1Ð1Ø×(Ñ(¨¼»ÓGˆØ#'×#3Ñ#3ˆÔ Ü˜Ð.˜tÒ. vÑ.ˆØ�‰˜MˆÔ*ØˆrL   c                 óN   —  | j                   t        j                  |«      fi |¤ŽS r   )r   r9   Ú	py_bufferrç   s      r   ré   zBaseCSVTableRead.read_bytesê  ó    € Øˆt�}‰}œRŸ\™\¨!›_Ñ7°Ñ7Ð7rL   c                 óP  — d}dgdgdœ}t        j                  |«      }| j                  |«      }|j                  «       |k(  sJ ‚t        j                  |j                  «       «      }t        j                  t        «      5  | j                  |«       d d d «       y # 1 sw Y   y xY w)Ns   a,b
1,2
rN   r   r›   )	r.   ÚBytesIOr   rý   r/   r   rS   rT   r×   )rm   ÚdataÚexpected_dataÚbiorï   Úsios         r   Útest_file_objectz!BaseCSVTableRead.test_file_objectí  s‡   € ØˆØ ˜c¨¨Ñ,ˆÜ�j‰j˜ÓˆØ—‘˜cÓ"ˆØ�‰Ó  MÒ1Ð1Ð1ä�k‰k˜$Ÿ+™+›-Ó(ˆÜ�]‰]œ9Ó%ñ 	Ø�M‰M˜#Ô÷	÷ 	ñ 	ús   ÂBÂB%c                 ó¬   — d}| j                  |«      }t        |t        j                  «      sJ ‚| j	                  |g d¢«       |j
                  dk(  sJ ‚y )Nó   abc,def,gh
)rµ   r´   r÷   r   )ré   rt   r9   r<   rñ   r!   ©rm   rl   rï   s      r   Útest_headerzBaseCSVTableRead.test_headerø  sL   € ØˆØ—‘ Ó%ˆÜ˜%¤§¡Ô*Ð*Ð*Ø×Ñ˜Ò 4Ô5Ø�~‰~ Ò"Ð"Ñ"rL   c                 ób   — d}dgdgdœ}| j                  |«      }|j                  «       |k(  sJ ‚y )Ns   ï»¿a,b
1,2
rN   r   r›   ©ré   rý   )rm   rl   rM  rï   s       r   Útest_bomzBaseCSVTableRead.test_bomÿ  s8   € Ø(ˆØ ˜c¨¨Ñ,ˆØ—‘ Ó%ˆØ�‰Ó  MÒ1Ð1Ñ1rL   c                 óê   — g d¢}dD ]j  }d|fD ]a  }|j                  |«      |z   }| j                  |«      }t        |j                  «       «      dk(  sJ ‚|j	                  «       g d¢g d¢dœk(  rŒaJ ‚ Œl y )N)s   a,bs   1,2s   3,4s   56,78)ó   
ó   ó   
rL   rN   )rN   r�   é8   )r   r‚   éN   r›   )r4   ré   rî   Ú
to_batchesrý   )rm   rl   Úline_endingÚfile_endingrL  rï   s         r   Útest_one_chunkzBaseCSVTableRead.test_one_chunk  s�   € ò 2ˆØ2ò 	ˆKØ # [Ð1ò �Ø"×'Ñ'¨Ó-°Ñ;�ØŸ™¨Ó-�Ü˜5×+Ñ+Ó-Ó.°!Ò3Ð3Ð3Ø—‘Ó(Ú#Ú#ñ-ó ð ð ñ	ñ	rL   c                 óØ  — d}t        «       }ddg|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       g d¢g d¢dœk(  sJ ‚d|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       d	gd
gdœk(  sJ ‚d|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       g g dœk(  sJ ‚d|_        t        j                  t        j                  «      5  | j                  ||¬«      }d d d «       d|_        g d¢|_        t        j                  t        j                  d¬«      5  | j                  ||¬«      }d d d «       d}d|_        ddg|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       dd	gdd
gdœk(  sJ ‚y # 1 sw Y   Œ°xY w# 1 sw Y   ŒkxY w)Nró   rˆ   r¤   rô   ©r‹   rö   rø   rù   ©rŒ   r÷   rú   rû   ©rˆ   r¤   r�   rù   rû   r‚   r~   r   )rˆ   r¤   r¦   úExpected 3 columns, got 2r˜   rü   r   rø   rú   )
r   rJ   ré   rñ   rý   r‘   rS   rT   r9   rŸ   rþ   s       r   Útest_header_column_namesz)BaseCSVTableRead.test_header_column_names  s  € Ø.ˆä‹}ˆØ  #˜JˆÔØ—‘ °4�Ó8ˆØ×Ñ˜  c 
Ô+Ø�‰Ó Ú)Ú)ñ%
ò 
ð 	
ð 
ð
 ˆŒØ—‘ °4�Ó8ˆØ×Ñ˜  c 
Ô+Ø�‰Ó Ø�Ø�ñ%
ò 
ð 	
ð 
ð
 ˆŒØ—‘ °4�Ó8ˆØ×Ñ˜  c 
Ô+Ø�‰Ó ØØñ%
ò 
ð 	
ð 
ð
 ˆŒÜ�]‰]œ2Ÿ?™?Ó+ñ 	=à—O‘O D°t�OÓ<ˆE÷	=ð
 ˆŒÚ+ˆÔÜ�]‰]œ2Ÿ?™?Ø!<ô>ñ 	=à—O‘O D°t�OÓ<ˆE÷	=ð
 .ˆØˆŒØ  #˜JˆÔØ—‘ °4�Ó8ˆØ×Ñ˜  c 
Ô+Ø�‰Ó Ø˜�Ø˜�ñ%
ò 
ð 	
ñ 
÷#	=ð 	=ú÷	=ð 	=ús   ÄGÅ"G ÇGÇ G)c                 óä  — d}t        «       }d|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       g d¢g d¢dœk(  sJ ‚d	|_        | j                  ||¬«      }| j                  |ddg«       |j	                  «       d
gdgdœk(  sJ ‚d|_        t        j                  t        j                  «      5  | j                  ||¬«      }d d d «       y # 1 sw Y   y xY w)Nró   Trô   r  r  rc  rd  r  r�   rù   rû   r‚   )
r   r’   ré   rñ   rý   r‘   rS   rT   r9   rŸ   rþ   s       r   Ú%test_header_autogenerate_column_namesz6BaseCSVTableRead.test_header_autogenerate_column_namesF  s÷   € Ø.ˆä‹}ˆØ)-ˆÔ&Ø—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ú*Ú*ñ%
ò 
ð 	
ð 
ð
 ˆŒØ—‘ °4�Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�&Ø�&ñ%
ò 
ð 	
ð 
ð ˆŒÜ�]‰]œ2Ÿ?™?Ó+ñ 	=Ø—O‘O D°t�OÓ<ˆE÷	=÷ 	=ñ 	=ús   Ã	C&Ã&C/c                 óR  — d}t        «       }dg|_        | j                  ||¬«      }| j                  |dg«       |j	                  «       dg d¢ik(  sJ ‚ddg|_        | j                  ||¬«      }t        j                  dt        j                  «       fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j	                  «       g d¢g d¢dœk(  sJ ‚g d¢|_        t        j                  t        d	¬
«      5  | j                  ||¬«       d d d «       y # 1 sw Y   y xY w)Nró   r‹   ©r  ©rö   rø   rù   rŒ   ©r÷   rú   rû   )rŒ   r‹   ©Úxxr‹   Úyyz9Column 'xx' in include_columns does not exist in CSV filer˜   )r
   rº   ré   rñ   rý   r9   rÔ   r   rS   rT   ÚKeyError)rm   rl   r  rï   rÔ   s        r   Útest_include_columnsz%BaseCSVTableRead.test_include_columns_  s-  € Ø.ˆä(Ó*ˆØ+/¨&ˆÔ'Ø—‘ °o�ÓFˆØ×Ñ˜  Ô'Ø�‰Ó ØÒ$ð%
ò 
ð 	
ð 
ð
 ,0°¨,ˆÔ'Ø—‘ °o�ÓFˆÜ—‘˜T¤2§9¡9£;Ð/Ø!¤2§9¡9£;Ð/ð1ó 2ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú$Ú$ñ%
ò 
ð 	
ð 
ò +=ˆÔ'Ü�]‰]œ8ð">ô?ñ 	Cð �O‰O˜D°/ˆOÔB÷	C÷ 	Cñ 	Cús   Ä DÄD&c                 ó   — d}t        «       }t        «       }g d¢|_        d|_        | j	                  |||¬«      }t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       g d¢g d	¢g d¢dœk(  sJ ‚ddg|_
        dd
g|_        | j	                  |||¬«      }t        j                  dt        j                  «       fd
t        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       g d¢g d¢dœk(  sJ ‚t        j                  «       t        j                  «       dœ|_        | j	                  |||¬«      }t        j                  dt        j                  «       fd
t        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       g d¢g d¢dœk(  sJ ‚y )Nró   rn  Tr  ro  r‹   rp  ©NNNrl  rŒ   rd  )NNNN)rp  rŒ   )s   cds   ghs   kls   op)r   r
   rº   r»   ré   r9   rÔ   rÁ   r   rý   rJ   rÖ   rÕ   rÍ   ©rm   rl   rõ   r  rï   rÔ   s         r   Útest_include_missing_columnsz-BaseCSVTableRead.test_include_missing_columns|  sî  € Ø.ˆä"“}ˆÜ(Ó*ˆÚ*<ˆÔ'Ø26ˆÔ/Ø—‘ °<Ø0?ð  ó Aˆä—‘˜T¤2§7¡7£9Ð-Ø!¤2§9¡9£;Ð/Ø!¤2§7¡7£9Ð-ð/ó 0ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú$Ú$Ú$ñ%
ò 
ð 	
ð 
ð &*¨4 LˆÔ!Ø+/°¨,ˆÔ'Ø—‘ °<Ø0?ð  ó Aˆä—‘˜T¤2§9¡9£;Ð/Ø!¤2§7¡7£9Ð-ð/ó 0ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú*Ú*ñ%
ò 
ð 	
ð 
ô /1¯i©i«kÜ.0¯h©h«jñ(:ˆÔ$à—‘ °<Ø0?ð  ó Aˆä—‘˜T¤2§9¡9£;Ð/Ø!¤2§8¡8£:Ð.ð0ó 1ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú.Ú*ñ%
ò 
ð 	
ñ 
rL   c                 ó2  — d}| j                  |«      }t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j	                  «       ddgddgd	d
gdœk(  sJ ‚y )Ns   a,b,c
1,2,3
4,5,6
rœ   r�   r¿   rN   r‚   r   r~   r�   rƒ   r5  )ré   r9   rÔ   r;   rý   ©rm   rl   rï   rÔ   s       r   Útest_simple_intsz!BaseCSVTableRead.test_simple_ints©  s˜   € à'ˆØ—‘ Ó%ˆÜ—‘˜S¤"§(¡(£*Ð-Ø ¤"§(¡(£*Ð-Ø ¤"§(¡(£*Ð-ð/ó 0ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ø�Q�Ø�Q�Ø�Q�ñ%
ò 
ð 	
ñ 
rL   c                 ób  — d}| j                  |«      }t        j                  dt        j                  «       fdt        j                  «       fdt        j
                  «       fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       ddgdd	gd
dgddgdœk(  sJ ‚y )Ns    a,b,c,d
1,2,3,0
4.0,-5,foo,True
rœ   r�   r¿   r  ç      ð?g      @r   éûÿÿÿÚ3ÚfooFTr  )ré   r9   rÔ   Úfloat64r;   r   Úbool_rý   rx  s       r   Útest_simple_variedz#BaseCSVTableRead.test_simple_varied·  s­   € à5ˆØ—‘ Ó%ˆÜ—‘˜S¤"§*¡*£,Ð/Ø ¤"§(¡(£*Ð-Ø ¤"§)¡)£+Ð.Ø ¤"§(¡(£*Ð-ð/ó 0ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ø�s�Ø�R�Ø�u�Ø˜�ñ	%
ò 
ð 	
ñ 
rL   c           
      óÂ  — d}| j                  |«      }t        j                  dt        j                  «       fdt        j                  «       fdt        j
                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       g d¢g d	¢g d
¢g d¢g d¢g d¢dœk(  sJ ‚y )NsC   a,b,c,d,e,f
1,2,,,3,N/A
nan,-5,foo,,nan,TRUE
4.5,#N/A,nan,,ÿ,false
rœ   r�   r¿   r  r+  Úf)r{  Ng      @)r   r|  N)rÃ   r~  Únanrt  )ó   3s   nanó   ÿ)NTF)rœ   r�   r¿   r  r+  rƒ  )
ré   r9   rÔ   r  r;   r   rÁ   rÖ   r€  rý   rx  s       r   Útest_simple_nullsz"BaseCSVTableRead.test_simple_nullsÇ  sÃ   € ð.ˆð —‘ Ó%ˆÜ—‘˜S¤"§*¡*£,Ð/Ø ¤"§(¡(£*Ð-Ø ¤"§)¡)£+Ð.Ø ¤"§'¡'£)Ð,Ø ¤"§)¡)£+Ð.Ø ¤"§(¡(£*Ð-ð/ó 0ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú!ÚÚ#Ú#Ú(Ú$ñ%
ò 
ð 	
ñ 
rL   c                 ó6  — t        d¬«      }d}| j                  ||¬«      }t        j                  dt        j                  «       fdt        j
                  «       fg«      }|j                  |k(  sJ ‚|j                  «       g d¢g d¢d	œk(  sJ ‚t        d
¬«      }| j                  |||¬«      }t        j                  dt        j
                  «       fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       g d¢g d¢d	œk(  sJ ‚y )Nú;©r§   s   a;b
1.25;2,5
NA;-3
-4;NAr*  rœ   r�   )g      ô?Ng      À)z2,5z-3ÚNAr›   r)   )r¹   )r  r  )z1.25r‹  z-4)g      @g      ÀN)r	   ré   r9   rÔ   r  r   rý   r
   )rm   r  rl   rï   rÔ   r  s         r   Útest_decimal_pointz#BaseCSVTableRead.test_decimal_pointÞ  s  € ä$¨sÔ3ˆØ-ˆà—‘ °M�ÓBˆÜ—‘˜S¤"§*¡*£,Ð/Ø ¤"§)¡)£+Ð.ð0ó 1ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú#Ú$ñ%
ò 
ð 	
ð 
ô
 )°sÔ;ˆØ—‘ °MØ0?ð  ó Aˆä—‘˜S¤"§)¡)£+Ð.Ø ¤"§*¡*£,Ð/ð1ó 2ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú%Ú"ñ%
ò 
ð 	
ñ 
rL   c                 ó   — d}| j                  |«      }t        j                  dt        j                  «       fdt        j                  d«      fdt        j                  d«      fg«      }|j                  |k(  sJ ‚|j                  «       ddgt        dd	d	«      t        dd
dd	«      gt        dd	d	dddd«      t        dd
dd	ddd«      gdœk(  sJ ‚y )Nsk   a,b,c
1970,1970-01-01 00:00:00,1970-01-01 00:00:00.123
1989,1989-07-14 01:00:00,1989-07-14 01:00:00.123456
rœ   r�   Úsr¿   Únsé²  iÅ  rN   r„   é   r   ixà é@â r5  )ré   r9   rÔ   r;   Ú	timestamprý   r   rx  s       r   Útest_simple_timestampsz'BaseCSVTableRead.test_simple_timestamps÷  sÞ   € ðIˆð —‘ Ó%ˆÜ—‘˜S¤"§(¡(£*Ð-Ø ¤"§,¡,¨sÓ"3Ð4Ø ¤"§,¡,¨tÓ"4Ð5ð7ó 8ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ø˜�Ü˜4  AÓ&¬°°q¸"¸aÓ(@ÐAÜ˜4  A q¨!¨Q°Ó7Ü˜4  B¨¨1¨a°Ó8ð:ñ%
ò 
ð 	
ñ 
rL   c                 óø  — d}t        «       }| j                  ||¬«      }t        j                  dt        j                  «       fdt        j
                  d«      fg«      }|j                  |k(  sJ ‚|j                  «       ddgt        dd	d	«      t        dd	d
«      gdœk(  sJ ‚dg|_        | j                  ||¬«      }t        j                  dt        j
                  d«      fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       t        dd	d	«      t        dd	d
«      gddgdœk(  sJ ‚dt        g|_        | j                  ||¬«      }t        j                  dt        j
                  d«      fdt        j
                  d«      fg«      }|j                  |k(  sJ ‚|j                  «       t        dd	d	«      t        dd	d
«      gt        dd	d	«      t        dd	d
«      gdœk(  sJ ‚y )Ns6   a,b
1970/01/01,1980-01-01 00
1970/01/02,1980-01-02 00
rk  rœ   r�   rŽ  z
1970/01/01z
1970/01/02i¼  rN   r   r›   z%Y/%m/%dr�  z1980-01-01 00z1980-01-02 00)
r
   ré   r9   rÔ   r   r“  rý   r   r½   r   )rm   rl   rY   rï   rÔ   s        r   Útest_timestamp_parsersz'BaseCSVTableRead.test_timestamp_parsers  sþ  € àKˆÜÓˆà—‘ °d�Ó;ˆÜ—‘˜S¤"§)¡)£+Ð.Ø ¤"§,¡,¨sÓ"3Ð4ð6ó 7ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ø Ð-Ü˜4  AÓ&¬°°q¸!Ó(<Ð=ñ%
ò 
ð 	
ð 
ð
 #- ˆÔØ—‘ °d�Ó;ˆÜ—‘˜S¤"§,¡,¨sÓ"3Ð4Ø ¤"§)¡)£+Ð.ð0ó 1ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ü˜4  AÓ&¬°°q¸!Ó(<Ð=Ø! ?Ð3ñ%
ò 
ð 	
ð 
ð
 #-¬gÐ!6ˆÔØ—‘ °d�Ó;ˆÜ—‘˜S¤"§,¡,¨sÓ"3Ð4Ø ¤"§,¡,¨sÓ"3Ð4ð6ó 7ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ü˜4  AÓ&¬°°q¸!Ó(<Ð=Ü˜4  AÓ&¬°°q¸!Ó(<Ð=ñ%
ò 
ð 	
ñ 
rL   c                 óî  — d}| j                  |«      }t        j                  dt        j                  «       fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j	                  «       t        ddd«      t        ddd«      gt        ddd«      t        ddd«      gdœk(  sJ ‚t        «       }t        j                  «       t        j                  «       dœ|_        | j                  ||¬	«      }t        j                  dt        j                  «       fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j	                  «       t        ddd«      t        ddd«      gt        ddd«      t        ddd«      gdœk(  sJ ‚t        «       }t        j                  d
«      t        j                  d«      dœ|_        | j                  ||¬	«      }t        j                  dt        j                  d
«      fdt        j                  d«      fg«      }|j                  |k(  sJ ‚|j	                  «       t        ddd«      t        ddd«      gt        ddd«      t        ddd«      gdœk(  sJ ‚y )Ns0   a,b
1970-01-01,1970-01-02
1971-01-01,1971-01-02
rœ   r�   r�  rN   i³  r   r›   rk  rŽ  Úms)ré   r9   rÔ   Údate32rý   r   r
   Údate64rÍ   r“  r   )rm   rl   rï   rÔ   rY   s        r   Ú
test_dateszBaseCSVTableRead.test_dates*  sA  € àEˆØ—‘ Ó%ˆÜ—‘˜S¤"§)¡)£+Ð.Ø ¤"§)¡)£+Ð.ð0ó 1ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ü�t˜Q Ó"¤D¨¨q°!Ó$4Ð5Ü�t˜Q Ó"¤D¨¨q°!Ó$4Ð5ñ%
ò 
ð 	
ð 
ô ÓˆÜ"$§)¡)£+´B·I±I³KÑ@ˆÔØ—‘ °d�Ó;ˆÜ—‘˜S¤"§)¡)£+Ð.Ø ¤"§)¡)£+Ð.ð0ó 1ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ü�t˜Q Ó"¤D¨¨q°!Ó$4Ð5Ü�t˜Q Ó"¤D¨¨q°!Ó$4Ð5ñ%
ò 
ð 	
ð 
ô ÓˆÜ"$§,¡,¨sÓ"3¼"¿,¹,ÀtÓ:LÑMˆÔØ—‘ °d�Ó;ˆÜ—‘˜S¤"§,¡,¨sÓ"3Ð4Ø ¤"§,¡,¨tÓ"4Ð5ð7ó 8ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ü˜4  AÓ&¬°°q¸!Ó(<Ð=Ü˜4  AÓ&¬°°q¸!Ó(<Ð=ñ%
ò 
ð 	
ñ 
rL   c           	      óê  — ddl m} d}| j                  |«      }t        j                  dt        j
                  d«      fdt        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «        |ddd	«       |d
dd«      gddgdœk(  sJ ‚t        «       }t        j                  d«      t        j
                  d«      dœ|_
        | j                  ||¬«      }t        j                  dt        j                  d«      fdt        j
                  d«      fg«      }|j                  |k(  sJ ‚|j                  «        |ddd	«       |d
dd«      g |ddd	d«       |d
ddd«      gdœk(  sJ ‚y )Nr   )Útimes0   a,b
12:34:56,12:34:56.789
23:59:59,23:59:59.999
rœ   rŽ  r�   é   é"   r\  r  é;   z12:34:56.789z23:59:59.999r›   Úusr˜  rk  i
 iX> )r   r�  ré   r9   rÔ   Útime32r   rý   r
   Útime64rÍ   )rm   r�  rl   rï   rÔ   rY   s         r   Ú
test_timeszBaseCSVTableRead.test_timesN  sm  € å!àEˆØ—‘ Ó%ˆä—‘˜S¤"§)¡)¨C£.Ð1Ø ¤"§)¡)£+Ð.ð0ó 1ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ù�r˜2˜rÓ"¡D¨¨R°Ó$4Ð5Ø  .Ð1ñ%
ò 
ð 	
ð 
ô ÓˆÜ"$§)¡)¨D£/¼¿	¹	À$»ÑHˆÔØ—‘ °d�Ó;ˆÜ—‘˜S¤"§)¡)¨D£/Ð2Ø ¤"§)¡)¨D£/Ð2ð4ó 5ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ù�r˜2˜rÓ"¡D¨¨R°Ó$4Ð5Ù�r˜2˜r 6Ó*©D°°R¸¸VÓ,DÐEñ%
ò 
ð 	
ñ 
rL   c                 ó†  — t        d¬«      }dj                  «       }| j                  ||¬«      }t        j                  dt        j
                  t        j                  «       t        j                  «       «      fdt        j                  «       fg«      }g d¢g d¢d	œ}|j                  |k(  sJ ‚|j                  «       |k(  sJ ‚d
|_
        | j                  ||¬«      }|j                  |k(  sJ ‚|j                  «       |k(  sJ ‚d|_
        | j                  ||¬«      }|j                  t        j                  dt        j                  «       fdt        j                  «       fg«      k(  sJ ‚|j                  «       |k(  sJ ‚d|_
        d|_        d}| j                  ||d¬«      }|j                  |k(  sJ ‚|d   j                  d«      j
                  }t        |«      d
k(  sJ ‚|d   j                  «       dk(  sJ ‚|d   j                  «       dk(  sJ ‚d|_        | j                  ||¬«      }t        j                  dt        j
                  t        j                  «       t        j                   «       «      fdt        j                  «       fg«      }g d¢g d¢d	œ}|j                  |k(  sJ ‚|j                  «       |k(  sJ ‚y )NT)r¼   u   a,b
ab,1
cdÃ©,2
cdÃ©,3
ab,4rk  rœ   r�   )r‹   õ   cdÃ©r¦  r‹   )rN   r   r�   r‚   r›   r   rN   é2   Fs   a,b
ab,1
cdÿ,2
ab,3)r  rA  r   r‹   ó   cdÿ)ó   abr¨  r©  ©rN   r   r�   )r
   r8   ré   r9   rÔ   Ú
dictionaryrÕ   r   r;   rý   rÑ   r¶   Úchunkrî   Úas_pyÚ	as_bufferrÖ   )rm   rY   rl   rï   rÔ   rF   Údict_valuess          r   Útest_auto_dict_encodez&BaseCSVTableRead.test_auto_dict_encodei  s�  € Ü¨tÔ4ˆØ0×7Ñ7Ó9ˆØ—‘ °d�Ó;ˆÜ—‘˜S¤"§-¡-´·±³
¼B¿I¹I»KÓ"HÐIØ ¤"§(¡(£*Ð-ð/ó 0ˆò .Úñ
ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó  HÒ,Ð,Ð,à)*ˆÔ&Ø—‘ °d�Ó;ˆØ�|‰|˜vÒ%Ð%Ð%Ø�‰Ó  HÒ,Ð,Ð,ð *+ˆÔ&Ø—‘ °d�Ó;ˆØ�|‰|œrŸy™y¨3´·	±	³Ð*<Ø+.´·±³
Ð*;ð*=ó  >ò >ð 	>ð >à�‰Ó  HÒ,Ð,Ð,ð *,ˆÔ&ØˆŒØ+ˆØ—‘ °dØ.3ð  ó 5ˆà�|‰|˜vÒ%Ð%Ð%Ø˜C‘j×&Ñ& qÓ)×4Ñ4ˆÜ�;Ó 1Ò$Ð$Ð$Ø˜1‰~×#Ñ#Ó%¨Ò-Ð-Ð-Ø˜1‰~×'Ñ'Ó)¨YÒ6Ð6Ð6ð ˆŒØ—‘ °d�Ó;ˆÜ—‘˜S¤"§-¡-´·±³
¼B¿I¹I»KÓ"HÐIØ ¤"§(¡(£*Ð-ð/ó 0ˆò +Úñ
ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó  HÒ,Ð,Ñ,rL   c                 ó˜  — t        ddg¬«      }d}| j                  ||¬«      }t        j                  dt        j                  «       fdt        j
                  «       fdt        j
                  «       fd	t        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       d d gdd
gddgdd gdœk(  sJ ‚t        ddgd¬«      }| j                  ||¬«      }|j                  «       d d gd d
gddgdd gdœk(  sJ ‚d|_        | j                  ||¬«      }|j                  «       d d gdd
gddgdd gdœk(  sJ ‚t        g ¬«      }d}| j                  ||¬«      }t        j                  dt        j
                  «       fdt        j
                  «       fg«      }|j                  |k(  sJ ‚|j                  «       d
gdgdœk(  sJ ‚y )NÚXxxÚZzz)rÎ   s$   a,b,c,d
Zzz,"Xxx",1,2
Xxx,#N/A,,Zzz
rk  rœ   r�   r¿   r  z#N/AÚ1rÃ   r   r  T)rÎ   r·   Fs
   a,b
#N/A,
r›   )	r
   ré   r9   rÔ   rÁ   r   r;   rý   r¸   ©rm   rY   rl   rï   rÔ   s        r   Útest_custom_nullsz"BaseCSVTableRead.test_custom_nullsš  s  € ä¨5°%¨.Ô9ˆØ=ˆØ—‘ °d�Ó;ˆÜ—‘˜S¤"§'¡'£)Ð,Ø ¤"§)¡)£+Ð.Ø ¤"§)¡)£+Ð.Ø ¤"§(¡(£*Ð-ð/ó 0ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ø˜�Ø˜�Ø�r�Ø�T�ñ	%
ò 
ð 	
ð 
ô ¨5°%¨.Ø26ô8ˆà—‘ °d�Ó;ˆØ�‰Ó Ø˜�Ø˜�Ø�r�Ø�T�ñ	%
ò 
ð 	
ð 
ð +0ˆÔ'Ø—‘ °d�Ó;ˆØ�‰Ó Ø˜�Ø˜�Ø�r�Ø�T�ñ	%
ò 
ð 	
ð 
ô ¨"Ô-ˆØˆØ—‘ °d�Ó;ˆÜ—‘˜S¤"§)¡)£+Ð.Ø ¤"§)¡)£+Ð.ð0ó 1ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ø�Ø�ñ%
ò 
ð 	
ñ 
rL   c                 óX  — t        ddgddg¬«      }d}| j                  ||¬«      }t        j                  dt        j                  «       fd	t        j
                  «       fd
t        j                  «       fg«      }|j                  |k(  sJ ‚|j                  «       g d¢g d¢g d¢dœk(  sJ ‚y )NrÉ   ÚyesrË   Úno)rÏ   rÐ   s>   a,b,c
True,T,t
False,F,f
True,yes,yes
False,no,no
N/A,N/A,N/A
rk  rœ   r�   r¿   )ÚTrueÚFalserº  r»  rÄ   )TFTFN)Útrƒ  r¸  r¹  rÄ   r5  )r
   ré   r9   rÔ   r   r€  rý   rµ  s        r   Útest_custom_boolsz"BaseCSVTableRead.test_custom_boolsÈ  s«   € ä¨3°¨,Ø,/°¨;ô8ˆð!ˆð —‘ °d�Ó;ˆÜ—‘˜S¤"§)¡)£+Ð.Ø ¤"§(¡(£*Ð-Ø ¤"§)¡)£+Ð.ð0ó 1ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú:Ú1Ú/ñ%
ò 
ð 	
ñ 
rL   c                 óp  — t        dddt        j                  dd«      ddœ¬«      }d	}| j                  ||¬
«      }t        j                  dt        j
                  «       fdt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  dd«      fg«      }ddgddgddgddgt        d«      t        d«      gdœ}|j                  |k(  sJ ‚|j                  «       |k(  sJ ‚t        t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fdt        j                  dd«      fdt        j                  «       fg«      ¬«      }| j                  ||¬
«      }|j                  |k(  sJ ‚|j                  «       |k(  sJ ‚d}t        j                  t        j                  «      5 }| j                  ||¬
«       d d d «       t        j                  «      }d|v sJ ‚d|v sJ ‚y # 1 sw Y   Œ+xY w)NrÓ   r   Úbooleanr€   r   rÁ   )r�   r¿   r  r+  Úzz©rÍ   s(   a,b,c,d,e
1,2,3,true,1.0
4,-5,6,false,0
rk  rœ   r�   r¿   r  r+  rN   r‚   ç       @g      Àr}  Ú6TFú1.00z0.00)rœ   r�   r¿   r  r+  rÀ  s(   a,b,c,d,e
1,XXX,3,true,5
4,-5,6,false,7
zIn CSV column #1: z2CSV conversion error to float: invalid value 'XXX')r
   r9   Ú
decimal128ré   rÔ   r;   rÓ   r   r€  r   rý   rS   rT   rŸ   r6   r^   )rm   rY   rl   rï   rÔ   rF   ÚexcÚerrs           r   Útest_column_typesz"BaseCSVTableRead.test_column_typesÝ  s  € ä°Ø19Ø1:Ü13·±¸rÀ1Ó1EØ28ñ	,:ô ;ˆð
 >ˆØ—‘ °d�Ó;ˆÜ—‘˜S¤"§(¡(£*Ð-Ø ¤"§*¡*£,Ð/Ø ¤"§)¡)£+Ð.Ø ¤"§(¡(£*Ð-Ø ¤"§-¡-°°AÓ"6Ð7ð	9ó :ˆð �Q�Ø�t�Ø�s�Ø˜�Ü˜&“/¤7¨6£?Ð3ñ
ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó  HÒ,Ð,Ð,äÜŸ™ S¬"¯*©*«,Ð$7Ø%(¬"¯)©)«+Ð$6Ø%(¬"¯(©(«*Ð$5Ø%(¬"¯-©-¸¸AÓ*>Ð$?Ø%)¬2¯8©8«:Ð$6ð	$8ó 9ô:ˆð —‘ °d�Ó;ˆØ�|‰|˜vÒ%Ð%Ð%Ø�‰Ó  HÒ,Ð,Ð,à=ˆÜ�]‰]œ2Ÿ?™?Ó+ð 	8¨sØ�O‰O˜D°$ˆOÔ7÷	8ä�#—)‘)‹nˆØ# sÑ*Ð*Ð*ØCÀsÑJÐJÑJ÷		8ð 	8ús   Ç.H,È,H5c           
      ó.  — dt        j                  t        j                  «       t        j                  «       «      fdt        j                  t        j                  «       t        j                  «       «      fdt        j                  t        j                  «       t        j
                  dd«      «      fdt        j                  t        j                  «       t        j                  «       «      fg}t        t        |«      ¬«      }d}| j                  ||¬	«      }t        j                  |«      }g d
¢g d¢t        d«      t        d«      t        d«      gg d¢dœ}|j                  |k(  sJ ‚|j                  «       |k(  sJ ‚dt        j                  t        j                  «       t        j                  «       «      f|d<   t        t        |«      ¬«      }t        j                  t         «      5  | j                  ||¬	«      }d d d «       y # 1 sw Y   y xY w)Nrœ   r�   r¿   r€   r   r  rÁ  s<   a,b,c,d
abc,123456,1.0,zz
defg,123456,0.5,xx
abc,N/A,1.0,xx
rk  )rµ   Údefgrµ   )r’  r’  NrÄ  z0.50)rÀ  ro  ro  r  r   )r9   r«  rÕ   r�   r;   rÅ  Ú
large_utf8r
   Údictré   rÔ   r   rý   Úint8rS   rT   ræ   )rm   rÍ   rY   rl   rï   rÔ   rF   s          r   Útest_column_types_dictz'BaseCSVTableRead.test_column_types_dict  sƒ  € ð ”"—-‘-¤§¡£
¬B¯G©G«IÓ6Ð7Ø”"—-‘-¤§¡£
¬B¯H©H«JÓ7Ð8Ø”"—-‘-¤§¡£
¬B¯M©M¸"¸aÓ,@ÓAÐBØ”"—-‘-¤§¡£
¬B¯M©M«OÓ<Ð=ð	?ˆô ¬4°Ó+=Ô>ˆð$ˆð —‘ °d�Ó;ˆä—‘˜<Ó(ˆâ'Ú'Ü˜&“/¤7¨6£?´G¸F³OÐDÚ#ñ	
ˆð �|‰|˜vÒ%Ð%Ð%Ø�‰Ó  HÒ,Ð,Ð,ð ¤§¡¬b¯g©g«i¼¿¹»Ó CÐDˆ�Q‰ä¬4°Ó+=Ô>ˆÜ�]‰]Ô.Ó/ñ 	@Ø—O‘O D¸$�OÓ?ˆE÷	@÷ 	@ñ 	@ús   Ç.HÈHc                 ód  — d}t        ddg¬«      }t        dt        j                  «       i¬«      }| j	                  |||¬«      }t        j
                  dt        j                  «       fdt        j                  «       fg«      }|j
                  |k(  sJ ‚|j                  «       g d¢g d¢d	œk(  sJ ‚y )
Ns   a,b
c,d
e,f
rˆ   r¤   ©rJ   rÁ  r  )ó   aó   có   e)r�   r  rƒ  re  )r   r
   r9   rÖ   ré   rÔ   r   rý   ru  s         r   Ú#test_column_types_with_column_namesz4BaseCSVTableRead.test_column_types_with_column_names&  s«   € ð "ˆÜ"°°c°
Ô;ˆÜ(°s¼B¿I¹I»KÐ6HÔIˆØ—‘ °<Ø0?ð  ó Aˆä—‘˜S¤"§)¡)£+Ð.Ø ¤"§)¡)£+Ð.ð0ó 1ˆà�|‰|˜vÒ%Ð%Ð%Ø�‰Ó Ú#Ú ñ%
ò 
ð 	
ñ 
rL   c                 óh   — d}| j                  |«      }|j                  «       ddgddgddgdœk(  sJ ‚y )	Nó   a,b,c
1,2,3
4,5,6rN   r‚   r   r~   r�   rƒ   r5  rV  rS  s      r   Útest_no_ending_newlinez'BaseCSVTableRead.test_no_ending_newline6  sH   € à%ˆØ—‘ Ó%ˆØ�‰Ó Ø�Q�Ø�Q�Ø�Q�ñ%
ò 
ð 	
ñ 
rL   c                 óX   — d}| j                  |«      }|j                  «       dg ik(  sJ ‚y )Ns   ,

rÃ   rV  rS  s      r   Útest_trivialzBaseCSVTableRead.test_trivial@  s.   € àˆØ—‘ Ó%ˆØ�‰Ó  R¨ HÒ,Ð,Ñ,rL   c                 óP  — d}| j                  |«      }|j                  «       ddgddgdœk(  sJ ‚t        d¬«      }| j                  ||¬	«      }|j                  «       g d
¢g d¢dœk(  sJ ‚t        d¬«      }| j                  |||¬«      }|j                  «       d dgd dgdœk(  sJ ‚y )Ns   a,b
1,2

3,4
rN   r�   r   r‚   r›   F)r¬   r*  )NrN   Nr�   )Nr   Nr‚   )r‘   r7  )r´  Ú2)ré   rý   r	   r   )rm   rl   rï   r  rõ   s        r   Útest_empty_linesz!BaseCSVTableRead.test_empty_linesF  sÕ   € Ø+ˆØ—‘ Ó%ˆØ�‰Ó Ø�Q�Ø�Q�ñ%
ò 
ð 	
ð 
ô %¸Ô>ˆØ—‘ °M�ÓBˆØ�‰Ó Ú#Ú#ñ%
ò 
ð 	
ð 
ô #¨QÔ/ˆØ—‘ °MØ-9ð  ó ;ˆà�‰Ó Ø˜�Ø˜�ñ%
ò 
ð 	
ñ 
rL   c                 óÜ  — d}t        j                  t        j                  d¬«      5  | j	                  |«       d d d «       d}t        j                  t        j                  d¬«      5  | j	                  |«       d d d «       dD ]A  }t        j                  t        j                  d¬«      5  | j	                  |«       d d d «       ŒC y # 1 sw Y   Œ‘xY w# 1 sw Y   Œ\xY w# 1 sw Y   ŒfxY w)Ns   a,b,c
1,2
4,5,6
rf  r˜   s   a,b,c
1,2,3
4zExpected 3 columns, got 1)rL   rY  r[  rZ  s   

úEmpty CSV file)rS   rT   r9   rŸ   ré   )rm   rl   s     r   Útest_invalid_csvz!BaseCSVTableRead.test_invalid_csv[  s¼   € à%ˆÜ�]‰]œ2Ÿ?™?Ð2MÔNñ 	"Ø�O‰O˜DÔ!÷	"à!ˆÜ�]‰]œ2Ÿ?™?Ð2MÔNñ 	"Ø�O‰O˜DÔ!÷	"à9ò 	&ˆDÜ—‘œrŸ™Ð6FÔGñ &Ø—‘ Ô%÷&ð &ñ	&÷	"ð 	"ú÷	"ð 	"ú÷&ð &ús#   ¨C
Á)CÂ-C"Ã
CÃCÃ"C+	c                 óÐ   — d}| j                  |«      }|j                  «       dgdgdœk(  sJ ‚t        d¬«      }| j                  ||¬«      }|j                  «       dgd	gd
œk(  sJ ‚y )Nó   a;b,c
de,fg;eh
Údeúfg;eh©úa;br¿   r‰  rŠ  r*  úde,fgÚeh©rœ   úb,c)ré   rý   r	   )rm   rl   rï   rY   s       r   Útest_options_delimiterz'BaseCSVTableRead.test_options_delimiterg  sƒ   € Ø#ˆØ—‘ Ó%ˆØ�‰Ó Ø�6Ø�ñ%
ò 
ð 	
ð 
ô  cÔ*ˆØ—‘ °D�Ó9ˆØ�‰Ó Ø�Ø�6ñ%
ò 
ð 	
ñ 
rL   c                 óè   — t        dd¬«      \  }}| j                  |«      }|j                  |j                  k(  sJ ‚|j                  |«      sJ ‚|j	                  «       |j	                  «       k(  sJ ‚y ©Nr   r‡   r  )rG   ré   rÔ   Úequalsrý   )rm   rB   rF   rï   s       r   Útest_small_random_csvz&BaseCSVTableRead.test_small_random_csvu  sf   € Ü'°¸RÔ@‰ˆˆXØ—‘ Ó$ˆØ�|‰|˜xŸ™Ò.Ð.Ð.Ø�|‰|˜HÔ%Ð%Ð%Ø�‰Ó  H×$6Ñ$6Ó$8Ò8Ð8Ñ8rL   c                 óL  — t        dd¬«      \  }}g d¢}||j                  d«      g}|D ]x  }|D ]q  }t        |¬«      }| j                  ||¬«      }|j                  |j                  k(  sJ ‚|j                  |«      rŒO|j                  «       |j                  «       k(  rŒqJ ‚ Œz y )Nr   éô  r  )r€   rž  é   é   r  éo   r[  r–   rô   )rG   Úrstripr   ré   rÔ   rí  rý   )	rm   Úcsv_baserF   Úblock_sizesÚcsvsrB   r—   rõ   rï   s	            r   Útest_stress_block_sizesz(BaseCSVTableRead.test_stress_block_sizes|  s©   € ä,°aÀ#ÔFÑˆ�(Ú/ˆØ˜(Ÿ/™/¨'Ó2Ð3ˆØò 	EˆCØ)ò E�
Ü*°jÔA�ØŸ™¨¸,˜ÓG�Ø—|‘| x§¡Ò6Ð6Ð6Ø—|‘| HÕ-à Ÿ?™?Ó,°×0BÑ0BÓ0DÓDÐDÐDñEñ	ErL   c                 óê  — 	 t         j                  }d}t        |«      D �cg c]  }d|› �‘Œ	 }}t	        |«      } |«       }t        |d d d…   D �ci c]  }|t        j                  «       “Œ c}¬«      }| j                  ||¬«      }	 |«       |z
  }
|
dk  sJ ‚|	j                  |k(  sJ ‚|	j                  dk(  sJ ‚|	j                  |k(  sJ ‚y # t        $ r t         j                   }Y ŒÕw xY wc c}w c c}w )Ni'  ÚKr   rÁ  rk  ç      $@r   )r�  Úthread_timerU   r   rK   r
   r9   r   ré   rí   r!   rJ   )rm   Úclockrí   r"   rC   rB   Út1Úkr  rï   Údts              r   Ú"test_stress_convert_options_blowupz3BaseCSVTableRead.test_stress_convert_options_blowupŠ  sü   € ð	Ü×$Ñ$ˆEð ˆÜ&+¨KÓ&8Ö9 �q˜˜’WÐ9ˆ	Ð9Ü˜YÓ'ˆÙ‹WˆÜ(Ø2;¹C¸a¸C±.ÖA¨Q˜!œRŸY™Y›[™.ÒAôCˆà—‘ °_�ÓEˆÙ‹W�r‰\ˆð �TŠzÐˆzà× Ñ  KÒ/Ð/Ð/Ø�~‰~ Ò"Ð"Ð"Ø×!Ñ! YÒ.Ð.Ñ.øô# ò 	Ü—I‘IŠEð	üò :ùò Bs   ‚C ¡C+ÁC0ÃC(Ã'C(c           	      óà  — t        j                  «       j                  t        j                  «       j                  k7  rt	        j
                  d«       d„ }d}d}d}|dk  rÀ|dk  r»t        d|«       d	d
|z  z   }d }	 t        j                  «       5 }	 t        j                  |¬«      }|j                  «        t        j                  «       }		 | j                  |«       t        j                  |gg |gd«       	 d d d «       |�|j                  �n|dz  }|dk  r|dk  rŒ»€t	        j                   d«       |dk  sJ ‚|j                  }
t#        |
t$        j&                  «      sJ ‚|
j(                  t*        j,                  k(  sJ ‚y # t        $ r#}
|
}t        j                  «       |	z
  }Y d }
~
ŒÏd }
~
ww xY w# t        j                  |gg |gd«       w xY w# 1 sw Y   ŒÜxY w# t        $ r Y Œêw xY w)Nz'test only works from main Python threadc                  ót   — t        j                  d«       t        j                  t        j                  «       y )Ngš™™™™™É?)r�  ÚsleepÚsignalÚraise_signalÚSIGINTrO   rL   r   Úsignal_from_threadz>BaseCSVTableRead.test_cancellation.<locals>.signal_from_thread¨  s   € ä�J‰J�sŒOÜ×Ñ¤§¡Õ.rL   g        i † r   g      @r‡   zworkload size:s   a,b,c
s   1,2,3
©Útargetrû  r�   z0Failed to get an interruption during CSV readingrÂ  )Ú	threadingÚcurrent_threadÚidentÚmain_threadrS   r£   Úprintr   Úsignal_wakeup_fdÚThreadÚstartr�  ré   ÚKeyboardInterruptÚselectÚ__context__Úfailrt   r9   ÚArrowCancelledÚsignumr  r  )rm   r  Úlast_durationÚworkload_sizeÚattemptsÚ	large_csvÚexc_infoÚsigfdr¼  rþ  r+  s              r   Útest_cancellationz"BaseCSVTableRead.test_cancellation¢  sã  € ä×$Ñ$Ó&×,Ñ,Ü×%Ñ%Ó'×-Ñ-ò.ä�K‰KÐAÔBò	/ð ˆØˆØˆà˜cÒ! h°¢mÜÐ" MÔ2Ø" Z°-Ñ%?Ñ?ˆIØˆHðô ×*Ñ*Ó,ð B°ðBÜ%×,Ñ,Ð4FÔG˜ØŸ™œ	Ü!ŸY™Y›[˜ð=Ø ŸO™O¨IÔ6ô Ÿ™ u g¨r°E°7¸DÕA÷Bð( Ð#ð ×'Ñ'Ð3àð *¨AÑ-ˆMðM ˜cÒ! h°£mðP ÐÜ�K‰KÐJÔKð  Ò#Ð#Ð#Ø× Ñ ˆÜ˜!œR×.Ñ.Ô/Ð/Ð/Ø�x‰xœ6Ÿ=™=Ò(Ð(Ñ(øô?  1ò =Ø'(˜HÜ,0¯I©I«K¸"Ñ,<�Mûð=ûô Ÿ™ u g¨r°E°7¸DÕAú÷Bð Bûô  %ò áðúsf   Á=G! ÂGÂ:F6ÃFÃGÃ:G! Æ	F3ÆF.Æ)F6Æ.F3Æ3F6Æ6GÇGÇGÇG! Ç!	G-Ç,G-c                 óx   ‡ — t        j                  ˆ fd„¬«      }|j                  «        |j                  «        y )Nc                  ó&   •— ‰ j                  d«      S )Ns   f64
0.1)ré   rë   s   €r   ú<lambda>z=BaseCSVTableRead.test_cancellation_disabled.<locals>.<lambda>ë  s   ø€ ˜4Ÿ?™?¨;Ó7€ rL   r	  )r  r  r  r4   )rm   r¼  s   ` r   Útest_cancellation_disabledz+BaseCSVTableRead.test_cancellation_disabledå  s*   ø€ ô
 ×ÑÛ7ô9ˆà	�‰Œ	Ø	�‰�rL   N)(rz   r{   r|   r   ré   rP  rT  rW  ra  rg  ri  rr  rv  ry  r�  r‡  rŒ  r”  r–  r›  r¤  r°  r¶  r½  rÈ  rÎ  rÔ  r×  rÙ  rÜ  rß  rê  rî  rø  r  rS   r=  r  r  r#  rO   rL   r   r@  r@  Ù  sð   „ à15ô ò8ò	ò#ò2òò1
òf=ò2Cò:+
òZ
ò
ò 
ò.
ò2
ò" 
òD"
òH
ò6/-òb,
ò\
ò*'KòR@ò@
ò 
ò-ò
ò*
&ò
ò9òEò/ð0 ‡[�[×Ññ@)ó ð@)ðD ‡[�[×Ññó ñrL   r@  c                   ó   — e Zd Zed„ «       Zy)ÚTestSerialCSVTableReadc                  ó   — y©NFrO   rë   s    r   r�   z"TestSerialCSVTableRead.use_threadsñ  ó   € àrL   N©rz   r{   r|   r;  r�   rO   rL   r   r%  r%  ð  ó   „ Øñó ñrL   r%  c                   ó   — e Zd Zed„ «       Zy)ÚTestThreadedCSVTableReadc                  ó   — y©NTrO   rë   s    r   r�   z$TestThreadedCSVTableRead.use_threads÷  ó   € àrL   Nr)  rO   rL   r   r,  r,  ö  s   „ Øñó ñrL   r,  c                   óÀ   ‡ — e 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„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zej,                  j.                  ˆ fd„«       Zˆ xZS )ÚBaseStreamingCSVReadc                 óv   — |j                  dt        «       «      }| j                  |_        t        |g|¢­i |¤ŽS )zò
        Reads the CSV file into memory using pyarrow's open_csv
        csv The CSV bytes
        args Positional arguments to be forwarded to pyarrow's open_csv
        kwargs Keyword arguments to be forwarded to pyarrow's open_csv
        rõ   )rF  r   r�   r   )rm   rB   r  rè   rõ   s        r   r   zBaseStreamingCSVRead.open_csvþ  s;   € ð ×(Ñ(¨¼»ÓGˆØ#'×#3Ñ#3ˆÔ Ü˜Ð-˜dÒ- fÑ-Ð-rL   c                 óN   —  | j                   t        j                  |«      fi |¤ŽS r   )r   r9   rH  rç   s      r   Ú
open_byteszBaseStreamingCSVRead.open_bytes	  rI  rL   c                 ó  — |j                   |k(  sJ ‚t        |«      }t        |«      t        |«      k(  sJ ‚t        ||«      D ]=  \  }}|j	                  d¬«       |j                   |k(  sJ ‚|j                  «       |k(  rŒ=J ‚ y )NTrC  )rÔ   r0   rî   Úziprž   rý   )rm   ÚreaderÚexpected_schemarM  ÚbatchesÚbatchÚexpected_batchs          r   Úcheck_readerz!BaseStreamingCSVRead.check_reader  s„   € Ø�}‰} Ò/Ð/Ð/Ü�v“,ˆÜ�7‹|œs =Ó1Ò1Ð1Ð1Ü%(¨°-Ó%@ò 	7Ñ!ˆE�>Ø�N‰N ˆNÔ%Ø—<‘< ?Ò2Ð2Ð2Ø—?‘?Ó$¨Ó6Ð6Ð6ñ	7rL   c                 óD   —  | j                   |fi |¤Žj                  «       S r   )r4  Úread_allrç   s      r   ré   zBaseStreamingCSVRead.read_bytes  s!   € Øˆt�‰˜qÑ+ FÑ+×4Ñ4Ó6Ð6rL   c                 ó  — d}ddgddgdœ}t        j                  |«      }| j                  |«      }t        j                  dt        j
                  «       fdt        j
                  «       fg«      }| j                  |||g«       y )	Ns   a,b
1,2
3,4
rN   r�   r   r‚   r›   rœ   r�   )r.   rK  r   r9   rÔ   r;   r<  )rm   rL  rM  rN  r7  r8  s         r   rP  z%BaseStreamingCSVRead.test_file_object  sw   € Ø!ˆØ  !˜f¨A¨q¨6Ñ2ˆÜ�j‰j˜ÓˆØ—‘˜sÓ#ˆÜŸ)™) c¬2¯8©8«:Ð%6Ø&)¬2¯8©8«:Ð%6ð%8ó 9ˆà×Ñ˜& /°M°?ÕCrL   c                 óø   — d}| j                  |«      }t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }| j	                  ||g «       y )NrR  rµ   r´   r÷   )r4  r9   rÔ   rÁ   r<  ©rm   rl   r7  r8  s       r   rT  z BaseStreamingCSVRead.test_header!  se   € ØˆØ—‘ Ó&ˆÜŸ)™) e¬R¯W©W«YÐ%7Ø&+¬R¯W©W«YÐ%7Ø&*¬B¯G©G«IÐ%6ð%8ó 9ˆð 	×Ñ˜& /°2Õ6rL   c                 ó¤  — d}t        j                  dt        j                  «       fdt        j                  «       fg«      }t	        «       }t        |«      |_        | j                  ||¬«      }| j                  ||g d¢g d¢dœg«       t        |«      dz
  |_        | j                  ||¬«      }| j                  ||d	d
gddgdœdgdgdœg«       y )Nó   a,b
123,456
abc,deÿ
gh,ij
rœ   r�   rô   )Ú123rµ   r÷   )ó   456ó   deÿó   ijr›   rN   rD  rµ   rE  rF  r÷   rG  )	r9   rÔ   r   rÖ   r   rî   r—   r4  r<  )rm   rl   r8  rõ   r7  s        r   Útest_inferencez#BaseStreamingCSVRead.test_inference)  sÜ   € à3ˆÜŸ)™) c¬2¯9©9«;Ð%7Ø&)¬2¯9©9«;Ð%7ð%9ó :ˆô #“}ˆÜ"% d£)ˆÔØ—‘ °L�ÓAˆØ×Ñ˜& /Ú!5Ú!;ñ=ð >ô	?ô #& d£)¨a¡-ˆÔØ—‘ °L�ÓAˆØ×Ñ˜& /Ø"'¨ Ø"(¨)Ð!4ñ6à"& Ø"' ñ*ð+õ	,rL   c                 óT  — d}t        «       }t        |«      dz
  |_        | j                  ||¬«      }t	        j
                  dt	        j                  «       fdt	        j                  «       fg«      }|j
                  |k(  sJ ‚|j                  «       j                  «       dgdgdœk(  sJ ‚t        j                  t        d	¬
«      5  |j                  «        d d d «       t        j                  t        «      5  |j                  «        d d d «       y # 1 sw Y   Œ<xY w# 1 sw Y   y xY w)NrC  r„   rô   rœ   r�   é{   iÈ  r›   zCSV conversion error to int64r˜   )r   rî   r—   r4  r9   rÔ   r;   Úread_next_batchrý   rS   rT   rÒ   ÚStopIteration©rm   rl   rõ   r7  r8  s        r   Útest_inference_failurez+BaseStreamingCSVRead.test_inference_failure>  s  € à3ˆÜ"“}ˆÜ"% d£)¨a¡-ˆÔØ—‘ °L�ÓAˆÜŸ)™) c¬2¯8©8«:Ð%6Ø&)¬2¯8©8«:Ð%6ð%8ó 9ˆà�}‰} Ò/Ð/Ð/Ø×%Ñ%Ó'×1Ñ1Ó3Ø�˜c˜Uñ8
ò 
ð 	
ð 
ô �]‰]œ:Ø!@ôBñ 	%à×"Ñ"Ô$÷	%ô �]‰]œ=Ó)ñ 	%Ø×"Ñ"Ô$÷	%ð 	%÷		%ð 	%ú÷	%ð 	%ús   ÃDÃ8DÄDÄD'c                 ó\  — d}t        «       }d|_        t        j                  t        j
                  d¬«      5  | j                  ||¬«      }d d d «       d}d|_        | j                  ||¬«      }|j                  «       j                  «       dgd	gd
œk(  sJ ‚t        j                  t        j
                  d¬«      5  |j                  «        d d d «       t        j                  t        «      5  |j                  «        d d d «       y # 1 sw Y   Œ¾xY w# 1 sw Y   ŒHxY w# 1 sw Y   y xY w)Ns   a,b
1,2,3
4,5
6,7
r‡   zExpected 2 columns, got 3r˜   rô   s   a,b
1,2
3,4,5
6,7
r…   rN   r   r›   )
r   r—   rS   rT   r9   rŸ   r4  rK  rý   rL  )rm   rl   rõ   r7  s       r   rß  z%BaseStreamingCSVRead.test_invalid_csvR  s  € à(ˆÜ"“}ˆØ"$ˆÔÜ�]‰]œ2Ÿ?™?Ø!<ô>ñ 	1à—_‘_Ø <ð %ó 1ˆF÷	1ð )ˆØ"#ˆÔØ—‘ °L�ÓAˆØ×%Ñ%Ó'×1Ñ1Ó3¸a¸SÈÀsÑ7KÒKÐKÐKÜ�]‰]œ2Ÿ?™?Ø!<ô>ñ 	%à×"Ñ"Ô$÷	%ô �]‰]œ=Ó)ñ 	%Ø×"Ñ"Ô$÷	%ð 	%÷	1ð 	1ú÷	%ð 	%ú÷	%ð 	%ús#   ¹D
Â>DÃ0D"Ä
DÄDÄ"D+c                 óÈ  — d}| j                  |«      }t        j                  dt        j                  «       fdt        j                  «       fg«      }| j	                  ||dgdgdœg«       t        d¬«      }| j                  ||¬	«      }t        j                  d
t        j                  «       fdt        j                  «       fg«      }| j	                  ||dgdgdœg«       y )Nrá  rå  r¿   râ  rã  rä  r‰  rŠ  r*  rœ   ré  ræ  rç  rè  )r4  r9   rÔ   r   r<  r	   )rm   rl   r7  r8  rY   s        r   rê  z+BaseStreamingCSVRead.test_options_delimiterh  sÛ   € Ø#ˆØ—‘ Ó&ˆÜŸ)™) e¬R¯Y©Y«[Ð%9Ø&)¬2¯9©9«;Ð%7ð%9ó :ˆà×Ñ˜& /Ø$( 6Ø") ñ,ð -ô	.ô  cÔ*ˆØ—‘ °T�Ó:ˆÜŸ)™) c¬2¯9©9«;Ð%7Ø&+¬R¯Y©Y«[Ð%9ð%;ó <ˆà×Ñ˜& /Ø") Ø$( 6ñ+ð ,õ	-rL   c                 ó  — d}| j                  |«      }t        j                  dt        j                  «       fdt        j                  «       fdt        j                  «       fg«      }| j	                  ||ddgddgd	d
gdœg«       y )NrÖ  rœ   r�   r¿   rN   r‚   r   r~   r�   rƒ   r5  )r4  r9   rÔ   r;   r<  rA  s       r   r×  z+BaseStreamingCSVRead.test_no_ending_newliney  s„   € à%ˆØ—‘ Ó&ˆÜŸ)™) c¬2¯8©8«:Ð%6Ø&)¬2¯8©8«:Ð%6Ø&)¬2¯8©8«:Ð%6ð%8ó 9ˆð 	×Ñ˜& /Ø"# Q Ø"# Q Ø"# Q ñ)ð *õ	+rL   c                 ó†   — t        j                  t        d¬«      5  | j                  d«       d d d «       y # 1 sw Y   y xY w)NrÞ  r˜   rL   )rS   rT   rÒ   r4  rë   s    r   Útest_empty_filez$BaseStreamingCSVRead.test_empty_file…  s2   € Ü�]‰]œ:Ð-=Ô>ñ 	!Ø�O‰O˜CÔ ÷	!÷ 	!ñ 	!ús	   œ7·A c                 ój  — d}t        «       }g d¢|_        | j                  ||¬«      }t        j                  dt        j
                  «       fdt        j
                  «       fdt        j
                  «       fg«      }| j                  ||ddgd	d
gddgdœg«       t        «       }ddg|_        | j                  |||¬«      }t        j                  dt        j
                  «       fdt        j
                  «       fg«      }| j                  ||d	d
gddgdœg«       dt        j                  «       i|_
        | j                  |||¬«      }t        j                  dt        j
                  «       fdt        j                  «       fg«      }| j                  ||ddgddgdœg«       g d¢|_        t        j                  t        d¬«      5  | j                  |||¬«      }d d d «       d|_        | j                  |||¬«      }t        j                  dt        j                  «       fdt        j
                  «       fdt        j                  «       fg«      }| j                  ||d d gddgddgdœg«       t        j                  «       t        j                   «       dœ|_
        | j                  |||¬«      }t        j                  dt        j                   «       fdt        j
                  «       fdt        j                  «       fg«      }| j                  ||d d gddgddgdœg«       y # 1 sw Y   �ŒLxY w)Ns   1,2,3
4,5,6)r  r+  rƒ  rô   r  r+  rƒ  rN   r‚   r   r~   r�   rƒ   r  )r+  rƒ  rÛ  Ú5)r3  rƒ  r+  z,Column 'g' in include_columns does not existr˜   Tr3  )r3  r+  rƒ  )r+  r3  )r   rJ   r4  r9   rÔ   r;   r<  r
   rº   r   rÍ   rS   rT   rq  r»   rÁ   r  )rm   rl   rõ   r7  r8  r  s         r   Útest_column_optionsz(BaseStreamingCSVRead.test_column_options‰  s4  € àˆÜ"“}ˆÚ$3ˆÔ!Ø—‘ °L�ÓAˆÜŸ)™) c¬2¯8©8«:Ð%6Ø&)¬2¯8©8«:Ð%6Ø&)¬2¯8©8«:Ð%6ð%8ó 9ˆð 	×Ñ˜& /Ø"# Q Ø"# Q Ø"# Q ñ)ð *ô	+ô )Ó*ˆØ+.°¨*ˆÔ'Ø—‘ °LØ1@ð !ó BˆäŸ)™) c¬2¯8©8«:Ð%6Ø&)¬2¯8©8«:Ð%6ð%8ó 9ˆà×Ñ˜& /Ø"# Q Ø"# Q ñ)ð *ô	+ð
 ),¬R¯Y©Y«[Ð'9ˆÔ$Ø—‘ °LØ1@ð !ó BˆäŸ)™) c¬2¯8©8«:Ð%6Ø&)¬2¯9©9«;Ð%7ð%9ó :ˆà×Ñ˜& /Ø"% s Ø"# Q ñ)ð *ô	+ò
 +:ˆÔ'Ü�]‰]ÜØDôFñ 	Fð —_‘_ T¸Ø5Dð %ó FˆF÷	Fð 37ˆÔ/Ø—‘ °LØ1@ð !ó BˆäŸ)™) c¬2¯7©7«9Ð%5Ø&)¬2¯8©8«:Ð%6Ø&)¬2¯9©9«;Ð%7ð%9ó :ˆð 	×Ñ˜& /Ø"&¨ Ø"% s Ø"# Q ñ)ð *ô	+ô
 .0¯Y©Y«[¼r¿z¹z»|Ñ'LˆÔ$Ø—‘ °LØ1@ð !ó BˆäŸ)™) c¬2¯:©:«<Ð%8Ø&)¬2¯8©8«:Ð%6Ø&)¬2¯9©9«;Ð%7ð%9ó :ˆð 	×Ñ˜& /Ø"&¨ Ø"% s Ø"# Q ñ)ð *õ	+÷/	Fñ 	Fús   Ç	L(Ì(L2c                 ó¾  — d}t        «       }| j                  ||¬«      }t        j                  dt        j                  «       fdt        j
                  «       fg«      }| j                  ||dgdgdœg«       d|_        | j                  ||¬«      }t        j                  dt        j                  «       fdt        j                  «       fg«      }| j                  ||dgd	gdœg«       d
}d|_        | j                  ||¬«      }t        j                  dt        j                  «       fdt        j                  «       fg«      }| j                  ||dgd	gdœg«       y )Ns   a,b
un,éléphantrô   rœ   r�   Úuns   éléphantr›   Úlatin1u
   Ã©lÃ©phants    ÿþa , b 
 u n , é l é p h a n t rŽ   )r   r4  r9   rÔ   r   rÖ   r<  r“   rM  s        r   Útest_encodingz"BaseStreamingCSVRead.test_encodingÊ  s[  € à(ˆÜ"“}ˆØ—‘ °L�ÓAˆÜŸ)™) c¬2¯9©9«;Ð%7Ø&)¬2¯9©9«;Ð%7ð%9ó :ˆà×Ñ˜& /Ø"& Ø"3Ð!4ñ6ð 7ô	8ð !)ˆÔØ—‘ °L�ÓAˆÜŸ)™) c¬2¯9©9«;Ð%7Ø&)¬2¯9©9«;Ð%7ð%9ó :ˆà×Ñ˜& /Ø"& Ø". ñ1ð 2ô	3ð
Fˆà 'ˆÔØ—‘ °L�ÓAˆÜŸ)™) c¬2¯9©9«;Ð%7Ø&)¬2¯9©9«;Ð%7ð%9ó :ˆà×Ñ˜& /Ø"& Ø". ñ1ð 2õ	3rL   c                 ó  — t        dd¬«      \  }}| j                  |«      }|j                  «       }|j                  |j                  k(  sJ ‚|j	                  |«      sJ ‚|j                  «       |j                  «       k(  sJ ‚y rì  )rG   r4  r>  rÔ   rí  rý   )rm   rB   rF   r7  rï   s        r   rî  z*BaseStreamingCSVRead.test_small_random_csvè  sr   € Ü'°¸RÔ@‰ˆˆXØ—‘ Ó%ˆØ—‘Ó!ˆØ�|‰|˜xŸ™Ò.Ð.Ð.Ø�|‰|˜HÔ%Ð%Ð%Ø�‰Ó  H×$6Ñ$6Ó$8Ò8Ð8Ñ8rL   c                 óž  — t        dd¬«      \  }}g d¢}||j                  d«      g}|D ]¡  }|D ]š  }|d | j                  d«      dk\  sJ ‚t        |¬«      }| j	                  ||¬«      }|j                  «       }	|	j                  |j                  k(  sJ ‚|	j                  |«      rŒx|	j                  «       |j                  «       k(  rŒšJ ‚ Œ£ y )	Nr   rð  r  )é   é   r  r  r  ró  r[  rY  r–   rô   )	rG   rô  Úcountr   r4  r>  rÔ   rí  rý   )
rm   rõ  rF   rö  r÷  rB   r—   rõ   r7  rï   s
             r   rø  z,BaseStreamingCSVRead.test_stress_block_sizesð  sÛ   € ä,°aÀ#ÔFÑˆ�(Ú/ˆØ˜(Ÿ/™/¨'Ó2Ð3ˆØò 	EˆCØ)ò 
E�
à˜;˜JÐ'×-Ñ-¨eÓ4¸Ò9Ð9Ð9Ü*°jÔA�ØŸ™Ø lð )ó 4�àŸ™Ó)�Ø—|‘| x§¡Ò6Ð6Ð6Ø—|‘| HÕ-à Ÿ?™?Ó,°×0BÑ0BÓ0DÓDÐDÐDñ
Eñ	ErL   c                 óÊ  — t        j                  «        t        j                  «       }d„ }d}t	        «       }ddg|_        d|_        | j                  ||¬«      } ||dgdgd	œ«       t        j                  «       } ||d
gdgd	œ«       t        j                  «       |k  sJ ‚ ||dgdgd	œ«       t        j                  «       |k  sJ ‚ ||dgdgd	œ«       t        j                  «       |k  sJ ‚t        j                  t        «      5  |j                  «        d d d «       t        j                  «       |k(  sJ ‚d }t        j                  «       |k(  sJ ‚y # 1 sw Y   Œ>xY w)Nc                 óN   — | j                  «       }|j                  «       |k(  sJ ‚y r   )rK  rý   )r7  rF   r:  s      r   Úcheck_one_batchzABaseStreamingCSVRead.test_batch_lifetime.<locals>.check_one_batch  s%   € Ø×*Ñ*Ó,ˆEØ—?‘?Ó$¨Ò0Ð0Ñ0rL   s   10,11
12,13
14,15
16,17
rœ   r�   rƒ   rô   r‡   r€   r›   rž  rñ  r‘  r6  é   rò  )ÚgcÚcollectr9   Útotal_allocated_bytesr   rJ   r—   r4  rS   rT   rL  rK  )rm   Úold_allocatedrb  rl   rõ   r7  Úallocated_after_first_batchs          r   Útest_batch_lifetimez(BaseStreamingCSVRead.test_batch_lifetime  sU  € Ü
�
‰
ŒÜ×0Ñ0Ó2ˆò	1ð /ˆÜ"“}ˆØ%(¨# JˆÔ!Ø"#ˆÔØ—‘ °L�ÓAˆÙ˜ r d°"°Ñ 6Ô7Ü&(×&>Ñ&>Ó&@Ð#Ù˜ r d°"°Ñ 6Ô7Ü×'Ñ'Ó)Ð-HÒHÐHÐHÙ˜ r d°"°Ñ 6Ô7Ü×'Ñ'Ó)Ð-HÒHÐHÐHÙ˜ r d°"°Ñ 6Ô7Ü×'Ñ'Ó)Ð-HÒHÐHÐHÜ�]‰]œ=Ó)ñ 	%Ø×"Ñ"Ô$÷	%ä×'Ñ'Ó)¨]Ò:Ð:Ð:ØˆÜ×'Ñ'Ó)¨]Ò:Ð:Ñ:÷		%ð 	%ús   ÄEÅE"c                 ó  •— t         ‰| �  «        d}t        «       }d|_        ddg|_        | j                  ||¬«      }t        j                  t        «      5  |j                  «       sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nró   r‚   r‹   rŒ   rô   )
Úsuperrÿ   r   r‘   rJ   r4  rS   rT   rL  rK  ©rm   rl   rY   r7  Ú	__class__s       €r   rÿ   z*BaseStreamingCSVRead.test_header_skip_rows  st   ø€ Ü‰Ñ%Ô'à.ˆô ‹}ˆØˆŒØ! 4˜LˆÔØ—‘ °D�Ó9ˆÜ�]‰]œ=Ó)ñ 	,Ø×)Ñ)Ô+Ð+Ñ+÷	,÷ 	,ñ 	,ús   ÁA5Á5A>c                 ó¦  •— t         ‰| �  «        d}t        «       }d|_        | j	                  ||¬«      }t        j                  t        «      5  |j                  «       sJ ‚	 d d d «       d|_        | j	                  ||¬«      }t        j                  t        «      5  |j                  «       sJ ‚	 d d d «       y # 1 sw Y   ŒYxY w# 1 sw Y   y xY w)Nró   r�   rô   r¾   )	rk  r  r   r”   r4  rS   rT   rL  rK  rl  s       €r   r  z/BaseStreamingCSVRead.test_skip_rows_after_names+  s½   ø€ ä‰Ñ*Ô,à.ˆô ‹}ˆØ%&ˆÔ"Ø—‘ °D�Ó9ˆÜ�]‰]œ=Ó)ñ 	,Ø×)Ñ)Ô+Ð+Ñ+÷	,ð &+ˆÔ"Ø—‘ °D�Ó9ˆÜ�]‰]œ=Ó)ñ 	,Ø×)Ñ)Ô+Ð+Ñ+÷	,ð 	,÷	,ð 	,ú÷	,ð 	,ús   ÁB;ÂCÂ;CÃC)rz   r{   r|   r   r4  r<  ré   rP  rT  rH  rN  rß  rê  r×  rS  rV  rZ  rî  rø  ri  rÿ   rS   r=  r>  r  Ú__classcell__©rm  s   @r   r1  r1  ü  s~   ø„ ò	.ò8ò7ò7òDò7ò,ò*%ò(%ò,-ò"
+ò!ò?+òB3ò<9òEò$;ô8,ð ‡[�[×Ñó,ó ô,rL   r1  c                   ó   — e Zd Zed„ «       Zy)ÚTestSerialStreamingCSVReadc                  ó   — yr'  rO   rë   s    r   r�   z&TestSerialStreamingCSVRead.use_threads@  r(  rL   Nr)  rO   rL   r   rr  rr  ?  r*  rL   rr  c                   ó   — e Zd Zed„ «       Zy)ÚTestThreadedStreamingCSVReadc                  ó   — yr.  rO   rë   s    r   r�   z(TestThreadedStreamingCSVRead.use_threadsG  r/  rL   Nr)  rO   rL   r   ru  ru  E  s   „ àñó ñrL   ru  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚBaseTestCompressedCSVReadc                 ó:   — t        j                  d¬«      | _        y )Nzarrow-csv-test-)Úprefix)ÚtempfileÚmkdtempÚtmpdirrë   s    r   ÚsetUpzBaseTestCompressedCSVRead.setUpN  s   € Ü×&Ñ&Ð.?Ô@ˆ�rL   c                 óB   — t        j                  | j                  «       y r   )ÚshutilÚrmtreer}  rë   s    r   ÚtearDownz"BaseTestCompressedCSVRead.tearDownQ  s   € Ü�‰�d—k‘kÕ"rL   c                 ó–   — 	 t        |«      S # t        j                  $ r(}t        j                  t        |«      «       Y d }~y d }~ww xY wr   )r   r9   ÚArrowNotImplementedErrorrS   r£   r6   )rm   Úcsv_pathr+  s      r   r   z"BaseTestCompressedCSVRead.read_csvT  s;   € ð	 Ü˜HÓ%Ð%øÜ×*Ñ*ò 	 Ü�K‰Kœ˜A›×Ñûð	 ús   ‚
 �A AÁAc                 ó˜  — t        dd¬«      \  }}t        j                  j                  | j                  | j
                  «      }| j                  ||«       | j                  |«      }|j                  d¬«       |j                  |j                  k(  sJ ‚|j                  |«      sJ ‚|j                  «       |j                  «       k(  sJ ‚y )Nr   r	  r  TrC  )rG   ÚosÚpathr4   r}  Úcsv_filenameÚ
write_filer   rž   rÔ   rí  rý   )rm   rB   rF   r…  rï   s        r   Útest_random_csvz)BaseTestCompressedCSVRead.test_random_csvZ  s    € Ü'°¸SÔA‰ˆˆXÜ—7‘7—<‘< §¡¨T×->Ñ->Ó?ˆØ�‰˜ #Ô&Ø—‘˜hÓ'ˆØ�‰˜DˆÔ!Ø�|‰|˜xŸ™Ò.Ð.Ð.Ø�|‰|˜HÔ%Ð%Ð%Ø�‰Ó  H×$6Ñ$6Ó$8Ò8Ð8Ñ8rL   N)rz   r{   r|   r~  r‚  r   r‹  rO   rL   r   rx  rx  L  s   „ òAò#ò ó9rL   rx  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚTestGZipCSVReadzcompressed.csv.gzc                 ó~   — t        j                  |dd«      5 }|j                  |«       d d d «       y # 1 sw Y   y xY w)NÚwbr�   )ÚgzipÚopenr3   ©rm   rˆ  Úcontentsrƒ  s       r   rŠ  zTestGZipCSVRead.write_fileh  s5   € Ü�Y‰Y�t˜T 1Ó%ð 	¨Ø�G‰G�HÔ÷	÷ 	ñ 	ús   ˜3³<c                 óº  — t         j                  j                  | j                  | j                  «      }t        j                  |dd«      5 }|j                  d«       d d d «       t        j                  |dd«      5 }|j                  d«       d d d «       | j                  |«      }|j                  «       g d¢g d¢dœk(  sJ ‚y # 1 sw Y   ŒhxY w# 1 sw Y   ŒCxY w)	Nr�  r�   s   ab,cd
ef,gh
r‹   s   ij,kl
mn,op
rl  rm  r  )
r‡  rˆ  r4   r}  r‰  r�  r‘  r3   r   rý   )rm   r…  rƒ  rï   s       r   Útest_concatenatedz!TestGZipCSVRead.test_concatenatedl  sº   € ä—7‘7—<‘< §¡¨T×->Ñ->Ó?ˆÜ�Y‰Y�x  qÓ)ð 	'¨QØ�G‰GÐ%Ô&÷	'ä�Y‰Y�x  qÓ)ð 	'¨QØ�G‰GÐ%Ô&÷	'à—‘˜hÓ'ˆØ�‰Ó Ú$Ú$ñ%
ò 
ð 	
ñ 
÷	'ð 	'ú÷	'ð 	'ús   ÁCÁ=CÃCÃCN)rz   r{   r|   r‰  rŠ  r•  rO   rL   r   r�  r�  e  s   „ Ø&€Lòó
rL   r�  c                   ó   — e Zd ZdZd„ Zy)ÚTestBZ2CSVReadzcompressed.csv.bz2c                 ó|   — t        j                  |d«      5 }|j                  |«       d d d «       y # 1 sw Y   y xY w)NrÂ   )Úbz2ÚBZ2Filer3   r’  s       r   rŠ  zTestBZ2CSVRead.write_file}  s3   € Ü�[‰[˜˜sÓ#ð 	 qØ�G‰G�HÔ÷	÷ 	ñ 	ús   —2²;N)rz   r{   r|   r‰  rŠ  rO   rL   r   r—  r—  z  s   „ Ø'€LórL   r—  c                  ó`   — t        j                  d«      } t        | «       | j                  rJ ‚y ©NrÖ  )r.   rK  r   Úclosed)Úbufs    r   Ú0test_read_csv_does_not_close_passed_file_handlesrŸ  ‚  s&   € ä
�*‰*Ð+Ó
,€CÜˆS„MØ�zŠzÐˆ>ˆzrL   c            	      óú  — t         j                  j                  g d¢g d¢gddg«      } | j                  d¬«      d   }| |fD ]²  }t	        j
                  «       }t        ||t        d¬	«      «       |j                  d«       | t        |«      k(  sJ ‚t	        j
                  «       }t        ||t        d
¬	«      «       |j                  d«       t        | j                  ¬«      }| t        ||¬«      k(  rŒ²J ‚ d d t        d¬	«      ft        | j                  ¬«      d t        d
¬	«      fd t        d¬«      t        dd¬«      ft        | j                  ¬«      t        d¬«      t        d
d¬«      ffD ]ò  \  }}}t	        j
                  «       }t        || j                  |¬«      5 }|j                  | «       d d d «       |j                  d«       | t        |||¬«      k(  sJ ‚t	        j
                  «       }t        || j                  |¬«      5 }| j                  d¬«      D ]  }|j!                  |«       Œ 	 d d d «       |j                  d«       | t        |||¬«      k(  rŒòJ ‚ y # 1 sw Y   Œ²xY w# 1 sw Y   Œ<xY w)Nrª  r5  Úc1Úc2r‚   )Úmax_chunksizer   T)rÞ   FrÐ  rô   rÚ   rŠ  )rÞ   r§   r®   ©Úwrite_optionsr  rN   )r9   r<   r=   r^  r.   rK  r   r   Úseekr   r   rJ   r	   r   rÔ   Úwrite_tableÚwrite_batch)	r¼  Úrecord_batchrL  rž  rõ   r  r¥  Úwriterr:  s	            r   Útest_write_read_round_tripr«  ‰  sC  € Ü
�‰×ÑšiªÐ9¸DÀ$¸<ÓH€AØ—<‘<¨a�<Ó0°Ñ3€LØ�LÐ!ò =ˆä�j‰j‹lˆÜ�$˜œ\¸Ô>Ô?Ø�‰�ŒØ”H˜S“MÒ!Ð!Ð!ô �j‰j‹lˆÜ�$˜œ\¸Ô?Ô@Ø�‰�Œä"°·±Ô?ˆØ”H˜S¨|Ô<Ó<Ð<Ð<ð=ð" 
ˆt”\°Ô6Ð7Ü	 !§.¡.Ô	1°4Ü	 UÔ	+ð	-à	Œ| cÔ*Ü	 T°SÔ	9ð	;ä	 !§.¡.Ô	1Ü	 Ô	%Ü	 U°dÔ	;ð	=ð	7ò :Ñ2ˆ�m ]ô �j‰j‹lˆÜ�s˜AŸH™H°MÔBð 	"ÀfØ×Ñ˜qÔ!÷	"à�‰�ŒØ”H˜S¨|Ø+8ô:ò :ð 	:ð :ä�j‰j‹lˆÜ�s˜AŸH™H°MÔBð 	*ÀfØŸ™°A˜Ó6ò *�Ø×"Ñ" 5Õ)ñ*÷	*ð 	�‰�ŒØ”H˜S¨|Ø+8ô:ó :ð 	:ð :ñ+:÷	"ð 	"ú÷	*ð 	*ús   Æ"I%È)I1É%I.	É1I:	c                  ó²  — t         j                  j                  g d¢g d¢gddg«      } t        j                  «       }t        d¬«      dft        «       dft        d	¬«      d
ffD ]]  \  }}t        || j                  |¬«      5 }|j                  | «       d d d «       |j                  «       |k(  sJ ‚|j                  d«       Œ_ t         j                  j                  ddggdg«      } t        j                  «       }t        d¬«      dft        d¬«      t         j                  j                  ffD ]_  \  }}t        || j                  |¬«      5 }	 |j                  | «       	 d d d «       |j                  «       |k(  sJ ‚|j                  d«       Œa y # 1 sw Y   �ŒxY w# t        $ r!}t        ||«      sJ ‚Y d }~d d d «        y d }~ww xY w# 1 sw Y   ŒlxY w)N©rN   r   N©rœ   Nr¿   r¡  r¢  rÜ   )rß   s   "c1","c2"
1,a
2,
,c
ó   "c1","c2"
1,"a"
2,
,"c"
rÝ   s   "c1","c2"
"1","a"
"2",
,"c"
r¤  r   r)   r¥   rÛ   s   "c1"
","
""""
)r9   r<   r=   r.   rK  r   r   rÔ   r§  r7   r¦  ÚlibrŸ   Ú	Exceptionrt   )r¼  rž  r¥  Úresrª  r+  s         r   Útest_write_quoting_styler³  µ  sµ  € Ü
�‰×ÑšlÒ,<Ð=ÀÀd¸|ÓL€AÜ
�*‰*‹,€Cä	 FÔ	+Ð-HÐIÜ	‹Ð8Ð9Ü	 KÔ	0Ø	,ð	.ðò 	Ñˆ�sô �s˜AŸH™H°MÔBð 	"ÀfØ×Ñ˜qÔ!÷	"à�|‰|‹~ Ò$Ð$Ð$Ø�‰��ð	ô 	�‰×Ñ˜s D˜k˜]¨T¨FÓ3€AÜ
�*‰*‹,€Cä	 HÔ	-Ð/CÐDÜ	 FÔ	+¬R¯V©V×-@Ñ-@ÐAðò Ñˆ�sô �s˜AŸH™H°MÔBð 	ÀfðØ×"Ñ" 1Õ%÷	ð �|‰|‹~ Ò$Ð$Ð$Ø�‰��ñ÷	"ñ 	"ûô ò ô " ! SÔ)Ð)Ð)Û÷	ñ 	ûðú÷	ð 	ús<   ÂFÅGÅF ÆF	Æ 	G
Æ)GÆ7GÇG
Ç
GÇG	c                  ó¢  — t         j                  j                  g d¢g d¢gddg«      } t        j                  «       }t        d¬«      dft        «       dft        d	¬«      dffD ]]  \  }}t        || j                  |¬
«      5 }|j                  | «       d d d «       |j                  «       |k(  sJ ‚|j                  d«       Œ_ y # 1 sw Y   Œ2xY w)Nr­  r®  r¡  r¢  rÜ   )Úquoting_headers   c1,c2
1,"a"
2,
,"c"
r¯  rÝ   r¤  r   )r9   r<   r=   r.   rK  r   r   rÔ   r§  r7   r¦  )r¼  rž  r¥  r²  rª  s        r   Útest_write_quoting_headerr¶  Ö  sÂ   € Ü
�‰×ÑšlÒ,<Ð=ÀÀd¸|ÓL€AÜ
�*‰*‹,€Cä	 VÔ	,Ð.IÐJÜ	‹Ð8Ð9Ü	 [Ô	1Ø	(ð	*ðò 	Ñˆ�sô �s˜AŸH™H°MÔBð 	"ÀfØ×Ñ˜qÔ!÷	"à�|‰|‹~ Ò$Ð$Ð$Ø�‰��ñ	÷	"ð 	"ús   ÂCÃC	c                  ó~   — d„ } t        j                  «       5   | «       } |«       �J ‚	 d d d «       y # 1 sw Y   y xY w)Nc                  ól   — t        j                  d«      } t        | «      }t        j                  |«      S rœ  )r.   rK  r   ÚweakrefÚref)rž  rï   s     r   Úinnerz,test_read_csv_reference_cycle.<locals>.innerç  s)   € Ü�j‰jÐ/Ó0ˆÜ˜“ˆÜ�{‰{˜5Ó!Ð!rL   )r   Údisabled_gc)r»  Úwrs     r   Útest_read_csv_reference_cycler¾  å  s=   € ò"ô
 
×	Ñ	Ó	ñ Ù‹WˆÙ‹tˆ|Ð‰|÷÷ ñ ús   ˜3³<Útype_factoryc                  ó.   — t        j                  dd«      S ©Né   rN   ©r9   rÅ  rO   rL   r   r"  r"  ò  ó   € ŒB�M‰M˜"˜aÓ € rL   c                  ó.   — t        j                  dd«      S )Né&   r6  rÃ  rO   rL   r   r"  r"  ó  ó   € ŒB�M‰M˜"˜bÓ!€ rL   c                  ó.   — t        j                  dd«      S rÁ  ©r9   Ú
decimal256rO   rL   r   r"  r"  ô  rÄ  rL   c                  ó.   — t        j                  dd«      S )NéL   r‡   rÉ  rO   rL   r   r"  r"  õ  rÇ  rL   c                 ó*  —  |«       }t        j                  dt        j                  ddg«      j                  |«      i«      }t	        || dz  «       t        | dz  «      }|j                  d«      j                  |«      |j                  d«      k(  sJ ‚y )NÚcolrN   r   zout.csv)r9   rï   r:   Úcastr   r   Úcolumn)r}  r¿  r*   rï   Úouts        r   Útest_write_csv_decimalrÒ  ñ  s   € ñ ‹>€DÜ�H‰H�eœRŸX™X q¨! fÓ-×2Ñ2°4Ó8Ð9Ó:€Eäˆe�V˜iÑ'Ô(Ü
�6˜IÑ%Ó
&€Cà�:‰:�eÓ×!Ñ! $Ó'¨5¯<©<¸Ó+>Ò>Ð>Ñ>rL   c                  óì   — d}  G d„ dt         j                  «      }t        d«      D ]?  }t        j                  t
        j                  «      5  t         || «      «       d d d «       ŒA y # 1 sw Y   ŒLxY w)Ns   a,b,cc                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ú-test_read_csv_gil_deadlock.<locals>.MyBytesIOc                 óF   •— t        j                  d«       t        ‰| �  |Ž S ©Ngü©ñÒMbP?)r�  r  rk  Úread©rm   r  rm  s     €r   rØ  z2test_read_csv_gil_deadlock.<locals>.MyBytesIO.read	  s   ø€ Ü�J‰J�uÔÜ‘7‘< Ð&Ð&rL   c                 óF   •— t        j                  d«       t        ‰| �  |Ž S r×  )r�  r  rk  ÚreadintorÙ  s     €r   rÛ  z6test_read_csv_gil_deadlock.<locals>.MyBytesIO.readinto  s   ø€ Ü�J‰J�uÔÜ‘7Ñ# TÐ*Ð*rL   )rz   r{   r|   rØ  rÛ  ro  rp  s   @r   Ú	MyBytesIOrÕ    s   ø„ ô	'÷	+ð 	+rL   rÜ  rÂ  )r.   rK  r   rS   rT   r9   rŸ   r   )rL  rÜ  r"   s      r   Útest_read_csv_gil_deadlockrÝ    sd   € ð
 €Dô+”B—J‘Jô +ô �2‹Yò &ˆÜ�]‰]œ2Ÿ?™?Ó+ñ 	&Ü‘Y˜t“_Ô%÷	&ð 	&ñ&÷	&ð 	&ús   ÁA*Á*A3	)r   r‡   z
T)Grµ   r™  r   r   Údecimalr   rd  r�  r.   r1   r‡  r+   r  r€  r  r   r{  r  r�  Úunittestr¹  rS   Úpyarrowr9   Úpyarrow.csvr   r   r   r	   r
   r   r   r   r   r   Úpyarrow.testsr   r   r#   r%   rG   rK   r_   rg   ri   r‰   r¡   r±   rØ   rá   ÚABCrã   r@  r%  r,  r1  rr  r=  ru  rx  ÚTestCaser�  r—  rŸ  r«  r³  r¶  r¾  ÚparametrizerÒ  rÝ  rO   rL   r   ú<module>ræ     s®  ðó$ Û 
ß #Ý Û 	Û Û 	Û Û 	Û Û Û Û Û Û Û Û Û Û ã ã ÷4÷ 4÷ 4õ ò!ò"òóò$#ò,ò00÷-ñ -ò$ò&4òn9òxN;òbô0XK�#—'‘'ô XKôv
T�{ô TônÐ-ô ôÐ/ô ô@,˜;ô @,ôF
Ð!5ô ð ‡�×ÑôÐ#7ó ó ð÷9ñ 9ô2
Ð/°×1BÑ1Bô 
ô*Ð.°×0AÑ0Aô òò):òXòBò	ð ‡�×Ñ˜Ù Ù!Ù Ù!ð	*ó ñ?óð?ó&rL   