+
    nDj[                        ^ RI t ^ RI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HtHtHtHt R tRR ltR tR tR	 t ! R
 R] P4                  4      t ! R R]4      t ! R R]4      t ! R R]]	P<                  4      t ! R R]]	P<                  4      t  ! R R]]	P<                  4      t!]PD                  PF                   ! R R]]	P<                  4      4       t$R#   ] d    Rt Li ; i)    N)OrderedDict)Decimal)	read_json	open_jsonReadOptionsParseOptionsc               #   ~   "   \         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      Q/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/tests/test_json.pygenerate_col_namesr   %   s:     $$GF.    s   =;#=c                    \         P                  P                  ^*4      P                  ^ RW3R7      p\	        \
        P                  ! \        4       V 4      4      p. pVP                   F[  p\        \        WF4       UUu. uF  w  rxV\        V4      3NK  	  upp4      p	VP                  \        P                  ! V	4      4       K]  	  VP                  V4      P!                  4       p
V Uu. uF.  p\"        P$                  ! V\"        P&                  ! 4       R7      NK0  	  pp\"        P(                  P+                  W4      pW3# u uppi u upi )*     )size)type)nprandomRandomStaterandintlist	itertoolsislicer   Tr   zipintappendjsondumpsjoinencodepaarrayint64Tablefrom_arrays)num_colsnum_rowslineseparr	col_nameslinesrowkvjson_objdatacolcolumnsexpecteds   &&&           r   make_random_jsonr9   .   s    
))


#
+
+At8:N
+
OCY%%&8&:HEFIEuu#i:MN:MCF:MNOTZZ)*  <<%%'D9<=#rxx"((*-G=xx##G7H>  O >s   ?E+4E	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# ))protocolN )loadsr#   HIGHEST_PROTOCOLitemsgetattr)clspicklerattr_valuesoptsnew_optsnamevalues   &&,    r   check_options_class_picklingrH   ;   sb    D}}W]]44;4L4L + N OH"((*x&%/// +    c                    \         pV! 4       pVP                  ^ 8  g   Q hRVn        VP                  R8X  g   Q hVP                  RJ g   Q hRVn        VP                  RJ g   Q hV! RRR7      pVP                  R8X  g   Q hVP                  RJ g   Q hRp\        V4      RV R28X  g   Q h\	        V4      R	V R28X  g   Q h\        WRRR
7       R# )r   i90  TFi  )
block_sizeuse_threadsz+
    use_threads=False,
    block_size=1234z<pyarrow.json.ReadOptions>()zReadOptions()rB   rK   rL   N)r   rK   rL   reprstrrH   )pickle_modulerA   rD   expected_repr_inners   &   r   test_read_optionsrR   C   s    
C5D??QDO??e###t###Du$$$$E2D??d"""u$$$ :67J6K1MMMMt9,':&;1==== ,0-24rI   c                    \         pV! 4       pVP                  R J g   Q hVP                  e   Q hRVn        VP                  RJ g   Q hRp\        V4      RV R28X  g   Q h\	        V4      RV R28X  g   Q h\
        P                  ! \
        P                  ! R\
        P                  ! 4       4      .4      pWBn        VP                  V8X  g   Q hVP                  R8X  g   Q hR F  pWRn	        VP                  V8X  d   K  Q h	  \        P                  ! \        4      ;_uu_ 4        R
Vn	        RRR4       \        WVR R	R7       R#   + '       g   i     L!; i)FNTz]
    explicit_schema=None,
    newlines_in_values=True,
    unexpected_field_behavior='infer'z<pyarrow.json.ParseOptions>(rM   zParseOptions(fooinferignorezinvalid-value)rB   explicit_schemanewlines_in_valuesunexpected_field_behavior)rV   errorrU   )r   rX   rW   rN   rO   r&   schemafieldint32rY   pytestraises
