+
    JV-j^: ã                   óv  € ^ RI t ^ RIt^ RIHtHt ^ RIHt ^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtHtHtHtHtHtH t H!t!H"t" ^ RI#H$t$ R t%R t&R t'R:R	 lt(R
 t)R t*R t+ ! R R4      t,R t-R t.R t/R t0R t1 ! R R] Pd                  4      t3 ! R R]34      t4 ! R R]44      t5 ! R R]44      t6 ! R R]34      t7 ! R R]74      t8]Pr                  P"                   ! R  R!]74      4       t: ! R" R#4      t; ! R$ R%];]Px                  4      t= ! R& R'];]Px                  4      t>R( t?R) t@R* tAR+ tBR, tC]Pr                  P‰                  R-R. R/ R0 R1 34      R2 4       tER3 tF]Pr                  P‰                  R4R5 R63R7 R63R8 R63.4      R9 4       tGR# );é    N)ÚdateÚdatetime)ÚDecimal)
Úopen_csvÚread_csvÚReadOptionsÚParseOptionsÚConvertOptionsÚISO8601Ú	write_csvÚWriteOptionsÚ	CSVWriterÚ
InvalidRow)Úutilc               #   ó~   "  € \         P                  p T  R j  x€L
  V  F  pV  F  pW,           x € K  	  K  	  R #  L"5i©N)ÚstringÚascii_lowercase)ÚlettersÚfirstÚseconds      Úg/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pyarrow/tests/test_csv.pyÚgenerate_col_namesr   /   s:   é € ä×$Ñ$€GØ×ÐÛˆÛˆFØ•.Ô ó ó ñ ùs   ‚=˜;™#=c              #   óZ   "  € \        ^ W!,          V4       F  pWW1,            x € K  	  R# 5i©r   N©Úrange©ÚarrÚnum_colsÚnum_rowsÚis   &&& r   Ú
split_rowsr#   8   s(   é € ä�1�hÕ)¨8Ö4ˆØ�A•LÐ!Ô!ó 5ùs   ‚)+c              #   óN   "  € \        ^ V4       F  pWRV1,          x € K  	  R# 5ir   r   r   s   &&& r   Úsplit_columnsr%   >   s%   é € ä�1�hÖˆØ�+�X�+ÕÔó  ùs   ‚#%c           	      ó8  € \         P                  ! ^*4      p\        W,          4       Uu. uF  qTP                  ^ R4      NK  	  pp\        P
                  ! 4       p\        \        P                  ! \        4       V 4      4      pV'       d2   VP                  RP                  V4      4       VP                  V4       \        W`V4       FB  p	VP                  RP                  \        \        V	4      4      4       VP                  V4       KD  	  VP                  4       P!                  4       p\#        W`V4       U	u. uF.  p	\$        P&                  ! V	\$        P(                  ! 4       R7      NK0  	  p
p	\$        P*                  P-                  W¨4      pW{3# u upi u up	i )é*   éè  Ú,)Ú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   s1  € Ü
�-Š-˜Ó
€CÜ).¨xÕ/BÔ)CÓ
DÑ)C A�;‰;�q˜$ÖÑ)C€CÐ
DÜ
�+Š+‹-€CÜ”Y×%Ò%Ô&8Ó&:¸HÓEÓF€IßØ�	‰	�#—(‘(˜9Ó%Ô&Ø�	‰	�'ÔÜ˜#¨Ö2ˆØ�	‰	�#—(‘(œ3œs C›=Ó)Ô*Ø�	‰	�'Öñ 3ð �,‰,‹.×
Ñ
Ó
!€Cä'¨°xÔ@óBÙ@�3ô �xŠx˜¤"§(¢(£*×-Ù@ð ð Bä�x‰x×#Ñ# GÓ7€HØˆ=Ðùò EùòBs   ªFÄ:4Fc                 óÊ   € \         P                  ! 4       pVP                  R P                  V 4      4       VP                  R4       VP	                  4       P                  4       # )r)   Ú
)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                ó8  € V ! 4       pVP                  4        FV  w  r4\        W#4      V^ ,          8X  g   Q RV,           4       hV F&  p\        W#V4       \        W#4      V8X  d   K!  Q R4       h	  KX  	  \        P                  ! \
        4      ;_uu_ 4        RVn        RRR4       VP                  4        UUu/ uF  w  r4W4^,          bK  	  pppV ! R/ VB pVP                  4        F  w  r7\        W#4      V8X  d   K  Q h	  R#   + '       g   i     Lo; iu uppi )z<
Check setting and getting attributes of an *Options class.
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à#×)Ñ)Ö+‰ˆÜ�tÓ" f¨Q¥iÔ/ð 	2Ø*¨TÕ1ó	2Ð/ãˆAÜ�D Ô"Ü˜4Ó&¨!Ö+ÐCÐ-CÓCÐ+ó ñ ,ô 
�Š”~×	&Õ	&Ø $ˆÔ÷ 
'ð 9D×8IÑ8IÔ8KÔLÑ8K©¨�D �)’OÑ8K€LÑLÙÑ�Ñ€DØ#×)Ñ)Ö+‰ˆÜ�tÓ" eÖ+Ð+Ð+ó ,÷ 
'×	&üó Ms   ÂDÂ7DÄD	c                 óÄ   € V ! R/ VB pVP                  VP                  VVP                  R 7      4      pVP                  4        F  w  rV\	        WE4      V8X  d   K  Q h	  R# ))ÚprotocolNrN   )ÚloadsÚdumpsÚHIGHEST_PROTOCOLrO   rP   )rV   ÚpicklerrW   rX   Únew_optsrY   r]   s   &&,    r   Úcheck_options_class_picklingrf   u   sb   € ÙÑ�Ñ€DØ�}‰}˜WŸ]™]¨4Ø4;×4LÑ4Lð +ó Nó O€Hà"×(Ñ(Ö*‰ˆÜ�xÓ&¨%Ö/Ð/Ð/ó +rL   c                   ó8   a € ] tR t^}t o R tR tR tR tRtV t	R# )ÚInvalidRowHandlerc                ó    € Wn         . V n        R # r   ©ÚresultÚrows)Úselfrk   s   &&r   Ú__init__ÚInvalidRowHandler.__init__~   s   € ØŒØˆŽ	rL   c                óP   € V P                   P                  V4       V P                  # r   )rl   Úappendrk   )rm   rD   s   &&r   Ú__call__ÚInvalidRowHandler.__call__‚   s   € Ø�	‰	×Ñ˜ÔØ�{‰{ÐrL   c                ód   € \        V\        4      ;'       d    VP                  V P                  8H  # r   ©Ú
isinstancerh   rk   ©rm   Úothers   &&r   Ú__eq__ÚInvalidRowHandler.__eq__†   s,   € Ü˜5Ô"3Ó4÷ ,ð ,Ø—‘ §¡Ñ+ð	-rL   c                ón   € \        V\        4      '       * ;'       g    VP                  V P                  8g  # r   ru   rw   s   &&r   Ú__ne__ÚInvalidRowHandler.__ne__Š   s/   € Ü˜uÔ&7Ó8Ô8÷ ,ð ,Ø—‘ §¡Ñ+ð	-rL   rj   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rn   rr   ry   r|   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   rh   rh   }   s   ø‡ € òòò-÷-ð -rL   rh   c                  óî   € ^p ^p\        ^^4       Uu. uF  q"NK  	  pp\        \        W0V4      4      pV. RO. RO.8X  g   Q h\        \        W0V4      4      pV^^.^^.^^.^^	.^^
..8X  g   Q hR# u upi )é   N)é   é   é   é   r‡   )é   é   é   é	   é
   )r   r0   r#   r%   )r    r!   Úxr   rl   rE   s         r   Ú#test_split_rows_and_columns_utilityr’   �   s¦   € Ø€HØ€HÜ˜A˜r”lÓ
#‘l�Š1‘l€CÐ
#Ü”
˜3¨(Ó3Ó4€DØÚÚðô ð ð ô ”= °Ó9Ó:€GØØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆBˆðô ð ò ùò $s   “
A2c                 óø  € \         pV! 4       p\        VR R.^ ^.. RR..RR .RR.^ ^.R7       \        WR ^RR.RR^R7       VP                  ^ 8”  g   Q hRVn        VP                  R8X  g   Q hV! R	R
7      pVP                  R	8X  g   Q hVP	                  4        Rp\
        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       p^ Vn        VP	                  4        RRR4       Rp\
        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pRVn	        VP	                  4        RRR4       Rp\
        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pRVn
        VP	                  4        RRR4       Rp\
        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pR Vn        RVn        VP	                  4        RRR4       Rp\        V4      RV R28X  g   Q h\        V4      RV R28X  g   Q hR#   + '       g   i     ELM; i  + '       g   i     EL
; i  + '       g   i     LÆ; i  + '       g   i     L{; i)TFÚabÚcdÚutf8Úutf16)Úuse_threadsÚ	skip_rowsrJ   Úautogenerate_column_namesÚencodingÚskip_rows_after_names)rd   r˜   r™   rJ   rš   r›   rœ   é90  iÒ  ©Ú
block_sizez-ReadOptions: block_size must be at least 1: 0©ÚmatchNz-ReadOptions: skip_rows cannot be negative: -1z9ReadOptions: skip_rows_after_names cannot be negative: -1zTReadOptions: autogenerate_column_names cannot be true when column_names are providedz±
    use_threads=True,
    block_size=1048576,
    skip_rows=0,
    skip_rows_after_names=0,
    column_names=['a', 'b'],
    autogenerate_column_names=True,
    encoding='utf8'z<pyarrow.csv.ReadOptions>(Ú)zReadOptions(éÿÿÿÿ)ÚaÚb)r   r^   rf   rŸ   ÚvalidaterR   rS   r9   ÚArrowInvalidr™   rœ   rš   rJ   Úreprr6   )Úpickle_modulerV   rX   r¡   Úexpected_repr_inners   &    r   Útest_read_optionsr«   ¢   s  € Ü
€CÙ‹5€Dä˜¨$°¨Ø#$ a &Ø&(¨4°¨,Ð%7Ø38¸$°-Ø"(¨'Ð!2Ø/0°"¨gõ7ô ! Ø-1Ø+,Ø/3°T¨lØ;@Ø*1Ø79õ;ð �?‰?˜QÔÐÐØ€D„OØ�?‰?˜eÔ#Ð#Ð#á˜$Ô€DØ�?‰?˜dÔ"Ð"Ð"à‡M�M„Oà;€EÜ	�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆŒØ�‰Œ÷ 
5ð
 <€EÜ	�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆŒØ�‰Œ÷ 
5ð
 H€EÜ	�Š”r—‘¨e×	4Ö	4Ù‹uˆØ%'ˆÔ"Ø�‰Œ÷ 
5ð
)€Eä	�Š”r—‘¨e×	4Ö	4Ù‹uˆØ)-ˆÔ&Ø&ˆÔØ�‰Œ÷	 
5ðÐô �‹:Ð5Ð6IÐ5JÈ!ÐLÔLÐLÐLÜˆt‹9˜,Ð':Ð&;¸1Ð=Ô=Ð=Ò=÷G 
5×	4Ð	4ú÷ 
5×	4Ð	4ú÷ 
5×	4ú÷ 
5×	4ús0   ÃH.Ä"IÅ9IÇ&I)È.H?	ÉI	ÉI&	É)I9	c                 óF  € \         p\        R 4      p\        VRR.RR.. RORR.RR.RR.RV.R7       \        WRRRRRRVR7	       V! 4       P	                  4        V! 4       pR	Vn        VP	                  4        R
p\        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pRVn        VP	                  4        RRR4       \        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pRVn        VP	                  4        RRR4       Rp\        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pRVn
        VP	                  4        RRR4       \        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pRVn
        VP	                  4        RRR4       Rp\        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pRVn        VP	                  4        RRR4       \        P                  ! \        P                  VR7      ;_uu_ 4        V! 4       pRVn        VP	                  4        RRR4       Rp\        V4      RV R28X  g   Q h\        V4      RV R28X  g   Q hR#   + '       g   i     ELî; i  + '       g   i     EL­; i  + '       g   i     ELj; i  + '       g   i     EL); i  + '       g   i     Lå; i  + '       g   i     L£; i)Úskipr)   r‘   FÚyTN)Ú	delimiterÚescape_charÚ
quote_charÚdouble_quoteÚnewlines_in_valuesÚignore_empty_linesÚinvalid_row_handler)rd   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 \\nz¬
    delimiter=',',
    quote_char='"',
    double_quote=True,
    escape_char='\r',
    newlines_in_values=False,
    ignore_empty_lines=True,
    invalid_row_handler=Nonez<pyarrow.csv.ParseOptions>(r¢   zParseOptions()Ú"ÚzF)r	   rh   r^   rf   r¦   r¯   rR   rS   r9   r§   r±   r°   r¨   r6   )r©   rV   Úskip_handlerrX   r¡   rª   s   &     r   Útest_parse_optionsr»   å   s[  € Ü
€CÜ$ VÓ,€Lä˜¨¨S zØ%*¨C LÚ#4Ø&*¨E ]Ø,1°4¨=Ø,0°%¨=Ø-1°<Ð,@õBô ! Ø+.Ø-0Ø,1Ø.3Ø48Ø49Ø5AõCñ ƒE‡N�NÔÙ‹5€DØ€D„NØ‡M�M„Oà>€EÜ	�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆŒØ�‰Œ÷ 
5ô
 
�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆŒØ�‰Œ÷ 
5ð
 @€EÜ	�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆŒØ�‰Œ÷ 
5ô
 
�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆŒØ�‰Œ÷ 
5ð
 A€EÜ	�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆÔØ�‰Œ÷ 
5ô
 
�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆÔØ�‰Œ÷ 
5ð
 Ðô �‹:Ð6Ð7JÐ6KÈ1ÐMÔMÐMÐMÜˆt‹9˜-Ð(;Ð'<¸AÐ>Ô>Ð>Ò>÷U 
5×	4Ð	4ú÷
 
5×	4Ð	4ú÷ 
5×	4Ð	4ú÷
 
5×	4Ð	4ú÷ 
5×	4ú÷
 
5×	4úsH   Â)J-Ã>KÅKÆ*K)ÈK=ÉLÊ-J>	ËK	ËK&	Ë)K:	Ë=L	ÌL 	c                 óö	  € \         pV! 4       p\        VR R.RR .R R.RR.. RR..RR .RR .. \        R..R7	       \        WRR RRRR.RR \        R.R7
       \        P
                  ! \        4      ;_uu_ 4        R	Vn        R
R
R
4       VP                  ^ 8”  g   Q hRVn        VP                  R8X  g   Q hVP                  / 8X  g   Q hR\        P                  ! 4       R\        P                  ! 4       /Vn	        VP                  R\        P                  ! 4       R\        P                  ! 4       /8X  g   Q hRRRR/Vn	        VP                  R\        P                  ! 4       R\        P                  ! 4       /8X  g   Q h\        P                  ! R\        P                  ! 4       3R\        P                   ! 4       3.4      pW2n	        VP                  R\        P                  ! 4       R\        P                   ! 4       /8X  g   Q hR\        P"                  ! 4       3.Vn	        VP                  R\        P"                  ! 4       /8X  g   Q h\        P
                  ! \$        RR7      ;_uu_ 4        RR
/Vn	        R
R
R
4       \        P
                  ! \$        4      ;_uu_ 4        ^ Vn	        R
