+
    JV-jÃ[  ã                   óø  € ^ 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 LÎi ; 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      Úh/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/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+                  WÄ4      pW­3# 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ý   € Ü
�)‰)×
Ñ
 Ó
#×
+Ñ
+¨A¨t¸8Ð:NÐ
+Ó
O€CÜ”Y×%Ò%Ô&8Ó&:¸HÓEÓF€IØ€EØ�uŒuˆÜ¼#¸iÔ:MÔNÑ:M±° ¤C¨£F£Ñ:MÒNÓOˆØ�‰”T—Z’Z Ó)Ö*ñ ð �<‰<˜Ó×%Ñ%Ó'€DÙ9<Ó=¹°#Œr�xŠx˜¤"§(¢(£*×-¹€GÐ=Ü�x‰x×#Ñ# GÓ7€HØˆ>Ðùó  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Ÿ]™]¨4Ø4;×4LÑ4Lð +ó 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Ù‹5€Dà�?‰?˜QÔÐÐØ€D„OØ�?‰?˜eÔ#Ð#Ð#à×Ñ˜tÓ#Ð#Ð#Ø€DÔØ×Ñ˜uÓ$Ð$Ð$á˜$¨EÔ2€DØ�?‰?˜dÔ"Ð"Ð"Ø×Ñ˜uÓ$Ð$Ð$ðÐô �‹:Ð6Ð7JÐ6KÈ1ÐMÔMÐMÐMÜˆt‹9˜,Ð':Ð&;¸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Ù‹5€DØ×"Ñ" eÓ+Ð+Ð+Ø×ÑÒ'Ð'Ð'à"€DÔØ×"Ñ" dÓ*Ð*Ð*ð)Ðô
 �‹:Ð7Ð8KÐ7LÈAÐNÔNÐNÐNÜˆt‹9˜-Ð(;Ð'<¸AÐ>Ô>Ð>Ð>ä�YŠYœŸš ¬¯ª«
Ó3Ð4Ó5€FØ!ÔØ×Ñ 6Ô)Ð)Ð)à×)Ñ)¨WÔ4Ð4Ð4Û-ˆØ).Ô&Ø×-Ñ-°Ö6Ð6Ð6ñ .ô 
�Š”z×	"Õ	"Ø)8ˆÔ&÷ 
#ô ! Ø17Ø49Ø;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à—O‘O DØ2?ð $ô A÷Gô #(¨¨2¦,�JØ.8Ô+Ø ŸO™O¨DØ:Gð ,ó I�Eà Ÿ?™?Ó,°²iÐ0@Ö@Ð@Ð@ó	 #/ó '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¤"§(¢(¬2¯7ª7«9Ó"5Ð6Ð7Ó8ˆØ�|‰|˜vÔ%Ð%Ð%Ø�‰Ó  S¨2¨$ 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µ   € ðˆð
 ”'˜#“,¤¨£´¸Ó1CÀTÐJð
ˆô Ÿ™¤r§|¡|´R·]±]ÄBÇMÁMÐRˆÛ)ˆLÜ—Y’Y ¡l°1°aÓ&8Ð 9Ð:Ó;ˆFÜ°Ô7ˆDØ—O‘O D�OÓ=ˆ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�  € ð.ˆä—’Ø”B—I’I“KÐ ð
ó ˆô ¨FÔ3ˆØ—‘ �Ó9ˆØ�|‰|œrŸyšyØ”B—I’I“KÐ Ø”B—H’H“JÐð*
ó  ô ð 	ð ð �‰Ó Ø�F˜FÐ#Ø�A�q�6ð%
ô 
ð 	
ð 
ô ¨FØ6>ô@ˆà—‘ �Ó9ˆØ�|‰|œrŸyšyØ”B—I’I“KÐ ð*
ó  ô ð 	ð ð �‰Ó Ø�F˜FÐ#ð%
ô 
ð 	
ð 
ô
 ¨FØ6=ô?ˆä�]Š]œ2Ÿ?™?Ø!E÷Gö Gà�O‰O˜DˆOÔ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   € ä)°1¸rÔ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   € ä)°1¸vÔ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Ô+Ø ŸO™O¨DØ:Gð ,ó I�Eà Ÿ<™<¨8¯?©?Ô:Ð:Ð:Ø Ÿ<™<¨×1Ô1à$Ÿ™Ó0°H×4FÑ4FÓ4HÖ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ò"#6ðJ ‡[�[×Ññ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  ó   € Ø�~Š~œbŸlšl¨1›oÑ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ˆ   € Ø$ˆØ˜q˜c 3¨¨Ð,ˆÜ�jŠj˜ÓˆØ—‘˜sÓ#ˆØ�‰Ó  MÔ1Ð1Ð1ä�kŠk˜$Ÿ+™+›-Ó(ˆÜ�]Š]œ9×%Õ%Ø�N‰N˜3Ô÷ &×%×%Ò%ú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 "˜:Ð&Ø'¨$°°a°S°EÐ):Ð;Ø˜D "˜:Ð&Ø1Ø�S˜$�K #¨¨Q x Ð1ð3ó+