ValueErrorrH   )rP   rA   rD   rQ   r[   rG   s   &     r   test_parse_optionsra   _   sF   
C5D""e+++'''"D""d***)
 :78K7LANNNNt9-(;'<A>>>>YY
345F!6)))))W444-).&--666 . 
z	"	")8& 
# !1749;CE 
#	"s   &EE	c                   (  a  ] tR t^t o ]P
                  R 4       tR tR tR t	R t
R tR tR tR	 tR
 tR t]P$                  P&                  R 4       t]P$                  P&                  R 4       t]P$                  P&                  R 4       tRtV tR# )BaseTestJSONc                    \         h)z{
:param b: bytes to be parsed
:param kwargs: arguments passed on to open the json file
:return: b parsed as a single Table
)NotImplementedErrorselfbkwargss   &&,r   
read_bytesBaseTestJSON.read_bytes   s
     "!rI   c                    VP                   \        V4      8X  g   Q hVP                   Uu. uF  q3P                  NK  	  upV8X  g   Q hR # u upi r
   )num_columnslenr7   rF   )rg   tablenamescs   &&& r   check_namesBaseTestJSON.check_names   s@      CJ... %.1.%777.s   Ac           
        R p\        4       p\        4       pWR,           3 F  pR F  pWSn        ^Vn        \        P
                  ! \        RR7      ;_uu_ 4        V P                  WBVR7       RRR4       \        ^	^4       F7  pWbn        V P                  WBVR7      pVP                  4       R. RO/8X  d   K7  Q h	  K  	  K  	  R#   + '       g   i     La; i)	s   {"a": 1}
{"a": 2}
{"a": 3}   
ztry to increase block sizematchread_optionsparse_optionsNaFT)         )
r   r   rX   rK   r^   r_   r`   rj   range	to_pydict)rg   rowsry   rz   r5   rX   rK   ro   s   &       r   test_block_sizesBaseTestJSON.test_block_sizes   s    ."}$%<(D&3"3E0*+']]:)EG GOOD2? $ AG #(2,J.8+ OOD:G , IE ??,i0@@@@	 #/ '4 )G Gs   C	Cc                r    R pV P                  V4      pVP                  4       R^^.R^^.R^^./8X  g   Q hR# )s/   {"a": 1,"b": 2, "c": 3}
{"a": 4,"b": 5, "c": 6}r{   rh   rq   N)rj   r   )rg   r   ro   s   &  r   test_no_newline_at_end#BaseTestJSON.test_no_newline_at_end   sN    B% !Q!Q!Q%
 
 	
 
rI   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# )s0   {"a": 1,"b": 2, "c": 3}
{"a": 4,"b": 5, "c": 6}
r{   rh   rq   N)rj   r&   r[   r(   r   rg   r   ro   r[   s   &   r   test_simple_intsBaseTestJSON.test_simple_ints   s    D%S"((*- "((*- "((*-/ 0 ||v%%% !Q!Q!Q%
 
 	
 
rI   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# )sQ   {"a": 1,"b": 2, "c": "3", "d": false}
{"a": 4.0, "b": -5, "c": "foo", "d": true}
r{   rh   rq   d      ?      @3rT   FTN)rj   r&   r[   float64r(   r   bool_r   r   s   &   r   test_simple_variedBaseTestJSON.test_simple_varied   s    @%S"**,/ "((*- "))+. "((*-/ 0 ||v%%% #s!R#u%	%
 
 	
 
rI   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.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/8X  g   Q hR# )s   {"a": 1, "b": 2, "c": null, "d": null, "e": null}
{"a": null, "b": -5, "c": "foo", "d": null, "e": true}
{"a": 4.5, "b": null, "c": "nan", "d": null,"e": false}
r{   rh   rq   r   eN)r   Ng      @)r~   r   N)NrT   nan)NNN)NTF)	rj   r&   r[   r   r(   r   nullr   r   r   s   &   r   test_simple_nullsBaseTestJSON.test_simple_nulls   s    M %S"**,/ "((*- "))+. "''), "((*-	/ 0
 ||v%%% !%#$%
 
 	
 
rI   c                   R pV P                  V4      p\        P                  ! R\        P                  ! \        P                  ! 4       4      3.4      pVP                  V8X  g   Q hVP                  4       R. ./8X  g   Q hR# )	   {"a": []}r{   N)rj   r&   r[   list_r   r   r   s   &   r   test_empty_listsBaseTestJSON.test_empty_lists   sg    %S"((2779"5678||v%%% S2$K///rI   c                    R pV P                  V4      p\        P                  ! . 4      pVP                  V8X  g   Q hVP                  ^ 8X  g   Q hVP                  ^8X  g   Q hR# )s   {}
{}
N)rj   r&   r[   rm   r,   r   s   &   r   test_empty_rowsBaseTestJSON.test_empty_rows   sZ    %2||v%%%  A%%%~~"""rI   c                   R pR\        R4      \        R4      \        R4      R./p\        P                  \        P                  \        P                  \        P
                  3pV Fk  p\        P                  ! RV! ^	^4      3.4      p\        VR7      pV P                  WR7      pVP                  V8X  g   Q hVP                  4       V8X  d   Kk  Q h	  R# )s'   {"a": 1}
{"a": 1.45}
{"a": -23.456}
{}
r{   1z1.45z-23.456NrW   rz   )
r   r&   	decimal32	decimal64
decimal128
decimal256r[   r   rj   r   )rg   r   r8   decimal_typestype_factoryr[   rD   ro   s   &       r   test_explicit_schema_decimal)BaseTestJSON.test_explicit_schema_decimal   s    
 '#,1CTJ
 r||R]]BMMR)LYYl1a&8 9:;F7DOODO=E<<6)))??$000 *rI   c                D   R p\         P                  ! R\         P                  ! 4       3.4      p\        VR7      p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       RRR.R^ ^./8X  g   Q h\        VRR7      pV P	                  WR7      pVP                  \         P                  ! R\         P                  ! 4       3.4      8X  g   Q hVP                  4       RRR./8X  g   Q h\        VR	R7      p\        P                  ! \         P                  R
R7      ;_uu_ 4        V P	                  WR7       RRR4       R#   + '       g   i     R# ; i)s2   {"foo": "bar", "num": 0}
{"foo": "baz", "num": 1}
rT   r   r   nums   bars   bazrV   )rW   rY   rZ   "JSON parse error: unexpected fieldrv   N)
r&   r[   binaryr   rj   r(   r   r^   r_   ArrowInvalid)rg   r   r[   rD   ro   s   &    r   .test_explicit_schema_with_unexpected_behaviour;BaseTestJSON.test_explicit_schema_with_unexpected_behaviour  s   .BIIK 
  F39||ryyBIIK BHHJ*
    	   FF#Aq6%
 
 	
 
 F6>@9||ryyBIIK *
    	   FF#%
 
 	
 

 F6=?]]2??!EG GOODO5G G G Gs   1FF	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+   r,   N)r9   rj   r[   equalsr   )rg   r5   r8   ro   s   &   r   test_small_random_json#BaseTestJSON.test_small_random_json(  sg    )1rB%||x...||H%%%% H$6$6$8888rI   c                    \        ^RR7      w  r\        RR7      pV P                  WR7      pVP                  R8X  g   Q hVP                  R8X  g   Q hR# )r~   i r   rK   ry   Ni   )r9   r   rj   r,   )rg   r5   r8   ry   ro   s   &    r   test_load_large_json!BaseTestJSON.test_load_large_json0  sP    )1vF"l;@~~'''  F***rI   c           	        \        ^^dR7      w  r\        4       p\        4       pWP                  R4      3 F  pR F  pWdn        R Fw  pWsn        V P                  WSVR7      pVP                  VP                  8X  g   Q hVP                  V4      '       d   KR  VP                  4       VP                  4       8X  d   Kw  Q h	  K  	  K  	  R# )r~   r   s   
rx   Nr|   )      %   )
r9   r   r   rstriprX   rK   rj   r[   r   r   )	rg   	data_baser8   ry   rz   r5   rX   rK   ro   s	   &        r   test_stress_block_sizes$BaseTestJSON.test_stress_block_sizes9  s     /CH	"}$ 0 0 9:D&3"3E0".J.8+ OOD:G , IE <<8??::: <<11$0H4F4F4HHHH #/ '4 ;rI   r<   N)__name__
__module____qualname____firstlineno__abcabstractmethodrj   rr   r   r   r   r   r   r   r   r   r   r^   marknumpyr   r   r   __static_attributes____classdictcell____classdict__s   @r   rc   rc      s     " "8A,