R
R
4       \'        VP(                  \*        4      '       g   Q hRVP(                  9   g   Q hRVP(                  9   g   Q hRR.Vn        VP(                  RR.8X  g   Q h\'        VP,                  \*        4      '       g   Q hRR.Vn        VP,                  RR.8X  g   Q h\'        VP.                  \*        4      '       g   Q hRR.Vn        VP.                  RR.8X  g   Q hVP0                  . 8X  g   Q h\        .Vn        VP0                  \        .8X  g   Q hV! R\        P                  ! 4       /RR.RR.RR.R \        R!.R"7      pVP                  R\        P                  ! 4       /8X  g   Q hVP(                  RR.8X  g   Q hVP.                  RR.8X  g   Q hVP,                  RR.8X  g   Q hVP                  R 8X  g   Q hVP0                  \        R!.8X  g   Q hR#p\3        V4      R$V R%28X  g   Q h\5        V4      R&V R%28X  g   Q hR
#   + '       g   i     ELH; i  + '       g   i     ELf; i  + '       g   i     ELH; i)'TFÚ.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)	rd   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   z..NéŸ† r¥   Úcr[   Úint16ÚwÚnullr¤   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Ç   a˜  
    check_utf8=True,
    column_types={'a': DataType(null)},
    null_values=['N', 'nn'],
    true_values=['T', 'tt'],
    false_values=['F', 'ff'],
    decimal_point='.',
    strings_can_be_null=False,
    quoted_strings_can_be_null=True,
    include_columns=[],
    include_missing_columns=False,
    auto_dict_encode=False,
    auto_dict_max_cardinality=999,
    timestamp_parsers=['ISO8601', '%Y-%m-%d']z<pyarrow.csv.ConvertOptions>(r¢   zConvertOptions()r
   r^   r   rf   rR   rS   Ú
ValueErrorrÃ   rÛ   r×   r9   rÊ   Úfloat32rÌ   ÚschemaÚint32r   ÚbinaryÚ	TypeErrorrv   rØ   r0   rÙ   rÚ   rÇ   r¨   r6   )r©   rV   rX   rÞ   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à×Ñ Ô"Ð"Ð"àœbŸhšh›j¨#¬r¯zªz«|Ð<€DÔØ×Ñ ¤b§h¢h£j°#´r·z²z³|Ð DÔDÐDÐDØ˜g s¨FÐ3€DÔØ×Ñ ¤b§h¢h£j°#´r·w²w³yÐ AÔAÐAÐAä�YŠY˜œbŸhšh›jÐ)¨C´·²³Ð+=Ð>Ó?€FØÔØ×Ñ ¤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Ð%:Ô:Ð:Ð:ð1Ðô �‹:Ð8Ð9LÐ8MÈQÐOÔOÐOÐOÜˆt‹9˜/Ð*=Ð)>¸aÐ@Ô@Ð@Ò@÷M 
#×	"Ð	"ú÷* 
=×	<Ð	<úç	!×	!Ð	!ús$   Á8R?É,
SÊ S'Ò?S	ÓS$	Ó'S8	c                  ó,  € \         p V ! 4       p\        V R R.. RO. ROR7       VP                  ^ 8”  g   Q hRVn        VP                  R8X  g   Q hV ! RR7      pVP                  R8X  g   Q hVP                  4        Rp\        P
                  ! \        P                  VR7      ;_uu_ 4        V ! 4       p^ Vn        VP                  4        RRR4       R	p\        V4      R
V R28X  g   Q h\        V4      RV R28X  g   Q hR#   + '       g   i     L@; i)TF)Úinclude_headerr¯   Úquoting_styler�   i”&  )Ú
batch_sizez.WriteOptions: batch_size must be at least 1: 0r    NzY
    include_header=True,
    batch_size=0,
    delimiter=',',
    quoting_style='needed'z<pyarrow.csv.WriteOptions>(r¢   zWriteOptions()r)   r¶   Ú|)ÚneededÚnoneÚ	all_valid)
r   r^   ræ   r¦   rR   rS   r9   r§   r¨   r6   )rV   rX   r¡   rª   s       r   Útest_write_optionsrë   �  sû   € Ü
€CÙ‹5€DäØ˜T 5˜MÒ5EÚ5õ7ð �?‰?˜QÔÐÐØ€D„OØ�?‰?˜eÔ#Ð#Ð#á˜$Ô€DØ�?‰?˜dÔ"Ð"Ð"à‡M�M„Oà<€EÜ	�Š”r—‘¨e×	4Ö	4Ù‹uˆØˆŒØ�‰Œ÷ 
5ð
Ðô �‹:Ð6Ð7JÐ6KÈ1ÐMÔMÐMÐMÜˆt‹9˜-Ð(;Ð'<¸AÐ>Ô>Ð>Ò>÷ 
5×	4ús   Â,DÄD	c                   óÖ   a € ] tR tRt o Rt]P                  R 4       t]]P                  R 4       4       t	]
R 4       tR tR t]P                  P                   R 4       tR	 tR
 tRtV tR# )ÚBaseTestCSVi°  zDCommon tests which are shared by streaming and non streaming readersc                ó   € \         h)zz
: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_bytesÚBaseTestCSV.read_bytes³  s
   € ô "Ð!rL   c                ó   € \         h)z#Whether this test is multi-threadedrï   ©rm   s   &r   r˜   ÚBaseTestCSV.use_threads¼  s
   € ô "Ð!rL   c                ód   € V P                   \        V4      8X  g   Q hV P                  V8X  g   Q hR # r   )Únum_columnsÚlenrJ   )ÚtableÚnamess   &&r   Úcheck_namesÚBaseTestCSV.check_namesÂ  s.   € à× Ñ ¤C¨£JÔ.Ð.Ð.Ø×!Ñ! UÔ*Ð*Ò*rL   c                óB  € R p\        4       p^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       RRR.RRR./8X  g   Q h^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       R. R. /8X  g   Q h^Vn        \
        P                  ! \        P                  4      ;_uu_ 4        V P                  WR7      pRRR4       R	p^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       RR.RR./8X  g   Q h^Vn        RR.Vn	        V P                  WR7      pV P                  VRR.4       VP	                  4       R. R. /8X  g   Q hR#   + '       g   i     L¯; i)
ó   ab,cd
ef,gh
ij,kl
mn,op
©Úread_optionsÚefÚghÚijÚmnÚklÚopNó   abcd
,,,,,
ij,kl
mn,op
)
r   r™   ró   rý   Ú	to_pydictrR   rS   r9   r§   rJ   ©rm   rl   rX   rû   s   &   r   Útest_header_skip_rowsÚ!BaseTestCSV.test_header_skip_rowsÇ  s·  € Ø.ˆä‹}ˆØˆŒØ—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�4˜�,Ø�4˜�,ð%
ô 
ð 	
ð 
ð
 ˆŒØ—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�"Ø�"ð%
ô 
ð 	
ð 
ð
 ˆŒÜ�]Š]œ2Ÿ?™?×+Õ+à—O‘O D�OÓ<ˆE÷ ,ð
 .ˆØˆŒØ—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�4�&Ø�4�&ð%
ô 
ð 	
ð 
ð ˆŒØ! 4˜LˆÔØ—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�"Ø�"ð%
ô 
ð 	
ò 
÷' ,×+ús   ÃFÆF	c                óÎ  € R p\        4       p^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       RRR.RRR./8X  g   Q h^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       R. R. /8X  g   Q h^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       R. R. /8X  g   Q hRp^Vn        R	R
.Vn        V P                  WR7      pV P                  VR	R
.4       VP	                  4       R	RR.R
RR./8X  g   Q h\        4       pRp^Vn        \        4       pRVn        V P                  WVR7      pV P                  VRR.4       VP	                  4       RR.RR./8X  g   Q h^Vn        ^Vn        V P                  WVR7      pV P                  VRR.4       VP	                  4       RR.RR./8X  g   Q h\        4       p\        ^RR7      w  rRVn        \        V4      ^,          Vn        V P                  WR7      pVP                  VP                  8X  g   Q hVP                  ^d8X  g   Q hVP	                  4       pVP	                  4       P                  4        F  w  rxVR,          Wg,          8X  d   K  Q h	  V P                  WVR7      pVP                  VP                  8X  g   Q hVP                  ^d8X  g   Q hVP	                  4       pVP	                  4       P                  4        F  w  rxVR,          Wg,          8X  d   K  Q h	  \        ^^ÈRR7      w  r\        4       p^%Vn        ^)Vn        VP                  P                  Vn        V P                  WVR7      pVP                  VP                  8X  g   Q hVP                  VP                  VP                  ,
          VP                  ,
          8X  g   Q hVP	                  4       pVP	                  4       P                  4        F1  w  rxW‚P                  VP                  ,           R Wg,          8X  d   K1  Q h	  R# )r   r  r”   r•   r  r  r  r  r	  Úf0Úf1s#   ab,cd
"e
f","g

h"
"ij","k
l"
mn,opT©r  Úparse_optionsr(   ©r    r!   i„  :i„  NNF)r    r!   r?   N)r   rœ   ró   rý   r
  rJ   r	   r³   rŸ   rG   rú   rÞ   r!   rO   r™   rü   )	rm   rl   rX   rû   Ú
parse_optsrF   Ú
table_dictrY   rZ   s	   &        r   Útest_skip_rows_after_namesÚ&BaseTestCSV.test_skip_rows_after_namesô  s�  € Ø.ˆä‹}ˆØ%&ˆÔ"Ø—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�4˜�,Ø�4˜�,ð%
ô 
ð 	
ð 
ð &'ˆÔ"Ø—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�"Ø�"ð%
ô 
ð 	
ð 
ð &'ˆÔ"Ø—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�"Ø�"ð%
ô 
ð 	
ð 
ð .ˆØ%&ˆÔ"Ø! 4˜LˆÔØ—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�4˜�,Ø�4˜�,ð%
ô 
ð 	
ð 
ô ‹}ˆð =ˆØ%&ˆÔ"Ü!“^ˆ
Ø(,ˆ
Ô%Ø—‘ Ø.8ð  ó :ˆà×Ñ˜  t Ô-Ø�‰Ó Ø�4�&Ø�4�&ð%
ô 
ð 	
ð 
ð &'ˆÔ"ØˆŒØ—‘ Ø.8ð  ó :ˆà×Ñ˜  t Ô-Ø�‰Ó Ø�4�&Ø�4�&ð%
ô 
ð 	
ð 
ô ‹}ˆô )°!¸dÔC‰ˆØ%(ˆÔ"Ü˜d›) b�.ˆŒØ—‘ �Ó8ˆØ�|‰|˜xŸ™Ô.Ð.Ð.Ø�~‰~ Ô$Ð$Ð$Ø—_‘_Ó&ˆ
Ø$×.Ñ.Ó0×6Ñ6Ö8‰LˆDØ˜$•< :Õ#3Ö3Ð3Ð3ñ 9ð —‘ Ø.8ð  ó :ˆà�|‰|˜xŸ™Ô.Ð.Ð.Ø�~‰~ Ô$Ð$Ð$Ø—_‘_Ó&ˆ
Ø$×.Ñ.Ó0×6Ñ6Ö8‰LˆDØ˜$•< :Õ#3Ö3Ð3Ð3ñ 9ô )°!¸cØ5:ô<‰ˆä‹}ˆØˆŒØ%'ˆÔ"Ø$ŸO™O×1Ñ1ˆÔØ—‘ Ø.8ð  ó :ˆà�|‰|˜xŸ™Ô.Ð.Ð.Ø—‘Ø×!Ñ! D§N¡NÕ2Ø×*Ñ*õ+ô+ð 	,ð +ð —_‘_Ó&ˆ
Ø$×.Ñ.Ó0×6Ñ6Ö8‰LˆDØŸ>™>¨D×,FÑ,FÕFÐGÐHØÕ$ö%ð &ð %ó 9rL   c                ó²
  a € V 3R  lp\        ^^dRR7      w  r#\        4       p\        V4      ^,          Vn        \	        4       pR\
        P                  ! 4       /Vn        VR,           pV! R^f4      p\        P                  ! \
        P                  VR7      ;_uu_ 4        S P                  VVVR7       RRR4       VR	,           pV! R
^fV4      p	\        P                  ! \
        P                  V	R7      ;_uu_ 4        S P                  VVVR7       RRR4       Rp
W*,           pV! R^fV
R,          P                  R4      4      p\        P                  ! \
        P                  VR7      ;_uu_ 4        S P                  VVVR7       RRR4       ^/Vn        \        P                  ! \
        P                  VR7      ;_uu_ 4        S P                  VVVR7       RRR4       \        P                  ! \
        P                  V	R7      ;_uu_ 4        S P                  VVVR7       RRR4       \        P                  ! \
        P                  VR7      ;_uu_ 4        S P                  VVVR7       RRR4       ^ Vn        \        ^^dRR7      w  r#. ROVn        VR,           pV! R^e4      p\        P                  ! \
        P                  VR7      ;_uu_ 4        S P                  VVVR7       RRR4       W*,           pV! R^eV
R,          P                  R4      4      p\        P                  ! \
        P                  VR7      ;_uu_ 4        S P                  VVVR7       RRR4       VR	,           pV! R
^e4      p	V	P                  \        V4      4      p	\        P                  ! \
        P                  V	R7      ;_uu_ 4        S P                  VVVR7       RRR4       ^Vn        \        P                  ! \
        P                  VR7      ;_uu_ 4        S P                  VVVR7       RRR4       \        P                  ! \
        P                  V	R7      ;_uu_ 4        S P                  VVVR7       RRR4       R#   + '       g   i     ELÒ; i  + '       g   i     ELˆ; i  + '       g   i     EL'; i  + '       g   i     ELé; i  + '       g   i     EL²; i  + '       g   i     EL{; i  + '       g   i     EL; i  + '       g   i     EL³; i  + '       g   i     ELP; i  + '       g   i     EL; i  + '       g   i     R# ; i)c                 ób   <€ SP                   '       d   R pMRV R2pV P                  ! V.VO5!  # )rÍ   zRow #z: )r˜   Úformat)Ú
msg_formatrD   ÚargsÚrow_inform   s   &&* €r   Ú
format_msgÚ@BaseTestCSV.test_row_number_offset_in_errors.<locals>.format_msg`  s7   ø€ Ø××ÐØ‘à" 3 % r˜?�Ø×$Ò$ XÐ5°Ó5Ð5rL   T)r?   r¤   s   1,2
z{}Expected 4 columns, got 2r    ©r  Úconvert_optionsNs	   a,b,c,d
zDIn CSV column #0: {}CSV conversion error to int32: invalid value 'a'z#{}Expected 4 columns, got 2: {} ...:r   é`   Nzutf-8Fs  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
)r¤   r¥   rÉ   Úd)rG   r   rú   rŸ   r
   r9   rß   r×   rR   rS   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   f            r   Ú test_row_number_offset_in_errorsÚ,BaseTestCSV.test_row_number_offset_in_errors]  s?  ø€ õ	6ô !  C°TÔ:‰ˆä"“}ˆÜ"% c£(¨Q¥,ˆÔÜ(Ó*ˆØ(+¬R¯XªX«ZÐ'8ˆÔ$ð  
Õ*ˆÙ$Ð%BÀCÓHˆÜ�]Š]œ2Ÿ?™?°/×BÖBØ�O‰O˜OØ)5Ø,;ð ô =÷ Cð
 ˜^Õ+ˆÙ"ð?à�óˆô �]Š]œ2Ÿ?™?°-×@Ö@Ø�O‰O˜LØ)5Ø,;ð ô =÷ Að
 <ˆØ"�~ÐÙ!Ð"GÈØ"*¨4¥.×"7Ñ"7¸Ó"@óBˆä�]Š]œ2Ÿ?™?°,×?Ö?Ø�O‰OÐ0Ø)5Ø,;ð ô =÷ @ð .0ˆÔ*ä�]Š]œ2Ÿ?™?°/×BÖBØ�O‰O˜OØ)5Ø,;ð ô =÷ Cô
 �]Š]œ2Ÿ?™?°-×@Ö@Ø�O‰O˜LØ)5Ø,;ð ô =÷ Aô
 �]Š]œ2Ÿ?™?°,×?Ö?Ø�O‰OÐ0Ø)5Ø,;ð ô =÷ @ð
 ./ˆÔ*ô !  C°UÔ;‰ˆÚ$8ˆÔ!Ø 