Ñ&ˆIð —O‘O IÕ$9Ø1=ð $ó ?ˆ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Ø�N‰N ˆ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   € Ø$ˆØ˜q˜c 3¨¨Ð,ˆÜ�jŠj˜ÓˆØ—‘ Ó$ˆÜŸ)š) c¬2¯8ª8«:Ð%6Ø&)¬2¯8ª8«:Ð%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   € Ø;ˆÜ"“}ˆØ"#ˆÔÜ�]Š]Ü�O‰OØE÷
ö 
ð �O‰O˜OˆOÔ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ò   € Ø>ÐÜ"“}ˆØ"$ˆÔÜŸ)š) c¬2¯8ª8«:Ð%6Ð$7Ó8ˆà—‘Ð!1�ÓMˆØ�}‰} Ô/Ð/Ð/Ø×%Ñ%Ó'×1Ñ1Ó3Ø�!�ð8
ô 
ð 	
ð 
ô �]Š]Ü�O‰OØ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à�O‰O˜OˆOÔ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à�O‰O˜OˆOÔ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ÐÜ"“}ˆØ"$ˆÔÜŸ)š) c¬2¯8ª8«:Ð%6Ð$7Ó8ˆà—‘Ð!1�ÓMˆØ�}‰} Ô/Ð/Ð/Ø×%Ñ%Ó'×1Ñ1Ó3Ø�$�ð8
ô 
ð 	
ð 
ô �]Š]Ü�O‰Oð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ˆÜ$¸Ô=ˆÜŸ)š) c¬2¯8ª8«:Ð%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_blockÚCBaseTestStreamingJSONRead.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_blockÚDBaseTestStreamingJSONRead.test_non_linewise_chunker_bad_middle_block  s3  € ØGÐÜ"¨bÔ1ˆÜ$¸Ô=ˆÜŸ)š) c¬2¯8ª8«:Ð%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ˆà�$�˜˜u˜gð
ˆð —‘ØØ%Ø'ð !ó )ˆð 	×Ñ˜&°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ˆäŸ)š)Ø”"—(’(“*ÐØ”"—'’'“)Ðð%
ó ˆð ˜q˜c 3¨¨Ð0ˆä"¨bÔ1ˆÜ$¸wÔGˆØ—‘ØØ%Ø'ð !ó )ˆð �}‰} Ô/Ð/Ð/Ø×%Ñ%Ó'×1Ñ1Ó3°}ÔDÐDÐDÜ�]Š]œ2Ÿ?™?Ø!E÷Gö Gà×"Ñ"Ô$÷Gô Ÿ)š)Ø”"—(’(“*ÐØ”"—'’'“)ÐØ”"—(’(“*Ðð%
ó ˆð
 ˜q !˜f c¨E°4¨=¸#ÀÀ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ò4ò8 EôFHI�3—7‘7ô HIôV!4�|ô !4ôHlE ô lEô^Ð)¨8×+<Ñ+<ô ôÐ+¨X×->Ñ->ô ôÐ";¸X×=NÑ=Nô ð
 ‡�×ÑôÐ$=¸x×?PÑ?Pó ó òøð{ ô Ø	‚Bðús   ¦C- Ã-	C9Ã8C9