"
(0#1"#6J [[9 9 [[+ + [[I IrI   rc   c                   2   a  ] tR tRt o R tR tR tRtV tR# )BaseTestJSONReadiM  c                P    V P                   ! \        P                  ! V4      3/ VB # r
   )r   r&   	py_bufferrf   s   &&,r   rj   BaseTestJSONRead.read_bytesO      ~~bll1o888rI   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": 1, "b": 2}
r{   rh   N)	ioBytesIOr   r   StringIOdecoder^   r_   	TypeError)rg   r5   expected_databioro   sios   &     r   test_file_object!BaseTestJSONRead.test_file_objectR  s    $qc3,jjs# M111kk$++-(]]9%%NN3 &%%%s   B++B<	c           
     <   R p\        \        V4      R7      pRR^ .3RR. .3RR. ^...3RR/ .3RRRR/RR	^//.33 F[  w  r4V P                  W,           VR
7      pRV/pVP                  4       V8X  g   Q hVP	                  R4      P
                  ^8  d   K[  Q h	  R# )s"   {                               }
r   s   {"a": 0}Nr   s   {"a": []}
{"a": [[1]]}s	   {"a": {}}s    {"a": {}}
{"a": {"b": {"c": 1}}}rh   rq   r   r{   )r   rn   rj   r   column
num_chunks)rg   	first_rowry   	next_rowsexpected_pylistro   r8   s   &      r   test_reconcile_across_blocks-BaseTestJSONRead.test_reconcile_across_blocks]  s    :	"c)n=4)$D":&'$aSE):;D":&1S$K#Qx13+
&I OOI$91= $ ?E_-H??$000<<$//!333+
rI   r<   N)	r   r   r   r   rj   r   r   r   r   r   s   @r   r   r   M  s     9	 4 4rI   r   c                   z   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V tR# )BaseTestStreamingJSONReadiq  c                v    VP                  R\        4       4      pV P                  Vn        \        V.VO5/ VB # )z
Reads the JSON file into memory using pyarrow's open_json
json The JSON bytes
args Positional arguments to be forwarded to pyarrow's open_json
kwargs Keyword arguments to be forwarded to pyarrow's open_json
ry   )
setdefaultr   rL   r   )rg   r"   argsri   ry   s   &&*, r   r   #BaseTestStreamingJSONRead.open_jsonr  s;     ((G#'#3#3 ////rI   c                P    V P                   ! \        P                  ! V4      3/ VB # r
   )r   r&   r   rf   s   &&,r   