Õ*ˆÙ$Ð%BÀCÓHˆÜ�]Š]œ2Ÿ?™?°/×BÖBØ�O‰O˜OØ)5Ø,;ð ô =÷ Cð
  #�~ÐÙ!Ð"GÈØ"*¨4¥.×"7Ñ"7¸Ó"@óBˆä�]Š]œ2Ÿ?™?°,×?Ö?Ø�O‰OÐ0Ø)5Ø,;ð ô =÷ @ð
 ˜^Õ+ˆÙ"ð?àóˆð &×,Ñ,¬S°«XÓ6ˆÜ�]Š]œ2Ÿ?™?°-×@Ö@Ø�O‰O˜LØ)5Ø,;ð ô =÷ Að "$ˆÔÜ�]Š]œ2Ÿ?™?°/×BÖBØ�O‰O˜OØ)5Ø,;ð ô =÷ Cô
 �]Š]œ2Ÿ?™?°-×@Ö@Ø�O‰O˜LØ)5Ø,;ð ô =÷ AÑ@÷a C×BÐBú÷ A×@Ð@ú÷ @×?Ð?ú÷ C×BÐBú÷
 A×@Ð@ú÷
 @×?Ð?ú÷ C×BÐBú÷ @×?Ð?ú÷ A×@Ð@ú÷ C×BÐBú÷
 A×@Ð@ús„   ÂQ=Ã=RÅ2R%ÇR9ÈSÉS!ËS5Í
T	ÏTÐT1ÑUÑ=R	ÒR"	Ò%R6	Ò9S
	ÓS	Ó!S2	Ó5T	Ô	T	ÔT.	Ô1U	ÕU	c                óÈ  a € R p\        4       p\        P                  ! \        RR7      ;_uu_ 4        S P	                  W#R7       RRR4       \        R4      Vn        S P	                  W#R7      pVP                  4       RRR.R	R
R./8X  g   Q hV 3R lp\        ^^V! ^4      R4      \        ^^V! ^4      R4      .pVP                  P                  V8X  g   Q h\        R4      Vn        \        P                  ! \        RR7      ;_uu_ 4        S P	                  W#R7       RRR4       \        ^^V! ^4      R4      .pVP                  P                  V8X  g   Q h\        R4      Vn        VP                  VP                  V4      4      pS P	                  W#R7      pVP                  4       RRR.R	R
R./8X  g   Q hR#   + '       g   i     EL�; i  + '       g   i     L¹; i)s   a,b
c
d,e
f,g,h
i,j
zExpected 2 columns, got 1: cr    ©r  Nr­   r¤   r#  r"   r¥   ÚeÚjc                 ó0   <€ SP                   '       d   R # T # r   )r˜   )r‘   rm   s   &€r   Úrow_numÚ5BaseTestCSV.test_invalid_row_handler.<locals>.row_numÖ  s   ø€ Ø×+×+Ð+�4Ð2°Ð2rL   rÉ   zf,g,hÚerror)r	   rR   rS   rÜ   ró   rh   rµ   r
  r   rl   ra   rb   )rm   r©   rl   r  rû   r3  Úexpected_rowss   f&     r   Útest_invalid_row_handlerÚ$BaseTestCSV.test_invalid_row_handlerÆ  sÌ  ø€ Ø+ˆÜ!“^ˆ
Ü�]Š]ÜØ4÷6ö 6ð �O‰O˜DˆOÔ;÷6ô *;¸6Ó)Bˆ
Ô&Ø—‘ �Ó?ˆØ�‰Ó Ø�#�s�Ø�#�s�ð%
ô 
ð 	
ð 
õ
	3ô �q˜!™W Q›Z¨Ó-Ü�q˜!™W Q›Z¨Ó1ð
ˆð ×-Ñ-×2Ñ2°mÔCÐCÐCô *;¸7Ó)Cˆ
Ô&Ü�]Š]ÜØ4÷6ö 6ð �O‰O˜DˆOÔ;÷6ô $ A q©'°!«*°cÓ:Ð;ˆØ×-Ñ-×2Ñ2°mÔCÐCÐCô *;¸6Ó)Bˆ
Ô&Ø"×(Ñ(¨×)<Ñ)<¸ZÓ)HÓIˆ
à—‘ �Ó?ˆØ�‰Ó Ø�#�s�Ø�#�s�ð%
ô 
ð 	
ò 
÷G6÷ 6ð 6ú÷.6÷ 6ús   ²F=ÄGÆ=G	ÇG!	c           
     óª  € R pRRR.RRR.RRR	./p\        ^^4       FA  pV P                  V\        R
R7      \        VR7      R7      P	                  4       pWB8X  d   KA  Q h	  \        ^^4       FM  p\
        P                  ! \        RR7      ;_uu_ 4        V P                  V\        VR7      R7       RRR4       KO  	  R#   + '       g   i     Kd  ; i)s   a,b,c
d,e,"f
"
g,h,i
r¤   r#  Úgr¥   r0  ÚhrÉ   zf
r"   T)r³   rž   ©r  r  z#cell values spanning multiple linesr    r  N)r   ró   r	   r   r
  rR   rS   rÜ   )rm   rl   rF   rŸ   r#  s   &    r   Útest_chunker_out_of_syncÚ$BaseTestCSV.test_chunker_out_of_syncñ  sÞ   € ð 0ˆà�#�s�Ø�#�s�Ø�%˜�ð
ˆô
    2ž,ˆJà—‘Ø¤LÀDÔ$IÜ(°JÔ?ð  ó AçAJÁÃð ð –=Ð �=ñ 'ô    2ž,ˆJÜ—’œzØ%J÷Lö Là—‘Ø¤{¸jÔ'Ið  ô K÷Lñ Ló '÷L÷ Lð Lús   ÂCÃCrN   N)r~   r   r€   r�   Ú__doc__r¿   Úabstractmethodró   Úpropertyr˜   Ústaticmethodrý   r  r  rR   ÚmarkÚnumpyr,  r7  r=  r‚   rƒ   r„   s   @r   rí   rí   °  s–   ø‡ € ÙNà×Ññ"ó ð"ð Ø×Ññ"ó ó ð"ð ñ+ó ð+ò+
òZg&ðR ‡[�[×Ññf=ó ðf=òP)
÷VKð KrL   rí   c                   óX  a € ] tR tRt o RR/R ltR tR tR tR tR	 t	R
 t
R tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR  t R! t!R" t"R# t#]$PJ                  PL                  R$ 4       t']$PJ                  PL                  R% 4       t(R&t)V t*R'# )(ÚBaseCSVTableReadi  Úvalidate_fullTc               óâ   € \        V P                  \        4      '       g   Q hVP                  R\	        4       4      pV P                  Vn        \        V.VO5/ VB pVP                  VR7       V# )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)rv   r˜   ÚboolÚ
setdefaultr   r   r¦   )rm   rB   rG  r  rò   r  rû   s   &&$*,  r   r   ÚBaseCSVTableRead.read_csv  sf   € ô ˜$×*Ñ*¬D×1Ò1Ð1Ð1Ø×(Ñ(¨¼»ÓGˆØ#'×#3Ñ#3ˆÔ Ü˜Ð.˜tÒ. vÑ.ˆØ�‰˜MˆÔ*ØˆrL   c                óP   € V P                   ! \        P                  ! V4      3/ VB # r   )r   r9   Ú	py_bufferrñ   s   &&,r   ró   ÚBaseCSVTableRead.read_bytes  ó   € Ø�}Š}œRŸ\š\¨!›_Ñ7°Ñ7Ð7rL   c                ó~  € R pR^.R^./p\         P                  ! V4      pV P                  V4      pVP                  4       V8X  g   Q h\         P                  ! VP                  4       4      p\        P                  ! \        4      ;_uu_ 4        V P                  V4       RRR4       R#   + '       g   i     R# ; i)s   a,b
1,2
r¤   r¥   N)	r.   ÚBytesIOr   r
  r/   r$  rR   rS   rá   )rm   ÚdataÚexpected_dataÚbiorû   Úsios   &     r   Útest_file_objectÚ!BaseCSVTableRead.test_file_object  sˆ   € ØˆØ˜q˜c 3¨¨Ð,ˆÜ�jŠj˜ÓˆØ—‘˜cÓ"ˆØ�‰Ó  MÔ1Ð1Ð1ä�kŠk˜$Ÿ+™+›-Ó(ˆÜ�]Š]œ9×%Õ%Ø�M‰M˜#Ô÷ &×%×%Ò%ús   ÂB+Â+B<	c                ó¾   € R pV P                  V4      p\        V\        P                  4      '       g   Q hV P	                  V. RO4       VP
                  ^ 8X  g   Q hR# )ó   abc,def,gh
N)r¿   r¾   r  )ró   rv   r9   r<   rý   r!   ©rm   rl   rû   s   &  r   Útest_headerÚBaseCSVTableRead.test_header*  sO   € ØˆØ—‘ Ó%ˆÜ˜%¤§¡×*Ò*Ð*Ð*Ø×Ñ˜Ò 4Ô5Ø�~‰~ Ô"Ð"Ò"rL   c                ój   € R pR^.R^./pV P                  V4      pVP                  4       V8X  g   Q hR# )s   ï»¿a,b
1,2
r¤   r¥   N©ró   r
  )rm   rl   rU  rû   s   &   r   Útest_bomÚBaseCSVTableRead.test_bom1  s<   € Ø(ˆØ˜q˜c 3¨¨Ð,ˆØ—‘ Ó%ˆØ�‰Ó  MÔ1Ð1Ò1rL   c                ó  € . ROpR Fv  pRV3 Fk  pVP                  V4      V,           pV P                  V4      p\        VP                  4       4      ^8X  g   Q hVP	                  4       R. ROR. RO/8X  d   Kk  Q h	  Kx  	  R# )	ó   a,brL   r¤   r¥   N)rd  s   1,2s   3,4s   56,78)ó   
ó   ó   
)rˆ   rŠ   é8   )r‰   r‹   éN   )r4   ró   rú   Ú
to_batchesr
  )rm   rl   Úline_endingÚfile_endingrT  rû   s   &     r   Útest_one_chunkÚBaseCSVTableRead.test_one_chunk7  s‰   € ò 2ˆÛ2ˆKØ # [Ó1�Ø"×'Ñ'¨Ó-°Õ;�ØŸ™¨Ó-�Ü˜5×+Ñ+Ó-Ó.°!Ô3Ð3Ð3Ø—‘Ó(ØšØšð-ö ð ð ó	  2ó 3rL   c                ó&  € R p\        4       pRR.Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       R. ROR. RO/8X  g   Q h^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       RR.RR./8X  g   Q h^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       R. R. /8X  g   Q h^Vn        \        P                  ! \        P                  4      ;_uu_ 4        V P                  WR7      pRRR4       ^ Vn        . ROVn        \        P                  ! \        P                  R	R
7      ;_uu_ 4        V P                  WR7      pRRR4       Rp^Vn        RR.Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       RRR.RRR./8X  g   Q hR#   + '       g   i     LÂ; i  + '       g   i     L|; i)r   r‘   r®   r  r  r  r  r  NúExpected 3 columns, got 2r    r	  ©r”   r  r  r  ©r•   r  r  r  )r‘   r®   r¹   )
r   rJ   ró   rý   r
  r™   rR   rS   r9   r§   r  s   &   r   Útest_header_column_namesÚ)BaseCSVTableRead.test_header_column_namesE  s	  € Ø.ˆä‹}ˆØ  #˜JˆÔØ—‘ �Ó8ˆØ×Ñ˜  c 
Ô+Ø�‰Ó ØÒ)ØÒ)ð%
ô 
ð 	
ð 
ð
 ˆŒØ—‘ �Ó8ˆØ×Ñ˜  c 
Ô+Ø�‰Ó Ø�$�Ø�$�ð%
ô 
ð 	
ð 
ð
 ˆŒØ—‘ �Ó8ˆØ×Ñ˜  c 
Ô+Ø�‰Ó Ø�Ø�ð%
ô 
ð 	
ð 
ð
 ˆŒÜ�]Š]œ2Ÿ?™?×+Õ+à—O‘O D�OÓ<ˆE÷ ,ð
 ˆŒÚ+ˆÔÜ�]Š]œ2Ÿ?™?Ø!<÷>ö >à—O‘O D�OÓ<ˆE÷>ð
 .ˆØˆŒØ  #˜JˆÔØ—‘ �Ó8ˆØ×Ñ˜  c 
Ô+Ø�‰Ó Ø�$˜�Ø�$˜�ð%
ô 
ð 	
ò 
÷# ,×+ú÷>÷ >ús   Ä G-Å9H Ç-G=	È H	c                ó  € R p\        4       pRVn        V P                  WR7      pV P                  VRR.4       VP	                  4       R. ROR. R	O/8X  g   Q h^Vn        V P                  WR7      pV P                  VRR.4       VP	                  4       RR.RR./8X  g   Q h^Vn        \        P                  ! \        P                  4      ;_uu_ 4        V P                  WR7      pRRR4       R#   + '       g   i     R# ; i)
r   Tr  r  r  r  r  Nrq  rr  )
r   rš   ró   rý   r
  r™   rR   rS   r9   r§   r  s   &   r   Ú%test_header_autogenerate_column_namesÚ6BaseCSVTableRead.test_header_autogenerate_column_namesx  sø   € Ø.ˆä‹}ˆØ)-ˆÔ&Ø—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó ØÒ*ØÒ*ð%
ô 
ð 	
ð 
ð
 ˆŒØ—‘ �Ó8ˆØ×Ñ˜  t Ô-Ø�‰Ó Ø�4�&Ø�4�&ð%
ô 
ð 	
ð 
ð ˆŒÜ�]Š]œ2Ÿ?™?×+Õ+Ø—O‘O D�OÓ<ˆE÷ ,×+×+Ò+ús   ÃC3Ã3D	c                ó„  € R p\        4       pR.Vn        V P                  WR7      pV P                  VR.4       VP	                  4       R. RO/8X  g   Q hRR.Vn        V P                  WR7      p\
        P                  ! R\
        P                  ! 4       3R\
        P                  ! 4       3.4      pVP                  V8X  g   Q hVP	                  4       R. ROR. RO/8X  g   Q h. R	OVn        \        P                  ! \        RR7      ;_uu_ 4        V P                  WR7       RRR4       R#   + '       g   i     R# ; i)
r   r”   ©r!  r•   z9Column 'xx' in include_columns does not exist in CSV filer    N©r  r  r  ©r  r  r  ©Úxxr”   Úyy)r
   rÄ   ró   rý   r
  r9   rÞ   r   rR   rS   ÚKeyError)rm   rl   r!  rû   rÞ   s   &    r   Útest_include_columnsÚ%BaseCSVTableRead.test_include_columns‘  s.  € Ø.ˆä(Ó*ˆØ+/¨&ˆÔ'Ø—‘ �ÓFˆØ×Ñ˜  Ô'Ø�‰Ó ØÒ$ð%
ô 
ð 	
ð 
ð
 ,0°¨,ˆÔ'Ø—‘ �ÓFˆÜ—’˜T¤2§9¢9£;Ð/Ø!¤2§9¢9£;Ð/ð1ó 2ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó ØÒ$ØÒ$ð%
ô 
ð 	
ð 
ò +=ˆÔ'Ü�]Š]œ8ð">÷?ö ?ð �O‰O˜DˆOÔB÷?÷ ?÷ ?ò ?ús   ÄD.Ä.D?	c                ó6  € R p\        4       p\        4       p. ROVn        RVn        V P	                  WVR7      p\
        P                  ! R\
        P                  ! 4       3R\
        P                  ! 4       3R\
        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       R. R	OR. R
OR. R	O/8X  g   Q hRR.Vn
        RR.Vn        V P	                  WVR7      p\
        P                  ! R\
        P                  ! 4       3R\
        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       R. ROR. RO/8X  g   Q hR\
        P                  ! 4       R\
        P                  ! 4       /Vn        V P	                  WVR7      p\
        P                  ! R\
        P                  ! 4       3R\
        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       R. ROR. RO/8X  g   Q hR# )r   r}  r”   r~  Tr   Nr•   r|  ©NNNrz  rr  )NNNN)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_columnsÚ-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Ô%Ð%Ð%Ø�‰Ó ØÒ*ØÒ*ð%
ô 
ð 	
ð 
ð )-¬b¯iªi«kØ(,¬b¯hªh«jð(:ˆÔ$à—‘ Ø0?ð  ó Aˆä—’˜T¤2§9¢9£;Ð/Ø!¤2§8¢8£:Ð.ð0ó 1ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó ØÒ.ØÒ*ð%
ô 
ð 	
ò 
rL   c                óH  € R pV P                  V4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP	                  4       R^^.R^^.R^^./8X  g   Q hR# )s   a,b,c
1,2,3
4,5,6
r¤   r¥   rÉ   N)ró   r9   rÞ   r;   r
  ©rm   rl   rû   rÞ   s   &   r   Útest_simple_intsÚ!BaseCSVTableRead.test_simple_intsÛ  sž   € à'ˆØ—‘ Ó%ˆÜ—’˜S¤"§(¢(£*Ð-Ø ¤"§(¢(£*Ð-Ø ¤"§(¢(£*Ð-ð/ó 0ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø�!�Q�Ø�!�Q�Ø�!�Q�ð%
ô 
ð 	
ò 
rL   c           
     ó|  € R pV P                  V4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P
                  ! 4       3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       RRR.R^R.RRR.RR	R
./8X  g   Q hR# )s    a,b,c,d
1,2,3,0
4.0,-5,foo,True
r¤   r¥   rÉ   r#  ç      ð?g      @Ú3ÚfooFTNéûÿÿÿ)ró   r9   rÞ   Úfloat64r;   r   Úbool_r
  rˆ  s   &   r   Útest_simple_variedÚ#BaseCSVTableRead.test_simple_variedé  sµ   € à5ˆØ—‘ Ó%ˆÜ—’˜S¤"§*¢*£,Ð/Ø ¤"§(¢(£*Ð-Ø ¤"§)¢)£+Ð.Ø ¤"§(¢(£*Ð-ð/ó 0ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø�#�s�Ø�!�R�Ø�#�u�Ø�%˜�ð	%
ô 
ð 	
ò 
rL   c                óä  € R pV P                  V4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P
                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       R. ROR. R	OR. R
OR. ROR. ROR. RO/8X  g   Q hR# )sC   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#  r0  ÚfN)rŒ  Ng      @)r‰   r�  N)rÍ   rŽ  Únanrƒ  )ó   3s   nanó   ÿ)NTF)
ró   r9   rÞ   r�  r;   r   rÌ   rà   r‘  r
  rˆ  s   &   r   Útest_simple_nullsÚ"BaseCSVTableRead.test_simple_nullsù  sÔ   € ð.ˆð —‘ Ó%ˆÜ—’˜S¤"§*¢*£,Ð/Ø ¤"§(¢(£*Ð-Ø ¤"§)¢)£+Ð.Ø ¤"§'¢'£)Ð,Ø ¤"§)¢)£+Ð.Ø ¤"§(¢(£*Ð-ð/ó 0ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó ØÒ!Ø’ØÒ#ØÒ#ØÒ(ØÒ$ð%
ô 
ð 	
ò 
rL   c                óT  € \        R R7      pRpV P                  W!R7      p\        P                  ! R\        P                  ! 4       3R\        P
                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       R. R
OR. RO/8X  g   Q h\        RR7      pV P                  W!VR	7      p\        P                  ! R\        P
                  ! 4       3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       R. ROR. RO/8X  g   Q hR# )Ú;©r¯   s   a;b
1.25;2,5
NA;-3
-4;NAr/  r¤   r¥   Nr)   )rÃ   )r  r!  )g      ô?Ng      À)z2,5z-3ÚNA)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_pointÚ#BaseCSVTableRead.test_decimal_point  s  € ä$¨sÔ3ˆØ-ˆà—‘ �ÓBˆÜ—’˜S¤"§*¢*£,Ð/Ø ¤"§)¢)£+Ð.ð0ó 1ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó ØÒ#ØÒ$ð%
ô 
ð 	
ð 
ô
 )°sÔ;ˆØ—‘ Ø0?ð  ó Aˆä—’˜S¤"§)¢)£+Ð.Ø ¤"§*¢*£,Ð/ð1ó 2ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó ØÒ%ØÒ"ð%
ô 
ð 	
ò 
rL   c                ó¶  € R pV P                  V4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! R4      3R\        P                  ! R4      3.4      pVP                  V8X  g   Q hVP                  4       RRR.R\        R^^4      \        R^^^4      .R\        R^^^ ^ ^ R4      \        R^^^^ ^ R	4      ./8X  g   Q hR
# )sk   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Å  ixà é@â N)ró   r9   rÞ   r;   Ú	timestampr
  r   rˆ  s   &   r   Útest_simple_timestampsÚ'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           
     ó$  € R p\        4       pV P                  WR7      p\        P                  ! R\        P                  ! 4       3R\        P
                  ! R4      3.4      pVP                  V8X  g   Q hVP                  4       RRR.R\        R^^4      \        R^^4      ./8X  g   Q hR.Vn        V P                  WR7      p\        P                  ! R\        P
                  ! R4      3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       R\        R	^^4      \        R	^^4      .RR
R./8X  g   Q hR\        .Vn        V P                  WR7      p\        P                  ! R\        P
                  ! R4      3R\        P
                  ! R4      3.4      pVP                  V8X  g   Q hVP                  4       R\        R	^^4      \        R	^^4      .R\        R^^4      \        R^^4      ./8X  g   Q hR# )s6   a,b
1970/01/01,1980-01-01 00
1970/01/02,1980-01-02 00
ry  r¤   r¥   r¢  z
1970/01/01z
1970/01/02i¼  z%Y/%m/%dr¤  z1980-01-01 00z1980-01-02 00N)
r
   ró   r9   rÞ   r   r¦  r
  r   rÇ   r   )rm   rl   rX   rû   rÞ   s   &    r   Útest_timestamp_parsersÚ'BaseCSVTableRead.test_timestamp_parsers:  s  € àKˆÜÓˆà—‘ �Ó;ˆÜ—’˜S¤"§)¢)£+Ð.Ø ¤"§,¢,¨sÓ"3Ð4ð6ó 7ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø�, Ð-Ø”(˜4  AÓ&¬°°q¸!Ó(<Ð=ð%
ô 
ð 	
ð 
ð
 #- ˆÔØ—‘ �Ó;ˆÜ—’˜S¤"§,¢,¨sÓ"3Ð4Ø ¤"§)¢)£+Ð.ð0ó 1ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø”(˜4  AÓ&¬°°q¸!Ó(<Ð=Ø�/ ?Ð3ð%
ô 
ð 	
ð 
ð
 #-¬gÐ!6ˆÔØ—‘ �Ó;ˆÜ—’˜S¤"§,¢,¨sÓ"3Ð4Ø ¤"§,¢,¨sÓ"3Ð4ð6ó 7ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø”(˜4  AÓ&¬°°q¸!Ó(<Ð=Ø”(˜4  AÓ&¬°°q¸!Ó(<Ð=ð%
ô 
ð 	
ò 
rL   c           
     ó(  € R pV P                  V4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP	                  4       R\        R^^4      \        R^^4      .R\        R^^4      \        R^^4      ./8X  g   Q h\        4       pR\        P                  ! 4       R\        P                  ! 4       /Vn        V P                  WR7      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP	                  4       R\        R^^4      \        R^^4      .R\        R^^4      \        R^^4      ./8X  g   Q h\        4       pR\        P                  ! R4      R\        P                  ! R4      /Vn        V P                  WR7      p\        P                  ! R\        P                  ! R4      3R\        P                  ! R4      3.4      pVP                  V8X  g   Q hVP	                  4       R\        R^^4      \        R^^4      .R\        R^^4      \        R^^4      ./8X  g   Q hR# )	s0   a,b
1970-01-01,1970-01-02
1971-01-01,1971-01-02
r¤   r¥   r¤  i³  ry  r¢  ÚmsN)ró   r9   rÞ   Údate32r
  r   r
   Údate64r×   r¦  r   )rm   rl   rû   rÞ   rX   s   &    r   Ú
test_datesÚBaseCSVTableRead.test_dates\  sQ  € àEˆØ—‘ Ó%ˆÜ—’˜S¤"§)¢)£+Ð.Ø ¤"§)¢)£+Ð.ð0ó 1ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø”$�t˜Q Ó"¤D¨¨q°!Ó$4Ð5Ø”$�t˜Q Ó"¤D¨¨q°!Ó$4Ð5ð%
ô 
ð 	
ð 
ô ÓˆØ ¤"§)¢)£+¨s´B·I²I³KÐ@ˆÔØ—‘ �Ó;ˆÜ—’˜S¤"§)¢)£+Ð.Ø ¤"§)¢)£+Ð.ð0ó 1ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø”$�t˜Q Ó"¤D¨¨q°!Ó$4Ð5Ø”$�t˜Q Ó"¤D¨¨q°!Ó$4Ð5ð%
ô 
ð 	
ð 
ô ÓˆØ ¤"§,¢,¨sÓ"3°S¼"¿,º,ÀtÓ:LÐMˆÔØ—‘ �Ó;ˆÜ—’˜S¤"§,¢,¨sÓ"3Ð4Ø ¤"§,¢,¨tÓ"4Ð5ð7ó 8ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø”(˜4  AÓ&¬°°q¸!Ó(<Ð=Ø”(˜4  AÓ&¬°°q¸!Ó(<Ð=ð%
ô 
ð 	
ò 
rL   c                ó  € ^ RI Hp RpV P                  V4      p\        P                  ! R\        P
                  ! R4      3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       RV! ^^"^84      V! ^^;^;4      .RRR./8X  g   Q h\        4       pR\        P                  ! R4      R\        P
                  ! R	4      /Vn
        V P                  W%R
7      p\        P                  ! R\        P                  ! R4      3R\        P
                  ! R	4      3.4      pVP                  V8X  g   Q hVP                  4       RV! ^^"^84      V! ^^;^;4      .RV! ^^"^8R4      V! ^^;^;R4      ./8X  g   Q hR# )r   )Útimes0   a,b
12:34:56,12:34:56.789
23:59:59,23:59:59.999
r¤   r¢  r¥   z12:34:56.789z23:59:59.999Úusr­  ry  i
 iX> N)r   r³  ró   r9   rÞ   Útime32r   r
  r
   Útime64r×   )rm   r³  rl   rû   rÞ   rX   s   &     r   Ú
test_timesÚBaseCSVTableRead.test_times€  sw  € å!àEˆØ—‘ Ó%ˆä—’˜S¤"§)¢)¨C£.Ð1Ø ¤"§)¢)£+Ð.ð0ó 1ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø‘$�r˜2˜rÓ"¡D¨¨R°Ó$4Ð5Ø�. .Ð1ð%
ô 
ð 	
ð 
ô ÓˆØ ¤"§)¢)¨D£/°3¼¿	º	À$»ÐHˆÔØ—‘ �Ó;ˆÜ—’˜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                óä  € \        R R7      pRP                  4       pV P                  W!R7      p\        P                  ! R\        P
                  ! \        P                  ! 4       \        P                  ! 4       4      3R\        P                  ! 4       3.4      pR. ROR. RO/pVP                  V8X  g   Q hVP                  4       V8X  g   Q h^Vn
        V P                  W!R7      pVP                  V8X  g   Q hVP                  4       V8X  g   Q h^Vn
        V P                  W!R7      pVP                  \        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      8X  g   Q hVP                  4       V8X  g   Q h^2Vn
        RVn        RpV P                  W!RR	7      pVP                  V8X  g   Q hVR,          P                  ^ 4      P
                  p\        V4      ^8X  g   Q hV^ ,          P                  4       R8X  g   Q hV^,          P                  4       R
8X  g   Q hR Vn        V P                  W!R7      p\        P                  ! R\        P
                  ! \        P                  ! 4       \        P                   ! 4       4      3R\        P                  ! 4       3.4      pR. ROR. RO/pVP                  V8X  g   Q hVP                  4       V8X  g   Q hR# )T)rÆ   u   a,b
ab,1
cdÃ©,2
cdÃ©,3
ab,4ry  r¤   r¥   r”   Fs   a,b
ab,1
cdÿ,2
ab,3)r!  rG  ó   cdÿN)r”   õ   cdÃ©r»  r”   )rˆ   r‰   rŠ   r‹   )ó   abrº  r¼  ©rˆ   r‰   rŠ   )r
   r8   ró   r9   rÞ   Ú
dictionaryrß   r   r;   r
  rÛ   rÀ   Úchunkrú   Úas_pyÚ	as_bufferrà   )rm   rX   rl   rû   rÞ   rF   Údict_valuess   &      r   Útest_auto_dict_encodeÚ&BaseCSVTableRead.test_auto_dict_encode›  s�  € Ü¨tÔ4ˆØ0×7Ñ7Ó9ˆØ—‘ �Ó;ˆÜ—’˜S¤"§-¢-´·²³
¼B¿IºI»KÓ"HÐIØ ¤"§(¢(£*Ð-ð/ó 0ˆð Ò-Ø’ð
ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó  HÔ,Ð,Ð,à)*ˆÔ&Ø—‘ �Ó;ˆØ�|‰|˜vÔ%Ð%Ð%Ø�‰Ó  HÔ,Ð,Ð,ð *+ˆÔ&Ø—‘ �Ó;ˆØ�|‰|œrŸyšy¨3´·	²	³Ð*<Ø+.´·²³
Ð*;ð*=ó  >ô >ð 	>ð >à�‰Ó  HÔ,Ð,Ð,ð *,ˆÔ&ØˆŒØ+ˆØ—‘ Ø.3ð  ó 5ˆà�|‰|˜vÔ%Ð%Ð%Ø˜C•j×&Ñ& qÓ)×4Ñ4ˆÜ�;Ó 1Ô$Ð$Ð$Ø˜1�~×#Ñ#Ó%¨Ô-Ð-Ð-Ø˜1�~×'Ñ'Ó)¨YÔ6Ð6Ð6ð ˆŒØ—‘ �Ó;ˆÜ—’˜S¤"§-¢-´·²³
¼B¿IºI»KÓ"HÐIØ ¤"§(¢(£*Ð-ð/ó 0ˆð Ò*Ø’ð
ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó  HÔ,Ð,Ò,rL   c           
     óÎ  € \        R R.R7      pRpV P                  W!R7      p\        P                  ! R\        P                  ! 4       3R\        P
                  ! 4       3R\        P
                  ! 4       3R\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       RR	R	.RR R
.RRR.R^R	./8X  g   Q h\        R R.RR7      pV P                  W!R7      pVP                  4       RR	R	.RR	R
.RRR.R^R	./8X  g   Q hRVn        V P                  W!R7      pVP                  4       RR	R	.RR R
.RRR.R^R	./8X  g   Q h\        . R7      pRpV P                  W!R7      p\        P                  ! R\        P
                  ! 4       3R\        P
                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       RR
.RR./8X  g   Q hR	# )ÚXxxÚZzz)rØ   s$   a,b,c,d
Zzz,"Xxx",1,2
Xxx,#N/A,,Zzz
ry  r¤   r¥   rÉ   r#  Nz#N/AÚ1rÍ   T)rØ   rÁ   Fs
   a,b
#N/A,
)	r
   ró   r9   rÞ   rÌ   r   r;   r
  rÂ   ©rm   rX   rl   rû   rÞ   s   &    r   Útest_custom_nullsÚ"BaseCSVTableRead.test_custom_nullsÌ  s  € ä¨5°%¨.Ô9ˆØ=ˆØ—‘ �Ó;ˆÜ—’˜S¤"§'¢'£)Ð,Ø ¤"§)¢)£+Ð.Ø ¤"§)¢)£+Ð.Ø ¤"§(¢(£*Ð-ð/ó 0ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø�$˜�Ø�%˜�Ø�#�r�Ø�!�T�ð	%