open_bytes$BaseTestStreamingJSONRead.open_bytes}  r   rI   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# )TfullN)r[   r   rn   r   validater   )rg   readerexpected_schemar   batchesbatchexpected_batchs   &&&&   r   check_reader&BaseTestStreamingJSONRead.check_reader  s|    }}///v,7|s=1111%(%@!ENNN%<<?222??$666 &ArI   c                D    V P                   ! V3/ VB P                  4       # r
   )r   read_allrf   s   &&,r   rj   $BaseTestStreamingJSONRead.read_bytes  s    q+F+4466rI   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# r   )r   r   r   r&   r[   r(   r  )rg   r5   r   r   r   r   s   &     r   r   *BaseTestStreamingJSONRead.test_file_object  su    $qc3,jj$))c288:%6&)288:%6%8 9&M?CrI   c                    R p\        4       p^Vn        \        P                  ! \        P
                  RR7      ;_uu_ 4        V P                  WR7       RRR4       R#   + '       g   i     R# ; i)s   {"i": 0            }
{"i": 1}1straddling object straddles two block boundaries*rv   r   Nr   rK   r^   r_   r&   r   r   )rg   bad_first_chunkry   s   &  r   test_bad_first_chunk.BaseTestStreamingJSONRead.test_bad_first_chunk  sV    ;"}"#]]OOE
 
 OOOOG	
 
 
 
   AA0	c                p   R p\        4       p^
Vn        \        P                  ! R\        P                  ! 4       3.4      pV P                  WR7      pVP                  V8X  g   Q hVP                  4       P                  4       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     LM; i  + '       g   i     R# ; i)s   {"i": 0}
{"i":     1}
{"i": 2}ir   r	  rv   Nr   rK   r&   r[   r(   r   read_next_batchr   r^   r_   r   StopIterationrg   bad_middle_chunkry   r   r   s   &    r   test_bad_middle_chunk/BaseTestStreamingJSONRead.test_bad_middle_chunk  s    >"}"$))c288:%6$78!1M}}///%%'113!8
 
 	
 
 ]]OOE
 
 ""$	
 ]]=))""$ *)
 
 *))   ;D6D$D!	$D5	c                    R p\        4       p^Vn        \        P                  ! \        P
                  RR7      ;_uu_ 4        V P                  WR7       RRR4       R#   + '       g   i     R# ; i)s   {"n": }
{"n": 10000}!JSON parse error: Invalid value.*rv   r   Nr
  rg   bad_first_blockry   s   &  r   test_bad_first_parse.BaseTestStreamingJSONRead.test_bad_first_parse  sY    2"}"$]]2??!DF FOOOOGF F F Fr  c                    R p\        4       p^Vn        \        P                  ! \        P
                  RR7      ;_uu_ 4        V P                  WR7       RRR4       R#   + '       g   i     R# ; i)s"   {            }{"n": }
{"n": 10000}r  rv   r   Nr
  r  s   &  r   !test_bad_middle_parse_after_empty;BaseTestStreamingJSONRead.test_bad_middle_parse_after_empty  sY    @"}"$]]2??!DF FOOOOGF F F Fr  c                p   R p\        4       p^
Vn        \        P                  ! R\        P                  ! 4       3.4      pV P                  WR7      pVP                  V8X  g   Q h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     LM; i  + '       g   i     R# ; i)s%   {"n": 1000}
{"n": 200 00}
{"n": 3000}nr   r   z@JSON parse error: Missing a comma or '}' after an object member*rv   Nr  r  s   &    r   test_bad_middle_parse/BaseTestStreamingJSONRead.test_bad_middle_parse  s    E"}"$))c288:%6$78!1M}}///%%'113$8
 
 	
 
 ]]OO1
 

 ""$
 ]]=))""$ *)
 
 *))r  c                   R p\        ^
R7      p\        RR7      p\        P                  ! R\        P                  ! 4       3.4      pV P                  VVVR7      pVP                  V8X  g   Q hVP                  4       P                  4       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     LM; i  + '       g   i     R# ; i	s   {"n": 0}{1}
{"n": 2}r   TrX   r#  rx   JSON parse error *rv   Nr   r   r&   r[   r(   r   r  r   r^   r_   r   r  rg   r  ry   rz   r   r   s   &     r   %test_non_linewise_chunker_first_block?BaseTestStreamingJSONRead.test_non_linewise_chunker_first_block     3"b1$=))c288:%6$78%' ! ) }}///%%'113!8
 
 	
 
 ]]2??!57 7""$7 ]]=))""$ *)	7 7 *))   D?D-D*	-D>	c                   R p\        ^
R7      p\        RR7      p\        P                  ! R\        P                  ! 4       3.4      pV P                  VVVR7      pVP                  V8X  g   Q hVP                  4       P                  4       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     LM; i  + '       g   i     R# ; ir'  r*  r+  s   &     r   )test_non_linewise_chunker_bad_first_blockCBaseTestStreamingJSONRead.test_non_linewise_chunker_bad_first_block  r.  r/  c                   R p\        ^
R7      p\        RR7      p\        P                  ! R\        P                  ! 4       3.4      pV P                  VVVR7      pVP                  V8X  g   Q hVP                  4       P                  4       R^ ./8X  g   Q hVP                  4       P                  4       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     LM; i  + '       g   i     R# ; i)	s&   {"n": 0}
{"n":    1}
{}"n":2}
{"n": 3}r   Tr(  r#  rx   r)  rv   Nr*  r+  s   &     r   *test_non_linewise_chunker_bad_middle_blockDBaseTestStreamingJSONRead.test_non_linewise_chunker_bad_middle_block  s3   G"b1$=))c288:%6$78%' ! ) }}///%%'113!8
 
 	
 
 %%'113!8
 
 	
 
 ]]2??!57 7""$7 ]]=))""$ *)	7 7 *))s   ,E'EE	E&	c                   R p\         P                  ! R\         P                  ! 4       3R\         P                  ! 4       3.4      p\	        ^R7      p\        VR7      pRR.RR./pV P                  VVVR7      pV P                  WbV.4       R# )	s       
{"b": true, "s": "foo"}rh   sr   r   TrT   rx   N)r&   r[   r   utf8r   r   r   r  )rg   leading_empty_chunkrW   ry   rz   r   r   s   &      r    test_ignore_leading_empty_blocks:BaseTestStreamingJSONRead.test_ignore_leading_empty_blocks  s    >))"((*"'')%
  #b1$_E$ug
 %' ! ) 	&M?CrI   c           	        R p\         P                  ! R\         P                  ! 4       3R\         P                  ! 4       3.4      pR^ .RR./p\	        ^ R7      p\        RR7      pV P                  VVVR7      pVP                  V8X  g   Q hVP                  4       P                  4       V8X  g   Q h\        P                  ! \         P                  RR	7      ;_uu_ 4        VP                  4        R