ô 
ð 	
ð 
ô ¨5°%¨.Ø26ô8ˆà—‘ �Ó;ˆØ�‰Ó Ø�$˜�Ø�$˜�Ø�#�r�Ø�!�T�ð	%
ô 
ð 	
ð 
ð +0ˆÔ'Ø—‘ �Ó;ˆØ�‰Ó Ø�$˜�Ø�%˜�Ø�#�r�Ø�!�T�ð	%
ô 
ð 	
ð 
ô ¨"Ô-ˆØˆØ—‘ �Ó;ˆÜ—’˜S¤"§)¢)£+Ð.Ø ¤"§)¢)£+Ð.ð0ó 1ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó Ø�&�Ø�"�ð%
ô 
ð 	
ò 
rL   c                ól  € \        R R.RR.R7      pRpV P                  W!R7      p\        P                  ! R\        P                  ! 4       3R\        P
                  ! 4       3R	\        P                  ! 4       3.4      pVP                  V8X  g   Q hVP                  4       R. ROR. ROR	. RO/8X  g   Q hR
# )rÓ   Ú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
ry  r¤   r¥   rÉ   N)ÚTrueÚFalserÏ  rÐ  rÎ   )TFTFN)Útr•  rÍ  rÎ  rÎ   )r
   ró   r9   rÞ   r   r‘  r
  rÉ  s   &    r   Útest_custom_boolsÚ"BaseCSVTableRead.test_custom_boolsú  s²   € ä¨3°¨,Ø,/°¨;ô8ˆð!ˆð —‘ �Ó;ˆÜ—’˜S¤"§)¢)£+Ð.Ø ¤"§(¢(£*Ð-Ø ¤"§)¢)£+Ð.ð0ó 1ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó ØÒ:ØÒ1ØÒ/ð%
ô 
ð 	
ò 
rL   c                óÒ  € \        R RRRRRR\        P                  ! ^^4      RR/R	7      pR
pV P                  W!R7      p\        P                  ! R\        P
                  ! 4       3R \        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! ^^4      3.4      pR^^.R RR.RRR.RRR.R\        R4      \        R4      ./pVP                  V8X  g   Q hVP                  4       V8X  g   Q h\        \        P                  ! R \        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! ^^4      3R\        P                  ! 4       3.4      R	7      pV P                  W!R7      pVP                  V8X  g   Q hVP                  4       V8X  g   Q hRp\        P                  ! \        P                  4      ;_uu_ 4       pV P                  W!R7       RRR4       \        XP                  4      pRV9   g   Q hRV9   g   Q hR#   + '       g   i     L9; i)r¥   rÝ   rÉ   r   r#  Úbooleanr0  ÚzzrÌ   ©r×   s(   a,b,c,d,e
1,2,3,true,1.0
4,-5,6,false,0
ry  r¤   ç       @r�  Ú6TFú1.00z0.00s(   a,b,c,d,e
1,XXX,3,true,5
4,-5,6,false,7
NzIn CSV column #1: z2CSV conversion error to float: invalid value 'XXX'g      À)r
   r9   Ú
decimal128ró   rÞ   r;   rÝ   r   r‘  r   r
  rR   rS   r§   r6   r]   )rm   rX   rl   rû   rÞ   rF   ÚexcÚerrs   &       r   Útest_column_typesÚ"BaseCSVTableRead.test_column_types  s  € ä¨C°Ø,/°Ø,/°Ø,/´·²¸rÀ1Ó1EØ,0°&ð	,:ô ;ˆð
 >ˆØ—‘ �Ó;ˆÜ—’˜S¤"§(¢(£*Ð-Ø ¤"§*¢*£,Ð/Ø ¤"§)¢)£+Ð.Ø ¤"§(¢(£*Ð-Ø ¤"§-¢-°°AÓ"6Ð7ð	9ó :ˆð �!�Q�Ø�#�t�Ø�#�s�Ø�$˜�Ø”'˜&“/¤7¨6£?Ð3ð
ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó  HÔ,Ð,Ð,äÜŸš S¬"¯*ª*«,Ð$7Ø%(¬"¯)ª)«+Ð$6Ø%(¬"¯(ª(«*Ð$5Ø%(¬"¯-ª-¸¸AÓ*>Ð$?Ø%)¬2¯8ª8«:Ð$6ð	$8ó 9ô:ˆð —‘ �Ó;ˆØ�|‰|˜vÔ%Ð%Ð%Ø�‰Ó  HÔ,Ð,Ð,à=ˆÜ�]Š]œ2Ÿ?™?×+Ô+¨sØ�O‰O˜DˆOÔ7÷ ,ä�#—)‘)‹nˆØ# sÔ*Ð*Ð*ØCÀsÔJÐJÒJ÷	 ,×+ús   ÈIÉI&	c           
     ó|  € R \         P                  ! \         P                  ! 4       \         P                  ! 4       4      3R\         P                  ! \         P                  ! 4       \         P                  ! 4       4      3R\         P                  ! \         P                  ! 4       \         P
                  ! ^^4      4      3R\         P                  ! \         P                  ! 4       \         P                  ! 4       4      3.p\        \        V4      R7      pRpV P                  W2R7      p\         P                  ! V4      pR . R
OR. ROR\        R4      \        R	4      \        R4      .R. RO/pVP                  V8X  g   Q hVP                  4       V8X  g   Q hR \         P                  ! \         P                  ! 4       \         P                  ! 4       4      3V^ &   \        \        V4      R7      p\        P                  ! \         4      ;_uu_ 4        V P                  W2R7      pRRR4       R#   + '       g   i     R# ; i)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
ry  NrÚ  z0.50)r¿   Údefgr¿   )r¥  r¥  N)rÖ  r}  r}  )r9   r¾  rß   r–   r;   rÛ  Ú
large_utf8r
   Údictró   rÞ   r   r
  Úint8rR   rS   rð   )rm   r×   rX   rl   rû   rÞ   rF   s   &      r   Útest_column_types_dictÚ'BaseCSVTableRead.test_column_types_dict8  sƒ  € ð ”"—-’-¤§¢£
¬B¯GªG«IÓ6Ð7Ø”"—-’-¤§¢£
¬B¯HªH«JÓ7Ð8Ø”"—-’-¤§¢£
¬B¯MªM¸"¸aÓ,@ÓAÐBØ”"—-’-¤§¢£
¬B¯MªM«OÓ<Ð=ð	?ˆô ¬4°Ó+=Ô>ˆð$ˆð —‘ �Ó;ˆä—’˜<Ó(ˆàÒ'ØÒ'Ø”'˜&“/¤7¨6£?´G¸F³OÐDØÒ#ð	
ˆð �|‰|˜vÔ%Ð%Ð%Ø�‰Ó  HÔ,Ð,Ð,ð ¤§¢¬b¯gªg«i¼¿º»Ó CÐDˆ�Q‰ä¬4°Ó+=Ô>ˆÜ�]Š]Ô.×/Õ/Ø—O‘O D�OÓ?ˆE÷ 0×/×/Ò/ús   ÈH*È*H;	c                óv  € R p\        RR.R7      p\        R\        P                  ! 4       /R7      pV P	                  WVR7      p\        P
                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP
                  V8X  g   Q hVP                  4       R. ROR. RO/8X  g   Q hR# )	s   a,b
c,d
e,f
r‘   r®   ©rJ   r×  r   N)ó   aó   có   e)r¥   r#  r•  )r   r
   r9   rà   ró   rÞ   r   r
  r„  s   &     r   Ú#test_column_types_with_column_namesÚ4BaseCSVTableRead.test_column_types_with_column_namesX  s®   € ð "ˆÜ"°°c°
Ô;ˆÜ(°s¼B¿IºI»KÐ6HÔIˆØ—‘ Ø0?ð  ó Aˆä—’˜S¤"§)¢)£+Ð.Ø ¤"§)¢)£+Ð.ð0ó 1ˆà�|‰|˜vÔ%Ð%Ð%Ø�‰Ó ØÒ#Ø’ð%
ô 
ð 	
ò 
rL   c                ór   € R pV P                  V4      pVP                  4       R^^.R^^.R^^./8X  g   Q hR# ©ó   a,b,c
1,2,3
4,5,6r¤   r¥   rÉ   Nr`  r\  s   &  r   Útest_no_ending_newlineÚ'BaseCSVTableRead.test_no_ending_newlineh  sN   € à%ˆØ—‘ Ó%ˆØ�‰Ó Ø�!�Q�Ø�!�Q�Ø�!�Q�ð%
ô 
ð 	
ò 
rL   c                ó^   € R pV P                  V4      pVP                  4       R. /8X  g   Q hR# )s   ,

rÍ   Nr`  r\  s   &  r   Útest_trivialÚBaseCSVTableRead.test_trivialr  s.   € àˆØ—‘ Ó%ˆØ�‰Ó  R¨ HÔ,Ð,Ò,rL   c                ó`  € R pV P                  V4      pVP                  4       R^^.R^^./8X  g   Q h\        RR7      pV P                  WR7      pVP                  4       R. ROR. RO/8X  g   Q h\        ^R7      pV P                  WVR7      pVP                  4       R	R^.R
R^./8X  g   Q hR# )s   a,b
1,2

3,4
r¤   r¥   F)r´   r/  N)r™   r<  rÈ  Ú2)Nrˆ   NrŠ   )Nr‰   Nr‹   )ró   r
  r	   r   )rm   rl   rû   r  r  s   &    r   Útest_empty_linesÚ!BaseCSVTableRead.test_empty_linesx  sß   € Ø+ˆØ—‘ Ó%ˆØ�‰Ó Ø�!�Q�Ø�!�Q�ð%
ô 
ð 	
ð 
ô %¸Ô>ˆØ—‘ �ÓBˆØ�‰Ó ØÒ#ØÒ#ð%
ô 
ð 	
ð 
ô #¨QÔ/ˆØ—‘ Ø-9ð  ó ;ˆà�‰Ó Ø�$˜�Ø�$˜�ð%
ô 
ð 	
ò 
rL   c                óD  € R p\         P                  ! \        P                  RR7      ;_uu_ 4        V P	                  V4       RRR4       Rp\         P                  ! \        P                  RR7      ;_uu_ 4        V P	                  V4       RRR4       R FK  p\         P                  ! \        P                  RR7      ;_uu_ 4        V P	                  V4       RRR4       KM  	  R#   + '       g   i     L­; i  + '       g   i     Lv; i  + '       g   i     Kˆ  ; i)s   a,b,c
1,2
4,5,6
rp  r    Ns   a,b,c
1,2,3
4zExpected 3 columns, got 1úEmpty CSV file)rL   re  rg  rf  s   

)rR   rS   r9   r§   ró   )rm   rl   s   & r   Útest_invalid_csvÚ!BaseCSVTableRead.test_invalid_csv�  s²   € à%ˆÜ�]Š]œ2Ÿ?™?Ð2M×NÖNØ�O‰O˜DÔ!÷ Oà!ˆÜ�]Š]œ2Ÿ?™?Ð2M×NÖNØ�O‰O˜DÔ!÷ Oã9ˆDÜ—’œrŸ™Ð6F×GÖGØ—‘ Ô%÷ HÑGó :÷ O×Nú÷ O×Nú÷ H×GÐGús#   ±C(Á;C;ÃDÃ(C8	Ã;D	ÄDc                óÜ   € R pV P                  V4      pVP                  4       RR.RR./8X  g   Q h\        RR7      pV P                  WR7      pVP                  4       RR	.R
R./8X  g   Q hR# )ó   a;b,c
de,fg;eh
úa;bÚderÉ   úfg;ehrœ  r�  r/  r¤   úde,fgúb,cÚehN)ró   r
  r	   )rm   rl   rû   rX   s   &   r   Útest_options_delimiterÚ'BaseCSVTableRead.test_options_delimiter™  s‰   € Ø#ˆØ—‘ Ó%ˆØ�‰Ó Ø�D�6Ø�'�ð%
ô 
ð 	
ð 
ô  cÔ*ˆØ—‘ �Ó9ˆØ�‰Ó Ø�'�Ø�D�6ð%
ô 
ð 	
ò 
rL   c                óü   € \        ^^
R7      w  rV P                  V4      pVP                  VP                  8X  g   Q hVP                  V4      '       g   Q hVP	                  4       VP	                  4       8X  g   Q hR# ©r‰   r  N)rG   ró   rÞ   Úequalsr
  )rm   rB   rF   rû   s   &   r   Útest_small_random_csvÚ&BaseCSVTableRead.test_small_random_csv§  sg   € Ü'°¸RÔ@‰ˆØ—‘ Ó$ˆØ�|‰|˜xŸ™Ô.Ð.Ð.Ø�|‰|˜H×%Ò%Ð%Ð%Ø�‰Ó  H×$6Ñ$6Ó$8Ô8Ð8Ò8rL   c                óf  € \        ^RR7      w  r. ROpWP                  R4      .pV F…  pV F|  p\        VR7      pV P                  WWR7      pVP                  VP                  8X  g   Q hVP                  V4      '       d   KW  VP                  4       VP                  4       8X  d   K|  Q h	  K‡  	  R# )r‰   éô  r  rg  rž   r  N)é   é   é   é   é%   éo   )rG   Úrstripr   ró   rÞ   r
  r
  )	rm   Úcsv_baserF   Úblock_sizesÚcsvsrB   rŸ   r  rû   s	   &        r   Útest_stress_block_sizesÚ(BaseCSVTableRead.test_stress_block_sizes®  s˜   € ä,°aÀ#ÔFÑˆÚ/ˆØŸ/™/¨'Ó2Ð3ˆÛˆCÛ)�
Ü*°jÔA�ØŸ™¨˜ÓG�Ø—|‘| x§¡Ô6Ð6Ð6Ø—|‘| H×-Ô-à Ÿ?™?Ó,°×0BÑ0BÓ0DÖDÐDÐDó *ó rL   c                ó  €  \         P                  pR p\        V4       Uu. uF  pRV 2NK
  	  pp\	        V4      pV! 4       p\        VR,           Uu/ uF  qw\        P                  ! 4       bK  	  upR7      pV P                  WXR7      p	V! 4       V,
          p
V
R8:  g   Q hV	P                  V8X  g   Q hV	P                  ^ 8X  g   Q hV	P                  V8X  g   Q hR#   \         d    \         P                   p Lèi ; iu upi u upi )i'  ÚK:NNr‰   r×  ry  ç      $@N)r³  Úthread_timerT   r   rK   r
   r9   r   ró   rù   r!   rJ   )rm   Úclockrù   r"   rC   rB   Út1Úkr!  rû   Údts   &          r   Ú"test_stress_convert_options_blowupÚ3BaseCSVTableRead.test_stress_convert_options_blowup¼  sû   € ð	Ü×$Ñ$ˆEð ˆÜ&+¨KÔ&8Ó9Ñ&8 �q˜˜“WÑ&8ˆ	Ð9Ü˜YÓ'ˆÙ‹WˆÜ(Ø2;¸C¶.ÓA±.¨QœRŸYšY›[š.±.ÑAôCˆà—‘ �ÓEˆÙ‹W�r�\ˆð �TŒzÐˆzà× Ñ  KÔ/Ð/Ð/Ø�~‰~ Ô"Ð"Ð"Ø×!Ñ! YÔ.Ð.Ò.øô# ô 	Ü—I‘IŠEð	üò :ùò Bs   ‚C ¡C>ÁDÃC;Ã:C;c           
     óX  € \         P                  ! 4       P                  \         P                  ! 4       P                  8w  d   \        P
                  ! R 4       R pRpRp^ pVR8  dÖ   V^
8  dÏ   \        RV4       RRV,          ,           pRp \        P                  ! 4       ;_uu_ 4       p \         P                  ! VR	7      pVP                  4        \        P                  ! 4       p	 V P                  V4       \        P                  ! V.. V.R
4        RRR4       Te   TP                  e   MT^,          pKÜ  Xf   \        P                   ! R4       VR8:  g   Q hVP                  p
\#        V
\$        P&                  4      '       g   Q hV
P(                  \*        P,                  8X  g   Q hR#   \         d)   p
T
p\        P                  ! 4       T	,
          p Rp
?
LäRp
?
ii ; i  \        P                  ! T.. T.R
4       i ; i  + '       g   i     Lø; i  \         d     EL	i ; i)z'test only works from main Python threadc                  óz   € \         P                  ! R 4       \        P                  ! \        P                  4       R# )gš™™™™™É?N)r³  ÚsleepÚsignalÚraise_signalÚSIGINTrN   rL   r   Úsignal_from_threadÚ>BaseCSVTableRead.test_cancellation.<locals>.signal_from_threadÚ  s   € ä�JŠJ�sŒOÜ×Ò¤§¡Ö.rL   g        i † g      @zworkload size:s   a,b,c
s   1,2,3
N©Útargetr  z0Failed to get an interruption during CSV readingrØ  )Ú	threadingÚcurrent_threadÚidentÚmain_threadrR   r­   Úprintr   Úsignal_wakeup_fdÚThreadÚstartr³  ró   ÚKeyboardInterruptÚselectÚ__context__Úfailrv   r9   ÚArrowCancelledÚsignumr(  r*  )rm   r+  Úlast_durationÚworkload_sizeÚattemptsÚ	large_csvÚexc_infoÚsigfdrÑ  r   r0  s   &          r   Útest_cancellationÚ"BaseCSVTableRead.test_cancellationÔ  sÊ  € ä×$Ò$Ó&×,Ñ,Ü×%Ò%Ó'×-Ñ-ô.ä�KŠKÐAÔBò	/ð ˆØˆØˆà˜cÔ! h°¤mÜÐ" MÔ2Ø" Z°-Õ%?Õ?ˆIØˆHðô ×*Ò*×,Ô,°ðBÜ%×,Ò,Ð4FÔG˜ØŸ™œ	Ü!ŸYšY›[˜ð=Ø ŸO™O¨IÔ6ô Ÿš u g¨r°E°7¸DÕA÷ -ð( Ò#ð ×'Ñ'Ò3àð *¨AÕ-ŠMàÒÜ�KŠKÐJÔKð  Ô#Ð#Ð#Ø× Ñ ˆÜ˜!œR×.Ñ.×/Ò/Ð/Ð/Ø�x‰xœ6Ÿ=™=Ô(Ð(Ò(øô?  1ô =Ø'(˜HÜ,0¯IªI«K¸"Õ,<�Mûð=ûô Ÿš u g¨r°E°7¸DÕAú÷ -×,ûô  %ô âðúsl   ÂH Â+HÂ-<G'Ã*F1Ã;HÄH Æ1G$Æ<GÇG'ÇG$Ç$G'Ç'HÈHÈH	ÈH ÈH ÈH)È(H)c                ó~   a € \         P                  ! V 3R  lR7      pVP                  4        VP                  4        R# )c                  ó&   <€ S P                  R 4      # )s   f64
0.1)ró   rö   s   €r   Ú<lambda>Ú=BaseCSVTableRead.test_cancellation_disabled.<locals>.<lambda>  s   ø€ ˜4Ÿ?™?¨;Ô7rL   r-  N)r/  r5  r6  r4   )rm   rÑ  s   f r   Útest_cancellation_disabledÚ+BaseCSVTableRead.test_cancellation_disabled  s*   ø€ ô
 ×ÒÜ7ô9ˆà	�‰Œ	Ø	�‰ŽrL   rN   N)+r~   r   r€   r�   r   ró   rX  r]  ra  rm  rs  rv  r€  r…  r‰  r’  r™  rŸ  r§  rª  r°  r·  rÃ  rÊ  rÒ  rÞ  rå  rì  rñ  rô  rø  rü  r  r  r  r#  rR   rC  r/  rC  rI  r‚   rƒ   r„   s   @r   rF  rF    s÷   ø‡ € ð°ô ò8ò	ò#ò2òò1
òf=ò2Cò:+
òZ
ò
ò 
ò.
ò2
ò" 
òD"
òH
ò6/-òb,
ò\
ò*'KòR@ò@
ò 
ò-ò
ò*
&ò
ò9òEò/ð0 ‡[�[×Ññ@)ó ð@)ðD ‡[�[×Ññó örL   rF  c                   ó0   a € ] tR tRt o ]R 4       tRtV tR# )ÚTestSerialCSVTableReadi"  c                ó   € R # ©FrN   rö   s   &r   r˜   Ú"TestSerialCSVTableRead.use_threads#  ó   € árL   rN   N©r~   r   r€   r�   rA  r˜   r‚   rƒ   r„   s   @r   rL  rL  "  ó   ø‡ € Øñó örL   rL  c                   ó0   a € ] tR tRt o ]R 4       tRtV tR# )ÚTestThreadedCSVTableReadi(  c                ó   € R # ©TrN   rö   s   &r   r˜   Ú$TestThreadedCSVTableRead.use_threads)  ó   € árL   rN   NrQ  r„   s   @r   rT  rT  (  s   ø‡ € Øñó örL   rT  c                   óÖ   a a€ ] tR tRt oR tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tV 3R lt]P.                  P0                  V 3R l4       tRtVtV ;t# )ÚBaseStreamingCSVReadi.  c                óv   € VP                  R\        4       4      pV P                  Vn        \        V.VO5/ VB # )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  )rL  r   r˜   r   )rm   rB   r  rò   r  s   &&*, r   r   ÚBaseStreamingCSVRead.open_csv0  s;   € ð ×(Ñ(¨¼»ÓGˆØ#'×#3Ñ#3ˆÔ Ü˜Ð-˜dÒ- fÑ-Ð-rL   c                óP   € V P                   ! \        P                  ! V4      3/ VB # r   )r   r9   rO  rñ   s   &&,r   Ú
open_bytesÚBaseStreamingCSVRead.open_bytes;  rQ  rL   c                ó  € VP                   V8X  g   Q h\        V4      p\        V4      \        V4      8X  g   Q h\        WC4       FA  w  rVVP	                  R R7       VP                   V8X  g   Q hVP                  4       V8X  d   KA  Q h	  R# )TrI  N)rÞ   r0   rú   Úzipr¦   r
  )rm   ÚreaderÚexpected_schemarU  ÚbatchesÚbatchÚexpected_batchs   &&&&   r   Úcheck_readerÚ!BaseStreamingCSVRead.check_reader>  s|   € Ø�}‰} Ô/Ð/Ð/Ü�v“,ˆÜ�7‹|œs =Ó1Ô1Ð1Ð1Ü%(¨Ö%@Ñ!ˆEØ�N‰N ˆNÔ%Ø—<‘< ?Ô2Ð2Ð2Ø—?‘?Ó$¨Ö6Ð6Ð6ó &ArL   c                óD   € V P                   ! V3/ VB P                  4       # r   )r^  Úread_allrñ   s   &&,r   ró   ÚBaseStreamingCSVRead.read_bytesG  s   € Ø�Š˜qÑ+ FÑ+×4Ñ4Ó6Ð6rL   c                ó  € R pR^^.R^^./p\         P                  ! V4      pV P                  V4      p\        P                  ! R\        P
                  ! 4       3R\        P
                  ! 4       3.4      pV P                  WEV.4       R# )s   a,b
1,2
3,4
r¤   r¥   N)r.   rS  r   r9   rÞ   r;   rg  )rm   rT  rU  rV  rb  rc  s   &     r   rX  Ú%BaseStreamingCSVRead.test_file_objectJ  sy   € Ø!ˆØ˜q !˜f c¨A¨q¨6Ð2ˆÜ�jŠj˜ÓˆØ—‘˜sÓ#ˆÜŸ)š) c¬2¯8ª8«:Ð%6Ø&)¬2¯8ª8«:Ð%6ð%8ó 9ˆà×Ñ˜&°M°?ÖCrL   c                ó   € R pV P                  V4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      pV P	                  W#. 4       R# )r[  r¿   r¾   r  N)r^  r9   rÞ   rÌ   rg  ©rm   rl   rb  rc  s   &   r   r]  Ú BaseStreamingCSVRead.test_headerS  sc   € ØˆØ—‘ Ó&ˆÜŸ)š) e¬R¯WªW«YÐ%7Ø&+¬R¯WªW«YÐ%7Ø&*¬B¯GªG«IÐ%6ð%8ó 9ˆð 	×Ñ˜&°2Ö6rL   c           	     ó²  € R p\         P                  ! R\         P                  ! 4       3R\         P                  ! 4       3.4      p\	        4       p\        V4      Vn        V P                  WR7      pV P                  WBR. ROR. RO/.4       \        V4      ^,
          Vn        V P                  WR7      pV P                  WBRRR.RRR./RR.RR	./.4       R
# )ó   a,b
123,456
abc,deÿ
gh,ij
r¤   r¥   r  Ú123r¿   r  ó   456ó   deÿó   ijN)rs  r¿   r  )rt  ru  rv  )	r9   rÞ   r   rà   r   rú   rŸ   r^  rg  )rm   rl   rc  r  rb  s   &    r   Útest_inferenceÚ#BaseStreamingCSVRead.test_inference[  sâ   € à3ˆÜŸ)š) c¬2¯9ª9«;Ð%7Ø&)¬2¯9ª9«;Ð%7ð%9ó :ˆô #“}ˆÜ"% d£)ˆÔØ—‘ �ÓAˆØ×Ñ˜&ØÒ!5ØÒ!;ð=ð >ô	?ô #& d£)¨a¥-ˆÔØ—‘ �ÓAˆØ×Ñ˜&Ø %¨ Ø &¨)Ð!4ð6à $ Ø % ð*ð+ö	,rL   c                ó®  € R p\        4       p\        V4      ^,
          Vn        V P                  WR7      p\        P
                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      pVP
                  V8X  g   Q hVP                  4       P                  4       R^{.RR./8X  g   Q h\        P                  ! \        RR7      ;_uu_ 4        VP                  4        RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     LM; i  + '       g   i     R# ; i)rr  r  r¤   r¥   iÈ  zCSV conversion error to int64r    N)r   rú   rŸ   r^  r9   rÞ   r;   Úread_next_batchr
  rR   rS   rÜ   ÚStopIteration©rm   rl   r  rb  rc  s   &    r   Útest_inference_failureÚ+BaseStreamingCSVRead.test_inference_failurep  s  € à3ˆÜ"“}ˆÜ"% d£)¨a¥-ˆÔØ—‘ �ÓAˆÜŸ)š) c¬2¯8ª8«:Ð%6Ø&)¬2¯8ª8«:Ð%6ð%8ó 9ˆà�}‰} Ô/Ð/Ð/Ø×%Ñ%Ó'×1Ñ1Ó3Ø�#�˜˜c˜Uð8
ô 
ð 	
ð 
ô �]Š]œ:Ø!@÷Bö Bà×"Ñ"Ô$÷Bô �]Š]œ=×)Õ)Ø×"Ñ"Ô$÷ *Ñ)÷	B÷ Bú÷ *×)Ð)ús   ÃD0ÄEÄ0E 	ÅE	c                óÂ  € R p\        4       p^
Vn        \        P                  ! \        P
                  RR7      ;_uu_ 4        V P                  WR7      pRRR4       Rp^Vn        V P                  WR7      pVP                  4       P                  4       R^.R^./8X  g   Q h\        P                  ! \        P
                  RR7      ;_uu_ 4        VP                  4        RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     LÚ; i  + '       g   i     L`; i  + '       g   i     R# ; i)s   a,b
1,2,3
4,5
6,7
zExpected 2 columns, got 3r    r  Ns   a,b
1,2
3,4,5
6,7
r¤   r¥   )
r   rŸ   rR   rS   r9   r§   r^  rz  r
  r{  )rm   rl   r  rb  s   &   r   rü  Ú%BaseStreamingCSVRead.test_invalid_csv„  s	  € à(ˆÜ"“}ˆØ"$ˆÔÜ�]Š]œ2Ÿ?™?Ø!<÷>ö >à—_‘_Øð %ó 1ˆF÷>ð )ˆØ"#ˆÔØ—‘ �ÓAˆØ×%Ñ%Ó'×1Ñ1Ó3¸¸a¸SÀ#ÈÀsÐ7KÔKÐKÐKÜ�]Š]œ2Ÿ?™?Ø!<÷>ö >à×"Ñ"Ô$÷>ô �]Š]œ=×)Õ)Ø×"Ñ"Ô$÷ *Ñ)÷>÷ >ú÷>÷ >ú÷ *×)Ð)ús$   ÁD'ÃD:ÄEÄ'D7	Ä:E
	ÅE	c                óÔ  € R pV P                  V4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      pV P	                  W#RR.RR./.4       \        RR7      pV P                  WR7      p\        P                  ! R\        P                  ! 4       3R	\        P                  ! 4       3.4      pV P	                  W#RR
.R	R./.4       R# )rÿ  r   rÉ   r  r  rœ  r�  r/  r¤   r  r  r  N)r^  r9   rÞ   r   rg  r	   )rm   rl   rb  rc  rX   s   &    r   r  Ú+BaseStreamingCSVRead.test_options_delimiterš  sÝ   € Ø#ˆØ—‘ Ó&ˆÜŸ)š) e¬R¯YªY«[Ð%9Ø&)¬2¯9ª9«;Ð%7ð%9ó :ˆà×Ñ˜&Ø! D 6Ø ' ð,ð -ô	.ô  cÔ*ˆØ—‘ �Ó:ˆÜŸ)š) c¬2¯9ª9«;Ð%7Ø&+¬R¯YªY«[Ð%9ð%;ó <ˆà×Ñ˜&Ø ' Ø! D 6ð+ð ,ö	-rL   c                ó  € R pV P                  V4      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3R\        P                  ! 4       3.4      pV P	                  W#R^^.R^^.R^^./.4       R# rï  )r^  r9   rÞ   r;   rg  ro  s   &   r   rñ  Ú+BaseStreamingCSVRead.test_no_ending_newline«  sˆ   € à%ˆØ—‘ Ó&ˆÜŸ)š) c¬2¯8ª8«:Ð%6Ø&)¬2¯8ª8«:Ð%6Ø&)¬2¯8ª8«:Ð%6ð%8ó 9ˆð 	×Ñ˜&Ø ! Q Ø ! Q Ø ! Q ð)ð *ö	+rL   c                óª   € \         P                  ! \        R R7      ;_uu_ 4        V P                  R4       RRR4       R#   + '       g   i     R# ; i)rû  r    rL   N)rR   rS   rÜ   r^  rö   s   &r   Útest_empty_fileÚ$BaseStreamingCSVRead.test_empty_file·  s/   € Ü�]Š]œ:Ð-=×>Ö>Ø�O‰O˜CÔ ÷ ?×>×>Ò>ús   ¥AÁA	c                ó²  € R p\        4       p. ROVn        V P                  WR7      p\        P                  ! R\        P
                  ! 4       3R\        P
                  ! 4       3R\        P
                  ! 4       3.4      pV P                  W4R^^.R^^.R^^./.4       \        4       pRR.Vn        V P                  WVR7      p\        P                  ! R\        P
                  ! 4       3R\        P
                  ! 4       3.4      pV P                  W4R^^.R^^./.4       R\        P                  ! 4       /Vn
        V P                  WVR7      p\        P                  ! R\        P
                  ! 4       3R\        P                  ! 4       3.4      pV P                  W4RRR.R^^./.4       . ROVn        \        P                  ! \        R	R