R
R
4       \         P                  ! R\         P                  ! 4       3R\         P                  ! 4       3R\         P                  ! 4       3.4      pR^ ^.RRR
.RR
R./p\	        ^@R7      pV P                  WVR7      pVP                  V8X  g   Q hVP                  4       P                  4       V8X  g   Q h\        P                  ! \         P                  RR	7      ;_uu_ 4        VP                  4        R
R
R
4       \         P                  ! R\         P                  ! 4       3R\         P                  ! 4       3R\         P                  ! 4       3R\         P                  ! 4       3.4      pR. ROR. ROR. ROR. RO/p\	        ^`R7      pV P                  WVR7      pVP                  V8X  g   Q hVP                  4       P                  4       V8X  g   Q hR
#   + '       g   i     EL; i  + '       g   i     L; i)sI   {"a": 0, "b": "foo"    }
        {"a": 1, "c": true  }
{"a": 2, "d": 4.0}r{   rh   rT   r   rU   )rY   rx   r   rv   Nrq   Tr   )r   r}   r~   )rT   NN)NTN)NNr   )r&   r[   r(   r8  r   r   r   r  r   r^   r_   r   r   r   )rg   r   r   r   ry   rz   r   s   &      r   test_inference(BaseTestStreamingJSONRead.test_inference-  s   3))"((*"'')%
  qc30"b1$wG%' ! ) }}///%%'113}DDD]]2??!EG G""$G ))"((*"'')"((*%
 
 q!fcE4=#d|L"b1/< ! >}}///%%'113}DDD]]2??!EG G""$G ))"((*"'')"((*"**,	%
  i.A0#7HJ"b1/< ! >}}///%%'113}DDD?G G GG Gs   K#K)K&	)K9	r<   N)r   r   r   r   r   r   r  rj   r   r  r  r  r   r$  r,  r1  r4  r:  r=  r   r   r   s   @r   r   r   q  s\     	0977DH%(HH%*%*%*%2D$0E 0ErI   r   c                   &   a  ] tR tRt o R tRtV tR# )TestSerialJSONReadi`  c                    VP                  R \        4       4      pRVn        \        V/ VB pVP	                  RR7       V# )ry   FTr   r   r   rL   r   r   rg   r   ri   ry   ro   s   &*,  r   r   TestSerialJSONRead.read_jsonb  s@    ((G#( 4*6*D!rI   r<   Nr   r   r   r   r   r   r   r   s   @r   r@  r@  `        rI   r@  c                   &   a  ] tR tRt o R tRtV tR# )TestParallelJSONReadij  c                    VP                  R \        4       4      pRVn        \        V/ VB pVP	                  RR7       V# )ry   Tr   rB  rC  s   &*,  r   r   TestParallelJSONRead.read_jsonl  s@    ((G#' 4*6*D!rI   r<   NrE  r   s   @r   rH  rH  j  rF  rI   rH  c                       ] tR tRtRtRtR# )TestSerialStreamingJSONReadit  Fr<   Nr   r   r   r   rL   r   r<   rI   r   rL  rL  t  s    KrI   rL  c                       ] tR tRtRtRtR# )TestThreadedStreamingJSONReadiy  Tr<   NrM  r<   rI   r   rO  rO  y  s	     KrI   rO  )r~   
   z
)%r   collectionsr   decimalr   r   r   r"   r   unittestr   r   ImportErrorr^   pyarrowr&   pyarrow.jsonr   r   r   r   r   r9   rH   rR   ra   ABCrc   r   r   TestCaser@  rH  rL  r   	threadingrO  r<   rI   r   <module>rZ     s  $  #  	       H H!
048 EFHI377 HIV!4| !4HlE lE^)8+<+< +X->-> ";X=N=N 
 $=x?P?P  {  	Bs   C- -	C98C9