7      ;_uu_ 4        V P                  WVR7      pRRR4       RVn        V P                  WVR7      p\        P                  ! R\        P                  ! 4       3R\        P
                  ! 4       3R\        P                  ! 4       3.4      pV P                  W4RRR.RRR.R^^./.4       R\        P                  ! 4       R\        P                   ! 4       /Vn
        V P                  WVR7      p\        P                  ! R\        P                   ! 4       3R\        P
                  ! 4       3R\        P                  ! 4       3.4      pV P                  W4RRR.RRR.R^^./.4       R#   + '       g   i     EL_; i)s   1,2,3
4,5,6r#  r0  r•  r  r   r÷  Ú5r:  z,Column 'g' in include_columns does not existr    NT)r#  r0  r•  )r:  r•  r0  )r   rJ   r^  r9   rÞ   r;   rg  r
   rÄ   r   r×   rR   rS   r  rÅ   rÌ   r�  )rm   rl   r  rb  rc  r!  s   &     r   Útest_column_optionsÚ(BaseStreamingCSVRead.test_column_options»  sB  € àˆÜ"“}ˆÚ$3ˆÔ!Ø—‘ �ÓAˆÜŸ)š) c¬2¯8ª8«:Ð%6Ø&)¬2¯8ª8«:Ð%6Ø&)¬2¯8ª8«:Ð%6ð%8ó 9ˆð 	×Ñ˜&Ø ! Q Ø ! Q Ø ! Q ð)ð *ô	+ô )Ó*ˆØ+.°¨*ˆÔ'Ø—‘ Ø1@ð !ó BˆäŸ)š) c¬2¯8ª8«:Ð%6Ø&)¬2¯8ª8«:Ð%6ð%8ó 9ˆà×Ñ˜&Ø ! Q Ø ! Q ð)ð *ô	+ð
 ),¬R¯YªY«[Ð'9ˆÔ$Ø—‘ Ø1@ð !ó BˆäŸ)š) c¬2¯8ª8«:Ð%6Ø&)¬2¯9ª9«;Ð%7ð%9ó :ˆà×Ñ˜&Ø # s Ø ! Q ð)ð *ô	+ò
 +:ˆÔ'Ü�]Š]ÜØD÷Fö Fð —_‘_ TØ5Dð %ó FˆF÷Fð 37ˆÔ/Ø—‘ Ø1@ð !ó BˆäŸ)š) c¬2¯7ª7«9Ð%5Ø&)¬2¯8ª8«:Ð%6Ø&)¬2¯9ª9«;Ð%7ð%9ó :ˆð 	×Ñ˜&Ø $¨ Ø # s Ø ! Q ð)ð *ô	+ð
 ),¬R¯YªY«[¸#¼r¿zºz»|Ð'LˆÔ$Ø—‘ Ø1@ð !ó BˆäŸ)š) c¬2¯:ª:«<Ð%8Ø&)¬2¯8ª8«:Ð%6Ø&)¬2¯9ª9«;Ð%7ð%9ó :ˆð 	×Ñ˜&Ø $¨ Ø # s Ø ! Q ð)ð *ö	+÷/F÷ Fð Fús   ÇMÍM	c                óÌ  € R p\        4       pV P                  WR7      p\        P                  ! R\        P                  ! 4       3R\        P
                  ! 4       3.4      pV P                  W4RR.RR./.4       RVn        V P                  WR7      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      pV P                  W4RR.RR./.4       RpR	Vn        V P                  WR7      p\        P                  ! R\        P                  ! 4       3R\        P                  ! 4       3.4      pV P                  W4RR.RR./.4       R
# )s   a,b
un,éléphantr  r¤   r¥   Úuns   éléphantÚlatin1u
   Ã©lÃ©phants    ÿþa , b 
 u n , é l é p h a n t r—   N)r   r^  r9   rÞ   r   rà   rg  r›   r|  s   &    r   Útest_encodingÚ"BaseStreamingCSVRead.test_encodingü  s\  € à(ˆÜ"“}ˆØ—‘ �ÓAˆÜŸ)š) c¬2¯9ª9«;Ð%7Ø&)¬2¯9ª9«;Ð%7ð%9ó :ˆà×Ñ˜&Ø $ ØÐ"3Ð!4ð6ð 7ô	8ð !)ˆÔØ—‘ �ÓAˆÜŸ)š) c¬2¯9ª9«;Ð%7Ø&)¬2¯9ª9«;Ð%7ð%9ó :ˆà×Ñ˜&Ø $ Ø , ð1ð 2ô	3ð
Fˆà 'ˆÔØ—‘ �ÓAˆÜŸ)š) c¬2¯9ª9«;Ð%7Ø&)¬2¯9ª9«;Ð%7ð%9ó :ˆà×Ñ˜&Ø $ Ø , ð1ð 2ö	3rL   c                ó  € \        ^^
R7      w  rV P                  V4      pVP                  4       pVP                  VP                  8X  g   Q hVP	                  V4      '       g   Q hVP                  4       VP                  4       8X  g   Q hR# r	  )rG   r^  rj  rÞ   r
  r
  )rm   rB   rF   rb  rû   s   &    r   r  Ú*BaseStreamingCSVRead.test_small_random_csv  ss   € Ü'°¸RÔ@‰ˆØ—‘ Ó%ˆØ—‘Ó!ˆØ�|‰|˜xŸ™Ô.Ð.Ð.Ø�|‰|˜H×%Ò%Ð%Ð%Ø�‰Ó  H×$6Ñ$6Ó$8Ô8Ð8Ò8rL   c                ó¼  € \        ^RR7      w  r. ROpWP                  R4      .pV F°  pV F§  pVRV P                  R4      ^8¼  g   Q h\        VR7      pV P	                  WWR7      pVP                  4       p	V	P                  VP                  8X  g   Q hV	P                  V4      '       d   K‚  V	P                  4       VP                  4       8X  d   K§  Q h	  K²  	  R# )	r‰   r  r  rg  Nre  rž   r  )é   é   é   é   r  r  )	rG   r  Úcountr   r^  rj  rÞ   r
  r
  )
rm   r  rF   r  r  rB   rŸ   r  rb  rû   s
   &         r   r  Ú,BaseStreamingCSVRead.test_stress_block_sizes"  sÊ   € ä,°aÀ#ÔFÑˆÚ/ˆØŸ/™/¨'Ó2Ð3ˆÛˆCÛ)�
à˜;˜JÐ'×-Ñ-¨eÓ4¸Ô9Ð9Ð9Ü*°jÔA�ØŸ™Øð )ó 4�àŸ™Ó)�Ø—|‘| x§¡Ô6Ð6Ð6Ø—|‘| H×-Ô-à Ÿ?™?Ó,°×0BÑ0BÓ0DÖDÐDÐDó *ó rL   c                ó  € \         P                  ! 4        \        P                  ! 4       pR  pRp\	        4       pRR.Vn        ^Vn        V P                  W4R7      pV! VR^
.R^./4       \        P                  ! 4       pV! VR^.R^./4       \        P                  ! 4       V8:  g   Q hV! VR^.R^./4       \        P                  ! 4       V8:  g   Q hV! VR^.R^./4       \        P                  ! 4       V8:  g   Q h\        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       \        P                  ! 4       V8X  g   Q hRp\        P                  ! 4       V8X  g   Q hR#   + '       g   i     LL; i)c                 óT   € V P                  4       pVP                  4       V8X  g   Q hR # r   )rz  r
  )rb  rF   re  s   && r   Úcheck_one_batchÚABaseStreamingCSVRead.test_batch_lifetime.<locals>.check_one_batch9  s%   € Ø×*Ñ*Ó,ˆEØ—?‘?Ó$¨Ô0Ð0Ò0rL   s   10,11
12,13
14,15
16,17
r¤   r¥   r  N)ÚgcÚcollectr9   Útotal_allocated_bytesr   rJ   rŸ   r^  rR   rS   r{  rz  )rm   Úold_allocatedrœ  rl   r  rb  Úallocated_after_first_batchs   &      r   Útest_batch_lifetimeÚ(BaseStreamingCSVRead.test_batch_lifetime4  s_  € Ü
�
Š
ŒÜ×0Ò0Ó2ˆò	1ð /ˆÜ"“}ˆØ%(¨# JˆÔ!Ø"#ˆÔØ—‘ �ÓAˆÙ˜  r d¨C°"°Ð 6Ô7Ü&(×&>Ò&>Ó&@Ð#Ù˜  r d¨C°"°Ð 6Ô7Ü×'Ò'Ó)Ð-HÔHÐHÐHÙ˜  r d¨C°"°Ð 6Ô7Ü×'Ò'Ó)Ð-HÔHÐHÐHÙ˜  r d¨C°"°Ð 6Ô7Ü×'Ò'Ó)Ð-HÔHÐHÐHÜ�]Š]œ=×)Õ)Ø×"Ñ"Ô$÷ *ä×'Ò'Ó)¨]Ô:Ð:Ð:ØˆÜ×'Ò'Ó)¨]Ô:Ð:Ò:÷	 *×)ús   Ä#E8Å8F	c                ó0  <€ \         SV `  4        R p\        4       p^Vn        RR.Vn        V P                  WR7      p\        P                  ! \        4      ;_uu_ 4        VP                  4       '       g   Q h RRR4       R#   + '       g   i     R# ; i)r   r”   r•   r  N)
Úsuperr  r   r™   rJ   r^  rR   rS   r{  rz  ©rm   rl   rX   rb  Ú	__class__s   &   €r   r  Ú*BaseStreamingCSVRead.test_header_skip_rowsP  sr   ø€ Ü‰Ñ%Ô'à.ˆô ‹}ˆØˆŒØ! 4˜LˆÔØ—‘ �Ó9ˆÜ�]Š]œ=×)Õ)Ø×)Ñ)×+Ò+Ð+Ñ+÷ *×)×)Ò)ús   Á BÂB	c                óþ  <€ \         SV `  4        R p\        4       p^Vn        V P	                  WR7      p\
        P                  ! \        4      ;_uu_ 4        VP                  4       '       g   Q h RRR4       RVn        V P	                  WR7      p\
        P                  ! \        4      ;_uu_ 4        VP                  4       '       g   Q h RRR4       R#   + '       g   i     Lo; i  + '       g   i     R# ; i)r   r  NrÈ   )	r¦  r  r   rœ   r^  rR   rS   r{  rz  r§  s   &   €r   r  Ú/BaseStreamingCSVRead.test_skip_rows_after_names]  s¸   ø€ ä‰Ñ*Ô,à.ˆô ‹}ˆØ%&ˆÔ"Ø—‘ �Ó9ˆÜ�]Š]œ=×)Õ)Ø×)Ñ)×+Ò+Ð+Ñ+÷ *ð &+ˆÔ"Ø—‘ �Ó9ˆÜ�]Š]œ=×)Õ)Ø×)Ñ)×+Ò+Ð+Ñ+÷ *Ñ)÷ *×)ú÷ *×)Ð)ús   ÁCÂ4C+ÃC(	Ã+C<	rN   )r~   r   r€   r�   r   r^  rg  ró   rX  r]  rw  r}  rü  r  rñ  r†  rŠ  r�  r  r  r£  r  rR   rC  rD  r  r‚   rƒ   Ú__classcell__©r¨  r…   s   @@r   rZ  rZ  .  s…   ù‡ € ò	.ò8ò7ò7òDò7ò,ò*%ò(%ò,-ò"
+ò!ò?+òB3ò<9òEò$;õ8,ð ‡[�[×Ñô,ó ÷,ð ,rL   rZ  c                   ó0   a € ] tR tRt o ]R 4       tRtV tR# )ÚTestSerialStreamingCSVReadiq  c                ó   € R # rN  rN   rö   s   &r   r˜   Ú&TestSerialStreamingCSVRead.use_threadsr  rP  rL   rN   NrQ  r„   s   @r   r¯  r¯  q  rR  rL   r¯  c                   ó0   a € ] tR tRt o ]R 4       tRtV tR# )ÚTestThreadedStreamingCSVReadiw  c                ó   € R # rV  rN   rö   s   &r   r˜   Ú(TestThreadedStreamingCSVRead.use_threadsy  rX  rL   rN   NrQ  r„   s   @r   r³  r³  w  s   ø‡ € àñó örL   r³  c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚBaseTestCompressedCSVReadi~  c                ó>   € \         P                  ! R R7      V n        R# )zarrow-csv-test-)ÚprefixN)ÚtempfileÚmkdtempÚtmpdirrö   s   &r   ÚsetUpÚBaseTestCompressedCSVRead.setUp€  s   € Ü×&Ò&Ð.?Ô@ˆŽrL   c                óF   € \         P                  ! V P                  4       R # r   )ÚshutilÚrmtreer¼  rö   s   &r   ÚtearDownÚ"BaseTestCompressedCSVRead.tearDownƒ  s   € Ü�Š�d—k‘kÖ"rL   c                óž   €  \        V4      #   \        P                   d+   p\        P                  ! \        T4      4        R p?R # R p?ii ; ir   )r   r9   ÚArrowNotImplementedErrorrR   r­   r6   )rm   Úcsv_pathr0  s   && r   r   Ú"BaseTestCompressedCSVRead.read_csv†  s;   € ð	 Ü˜HÓ%Ð%øÜ×*Ñ*ô 	 Ü�KŠKœ˜A›×Òûð	 ús   ‚
 �A¢AÁAc                óª  € \        ^^dR7      w  r\        P                  P                  V P                  V P
                  4      pV P                  W14       V P                  V4      pVP                  RR7       VP                  VP                  8X  g   Q hVP                  V4      '       g   Q hVP                  4       VP                  4       8X  g   Q hR# )r‰   r  TrI  N)rG   ÚosÚpathr4   r¼  Úcsv_filenameÚ
write_filer   r¦   rÞ   r
  r
  )rm   rB   rF   rÆ  rû   s   &    r   Útest_random_csvÚ)BaseTestCompressedCSVRead.test_random_csvŒ  sŸ   € Ü'°¸SÔA‰ˆÜ—7‘7—<‘< §¡¨T×->Ñ->Ó?ˆØ�‰˜Ô&Ø—‘˜hÓ'ˆØ�‰˜DˆÔ!Ø�|‰|˜xŸ™Ô.Ð.Ð.Ø�|‰|˜H×%Ò%Ð%Ð%Ø�‰Ó  H×$6Ñ$6Ó$8Ô8Ð8Ò8rL   )r¼  N)
r~   r   r€   r�   r½  rÂ  r   rÍ  r‚   rƒ   r„   s   @r   r·  r·  ~  s   ø‡ € òAò#ò ÷9ð 9rL   r·  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚTestGZipCSVReadi—  zcompressed.csv.gzc                ó¢   € \         P                  ! VR ^4      ;_uu_ 4       pVP                  V4       RRR4       R#   + '       g   i     R# ; i)ÚwbN)ÚgzipÚopenr3   ©rm   rÊ  Úcontentsr•  s   &&& r   rÌ  ÚTestGZipCSVRead.write_fileš  s2   € Ü�YŠY�t˜T 1×%Ô%¨Ø�G‰G�HÔ÷ &×%×%Ò%ús	   ¡=½A	c                ó  € \         P                  P                  V P                  V P                  4      p\
        P                  ! VR ^4      ;_uu_ 4       pVP                  R4       RRR4       \
        P                  ! VR^4      ;_uu_ 4       pVP                  R4       RRR4       V P                  V4      pVP                  4       R. ROR. RO/8X  g   Q hR#   + '       g   i     L|; i  + '       g   i     LU; i)rÒ  s   ab,cd
ef,gh
Nr”   s   ij,kl
mn,op
r•   rz  r{  )
rÉ  rÊ  r4   r¼  rË  rÓ  rÔ  r3   r   r
  )rm   rÆ  r•  rû   s   &   r   Útest_concatenatedÚ!TestGZipCSVRead.test_concatenatedž  s¶   € ä—7‘7—<‘< §¡¨T×->Ñ->Ó?ˆÜ�YŠY�x  q×)Ô)¨QØ�G‰GÐ%Ô&÷ *ä�YŠY�x  q×)Ô)¨QØ�G‰GÐ%Ô&÷ *à—‘˜hÓ'ˆØ�‰Ó ØÒ$ØÒ$ð%
ô 
ð 	
ò 
÷ *×)úç)×)ús   ÁCÂC.ÃC+	Ã.C>	rN   N)	r~   r   r€   r�   rË  rÌ  rÙ  r‚   rƒ   r„   s   @r   rÐ  rÐ  —  s   ø‡ € Ø&€Lò÷
ð 
rL   rÐ  c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚTestBZ2CSVReadi¬  zcompressed.csv.bz2c                ó    € \         P                  ! VR 4      ;_uu_ 4       pVP                  V4       RRR4       R#   + '       g   i     R# ; i)rË   N)Úbz2ÚBZ2Filer3   rÕ  s   &&& r   rÌ  ÚTestBZ2CSVRead.write_file¯  s0   € Ü�[Š[˜˜s×#Ô# qØ�G‰G�HÔ÷ $×#×#Ò#ús	    <¼A	rN   N)r~   r   r€   r�   rË  rÌ  r‚   rƒ   r„   s   @r   rÜ  rÜ  ¬  s   ø‡ € Ø'€L÷ð rL   rÜ  c                  óp   € \         P                  ! R 4      p \        V 4       V P                  '       d   Q hR# )rð  N)r.   rS  r   Úclosed)Úbufs    r   Ú0test_read_csv_does_not_close_passed_file_handlesrä  ´  s(   € ä
�*Š*Ð+Ó
,€CÜˆS„MØ�z�zˆzÐˆ>‰zrL   c            
      óT  € \         P                  P                  . RO. RO.RR.4      p V P                  ^R7      ^ ,          pW3 F¶  p\        P
                  ! 4       p\        W#\        RR7      4       VP                  ^ 4       V \        V4      8X  g   Q h\        P
                  ! 4       p\        W#\        RR7      4       VP                  ^ 4       \        V P                  R7      pV \        W4R7      8X  d   K¶  Q h	  R	R	\        RR7      3\        V P                  R7      R	\        RR7      3R	\        R
R7      \        RR
R7      3\        V P                  R7      \        RR7      \        RRR7      33 EF  w  rEp\        P
                  ! 4       p\        W0P                  VR7      ;_uu_ 4       pVP                  V 4       R	R	R	4       VP                  ^ 4       V \        W4VR7      8X  g   Q h\        P
                  ! 4       p\        W0P                  VR7      ;_uu_ 4       pV P                  ^R7       F  pVP!                  V4       K  	  R	R	R	4       VP                  ^ 4       V \        W4VR7      8X  d   EK  Q h	  R	#   + '       g   i     LÈ; i  + '       g   i     LO; i)rˆ   Úc1Úc2)Úmax_chunksizeT)rä   Frè  r  Nrç   r�  )rä   r¯   r¶   ©Úwrite_optionsr  r½  )r¤   r¥   rÉ   )r9   r<   r=   rj  r.   rS  r   r   Úseekr   r   rJ   r	   r   rÞ   Úwrite_tableÚwrite_batch)	rÑ  Úrecord_batchrT  rã  r  r  rê  Úwriterre  s	            r   Útest_write_read_round_triprð  »  s  € Ü
�‰×ÑšiªÐ9¸DÀ$¸<ÓH€AØ—<‘<¨a�<Ó0°Õ3€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ˆ ]ô �jŠj‹lˆÜ�sŸH™H°M×BÕBÀfØ×Ñ˜qÔ!÷ Cà�‰�ŒØ”H˜SØ+8ô:ô :ð 	:ð :ä�jŠj‹lˆÜ�sŸH™H°M×BÕBÀfØŸ™°A˜Ö6�Ø×"Ñ" 5Ö)ñ 7÷ Cð 	�‰�ŒØ”H˜SØ+8ô:÷ :ð 	:ð :ó+	7÷ C×Bú÷ C×Bús   Æ2JÈ%+JÊJÊJ'c                  ó  € \         P                  P                  . RO. RO.RR.4      p \        P                  ! 4       p\        RR7      R3\        4       R3\        RR7      R	33 Ff  w  r#\        WP                  VR
7      ;_uu_ 4       pVP                  V 4       RRR4       VP                  4       V8X  g   Q hVP                  ^ 4       Kh  	  \         P                  P                  RR..R.4      p \        P                  ! 4       p\        RR7      R3\        RR7      \         P                  P                  33 Fh  w  r#\        WP                  VR
7      ;_uu_ 4       p VP                  V 4        RRR4       TP                  4       T8X  g   Q hTP                  ^ 4       Kj  	  R#   + '       g   i     EL; i  \         d(   p\        YS4      '       g   Q h Rp?RRR4        R# Rp?ii ; i  + '       g   i     L‡; i)rˆ   Nræ  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è   s   "c1"
","
""""
©rˆ   r‰   N©r¤   NrÉ   )r9   r<   r=   r.   rS  r   r   rÞ   rì  r7   rë  Úlibr§   Ú	Exceptionrv   )rÑ  rã  rê  Úresrï  r0  s         r   Útest_write_quoting_stylerø  ç  s¢  € Ü
�‰×ÑšlÒ,<Ð=ÀÀd¸|ÓL€AÜ
�*Š*‹,€Cä	 FÔ	+Ð-HÐIÜ	‹Ð8Ð9Ü	 KÔ	0Ø	,ð	.óÑˆô �sŸH™H°M×BÕBÀfØ×Ñ˜qÔ!÷ Cà�|‰|‹~ Ô$Ð$Ð$Ø�‰�Žñô 	�‰×Ñ˜s D˜k˜]¨T¨FÓ3€AÜ
�*Š*‹,€Cä	 HÔ	-Ð/CÐDÜ	 FÔ	+¬R¯V©V×-@Ñ-@ÐAóÑˆô �sŸH™H°M×BÕBÀfðØ×"Ñ" 1Õ%÷ Cð �|‰|‹~ Ô$Ð$Ð$Ø�‰�Žó÷ C×BÐBûô ô ô " !×)Ò)Ð)Ð)Û÷ CÒBûðú÷ C×Bús<   Â	F*Å G3Å"F>Æ*F;Æ>G0	Ç	G+	ÇG3Ç+G0	Ç0G3Ç3Hc                  óÈ  € \         P                  P                  . R
O. RO.RR.4      p \        P                  ! 4       p\        RR7      R3\        4       R3\        RR7      R33 Ff  w  r#\        WP                  VR	7      ;_uu_ 4       pVP                  V 4       RRR4       VP                  4       V8X  g   Q hVP                  ^ 4       Kh  	  R#   + '       g   i     L>; i)rˆ   Nræ  rç  ré   )Úquoting_headers   c1,c2
1,"a"
2,
,"c"
rò  rê   ré  ró  rô  )r9   r<   r=   r.   rS  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ŸH™H°M×BÕBÀfØ×Ñ˜qÔ!÷ Cà�|‰|‹~ Ô$Ð$Ð$Ø�‰�Žó÷ C×Bús   Â	CÃC!c                  ó¦   € R  p \         P                  ! 4       ;_uu_ 4        V ! 4       pV! 4       e   Q h RRR4       R#   + '       g   i     R# ; i)c                  óp   € \         P                  ! R 4      p \        V 4      p\        P                  ! V4      # )rð  )r.   rS  r   ÚweakrefÚref)rã  rû   s     r   ÚinnerÚ,test_read_csv_reference_cycle.<locals>.inner  s)   € Ü�jŠjÐ/Ó0ˆÜ˜“ˆÜ�{Š{˜5Ó!Ð!rL   N)r   Údisabled_gc)r   Úwrs     r   Útest_read_csv_reference_cycler    s:   € ò"ô
 
×	Ò	×	Õ	Ù‹WˆÙ‹tŠ|Ð‰|÷ 
×	×	Ò	ús	   ¡?¿A	Útype_factoryc                  ó0   € \         P                  ! ^^4      # ©é   ©r9   rÛ  rN   rL   r   rG  rG  $  ó   € ŒB�MŠM˜"˜aÔ rL   c                  ó0   € \         P                  ! ^&^4      # )é&   r	  rN   rL   r   rG  rG  %  ó   € ŒB�MŠM˜"˜bÔ!rL   c                  ó0   € \         P                  ! ^^4      # r  ©r9   Ú
decimal256rN   rL   r   rG  rG  &  r
  rL   c                  ó0   € \         P                  ! ^L^
4      # )éL   r  rN   rL   r   rG  rG  '  r  rL   c                 óB  € V! 4       p\         P                  ! R \         P                  ! ^^.4      P                  V4      /4      p\	        W0R,          4       \        V R,          4      pVP                  R 4      P                  V4      VP                  R 4      8X  g   Q hR# )Úcolzout.csvN)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˜iÕ'Ô(Ü
�6˜IÕ%Ó
&€Cà�:‰:�eÓ×!Ñ! $Ó'¨5¯<©<¸Ó+>Ô>Ð>Ò>rL   c                  ó  € R p  ! R R\         P                  4      p\        ^4       FI  p\        P                  ! \
        P                  4      ;_uu_ 4        \        V! V 4      4       RRR4       KK  	  R#   + '       g   i     K`  ; i)s   a,b,cc                   ó>   a a€ ] tR tRt oV 3R ltV 3R ltRtVtV ;t# )Ú-test_read_csv_gil_deadlock.<locals>.MyBytesIOi:  c                óL   <€ \         P                  ! R 4       \        SV `  ! V!  # ©gü©ñÒMbP?)r³  r'  r¦  Úread©rm   r  r¨  s   &*€r   r  Ú2test_read_csv_gil_deadlock.<locals>.MyBytesIO.read;  s   ø€ Ü�JŠJ�uÔÜ‘7’< Ñ&Ð&rL   c                óL   <€ \         P                  ! R 4       \        SV `  ! V!  # r  )r³  r'  r¦  Úreadintor  s   &*€r   r"  Ú6test_read_csv_gil_deadlock.<locals>.MyBytesIO.readinto?  s   ø€ Ü�JŠJ�uÔÜ‘7Ò# TÑ*Ð*rL   rN   )	r~   r   r€   r�   r  r"  r‚   rƒ   r¬  r­  s   @@r   Ú	MyBytesIOr  :  s   ù‡ € õ	'÷	+õ 	+rL   r$  N)r.   rS  r   rR   rS   r9   r§   r   )rT  r$  r"   s      r   Útest_read_csv_gil_deadlockr%  3  sZ   € ð
 €Dô+”B—J‘Jô +ô �2ŽYˆÜ�]Š]œ2Ÿ?™?×+Õ+Ü‘Y˜t“_Ô%÷ ,Ñ+ó ß+×+Ð+ús   ÁA6Á6Bztables,expectedc                  ó  € \         P                  ! R . /4      P                  \         P                  ! R \         P                  ! 4       3.4      4      \         P                  ! R R./4      \         P                  ! R R./4      .# ©Úcol1r¤   r¥   ©r9   rû   r  rÞ   r   rN   rL   r   rG  rG  K  s\   € ”—’˜6 2˜,Ó'×,Ñ,¬R¯YªY¸ÄÇÂÃÐ8MÐ7NÓ-OÓPÜ—’˜6 C 5˜/Ó*Ü—’˜6 C 5˜/Ó*ñ,rL   s   "col1"
"a"
"b"
c                  ó  € \         P                  ! R R./4      \         P                  ! R . /4      P                  \         P                  ! R \         P                  ! 4       3.4      4      \         P                  ! R R./4      .# r'  r)  rN   rL   r   rG  rG  R  s\   € ”—’˜6 C 5˜/Ó*Ü—’˜6 2˜,Ó'×,Ñ,¬R¯YªY¸ÄÇÂÃÐ8MÐ7NÓ-OÓPÜ—’˜6 C 5˜/Ó*ñ,rL   c            	      ó  € \         P                  ! R R./4      \         P                  ! R R./4      \         P                  ! R . /4      P                  \         P                  ! R \         P                  ! 4       3.4      4      .# r'  r)  rN   rL   r   rG  rG  Y  s]   € ”—’˜6 C 5˜/Ó*Ü—’˜6 C 5˜/Ó*Ü—’˜6 2˜,Ó'×,Ñ,¬R¯YªY¸ÄÇÂÃÐ8MÐ7NÓ-OÓPñRrL   c                 óÎ   € \         P                  ! V ! 4       4      p\        P                  ! 4       p\	        W#4       VP                  ^ 4       VP                  4       pWA8X  g   Q hR# r   )r9   Úconcat_tablesr.   rS  r   rë  r  )ÚtablesrF   Úcombinedrã  rk   s   &&   r   Ú4test_write_csv_empty_batch_should_not_pollute_outputr0  H  sK   € ô0 ×Ò¡£Ó)€Hä
�*Š*‹,€CÜˆhÔØ‡H�HˆQ„KØ�X‰X‹Z€FàÔÐÒrL   )r‰   r�   z
T)Hr¿   rÞ  r   r   Údecimalr   rž  rÓ  r.   r1   rÉ  r+   r8  rÀ  r(  r   rº  r/  r³  Úunittestrþ  rR   Úpyarrowr9   Úpyarrow.csvr   r   r   r	   r
   r   r   r   r   r   Úpyarrow.testsr   r   r#   r%   rG   rK   r^   rf   rh   r’   r«   r»   râ   rë   ÚABCrí   rF  rL  rT  rZ  r¯  rC  r³  r·  ÚTestCaserÐ  rÜ  rä  rð  rø  rû  r  Úparametrizer  r%  r0  rN   rL   r   Ú<module>r9     s  ðó$ Û 
ß #Ý Û 	Û Û 	Û Û 	Û Û Û Û Û Û Û Û Û Û ã ã ÷4÷ 4÷ 4õ ò!ò"òôò$#ò,ò00÷-ñ -ò$ò&@>òFE?òP_AòD?ôBXK�#—'‘'ô XKôv
T�{ô TônÐ-ô ôÐ/ô ô@,˜;ô @,ôF
Ð!5ô ð ‡�×ÑôÐ#7ó ó ð÷9ñ 9ô2
Ð/°×1BÑ1Bô 
ô*Ð.°×0AÑ0Aô òò):òXòBò	ð ‡�×Ñ˜Ù Ù!Ù Ù!ð	*ó ñ?óð?ò&ð* ‡�×ÑÐ*ñ	,ð 	ð	ñ	,ð 	ð	ñ	Rð 	ð	ð!-ó ñ.ó/ò.rL   