
    z-PhY                        d dl Z d dlmZ d dlmZ d dlZd dlZd dlZd dlZd dl	Z		 d dl
Zn# e$ r dZY nw xY wd dlZd dlZd dlmZmZmZmZ d Zdd	Zd
 Zd Zd Z G d de j                  Z G d de          Z G d de          Z G d dee	j                  Z G d dee	j                  Z  G d dee	j                  Z!ej"        j#         G d dee	j                              Z$dS )    N)OrderedDict)Decimal)	read_json	open_jsonReadOptionsParseOptionsc               #   T   K   t           j        } | E d {V  | D ]}| D ]	}||z   V  
d S N)stringascii_lowercase)lettersfirstseconds      W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/test_json.pygenerate_col_namesr   %   sf      $G ! ! 	! 	!F&.    	!! !       
   
c                 .   t           j                            d                              dd| |f          }t	          t          j        t                      |                     }g }|j        D ]P}t          d t          ||          D                       }|                    t          j        |                     Q|                    |                                          }d |D             }	t           j                            |	|          }
||
fS )N*   r     )sizec                 6    g | ]\  }}|t          |          fS  )int).0kvs      r   
<listcomp>z$make_random_json.<locals>.<listcomp>3   s&    NNNACFFNNNr   c                 \    g | ])}t          j        |t          j                               *S ))type)paarrayint64)r   cols     r   r    z$make_random_json.<locals>.<listcomp>6   s-    ===#rx"(**---===r   )nprandomRandomStaterandintlist	itertoolsislicer   Tr   zipappendjsondumpsjoinencoder#   Tablefrom_arrays)num_colsnum_rowslineseparr	col_nameslinesrowjson_objdatacolumnsexpecteds              r   make_random_jsonrB   .   s    
)


#
#
+
+At8X:N
+
O
OCY%&8&:&:HEEFFIEu + +NN#i:M:MNNNOOTZ))****<<%%''D=====Gx##GY77H>r   c                      | di |}|                     |                    ||j                            }|                                D ]\  }}t	          ||          |k    sJ d S )N)protocolr   )loadsr2   HIGHEST_PROTOCOLitemsgetattr)clspicklerattr_valuesoptsnew_optsnamevalues          r   check_options_class_picklingrP   ;   s    3D}}W]]44;4L + N N O OH"((** 0 0ex&&%/////0 0r   c                    t           } |            }|j        dk    sJ d|_        |j        dk    sJ |j        du sJ d|_        |j        du sJ  |dd          }|j        dk    sJ |j        du sJ t          || dd           d S )Nr   i90  TFi  )
block_sizeuse_threads)rJ   rR   rS   )r   rR   rS   rP   )pickle_modulerI   rL   s      r   test_read_optionsrU   C   s    
C355D?QDO?e####t####Du$$$$3$E222D?d""""u$$$$ m,0-24 4 4 4 4 4r   c                    t           } |            }|j        du sJ |j        J d|_        |j        du sJ t          j        t          j        dt          j                              g          }||_        |j        |k    sJ |j        dk    sJ dD ]}||_        |j        |k    sJ t          j	        t                    5  d|_        d d d            n# 1 swxY w Y   t          || |dd           d S )	NFTfooinfer)ignoreerrorrX   zinvalid-valuerY   )rJ   explicit_schemanewlines_in_valuesunexpected_field_behavior)r   r\   r[   r#   schemafieldint32r]   pytestraises
ValueErrorrP   )rT   rI   rL   r^   rO   s        r   test_parse_optionsrd   X   sv   
C355D"e++++'''"D"d****Y

33455F!D6)))))W4444- 7 7).&-66666	z	"	" 9 9)8&9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 !m1749;CE E E E E Es   CCCc                       e Zd Zej        d             Zd Zd Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zej        j        d             Zej        j        d             Zej        j        d             ZdS )BaseTestJSONc                     t           )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_byteszBaseTestJSON.read_bytest   s
     "!r   c                 h    |j         t          |          k    sJ d |j        D             |k    sJ d S )Nc                     g | ]	}|j         
S r   )rN   )r   cs     r   r    z,BaseTestJSON.check_names.<locals>.<listcomp>   s    ...1...r   )num_columnslenr@   )rj   tablenamess      r   check_nameszBaseTestJSON.check_names}   sC     CJJ.........%777777r   c                    d}t                      }t                      }||dz   fD ]}dD ]}||_        d|_        t	          j        t          d          5  |                     |||           d d d            n# 1 swxY w Y   t          dd	          D ]?}||_        |                     |||          }|	                                d
g dik    sJ @d S )Ns   {"a": 1}
{"a": 2}
{"a": 3}   
FT   ztry to increase block sizematchread_optionsparse_options	      a)   r      )
r   r   r\   rR   ra   rb   rc   rm   range	to_pydict)rj   rowsr}   r~   r?   r\   rR   rs   s           r   test_block_sizeszBaseTestJSON.test_block_sizes   s   ."}}$4%<( 	A 	AD&3 A A"3E0*+']:)EG G G A AOOD|2? $ A A AA A A A A A A A A A A A A A A #(2,, A AJ.8L+ OOD|:G , I IE ??,,iii0@@@@@@	AA	A 	As   A::A>A>c                 |    d}|                      |          }|                                ddgddgddgdk    sJ d S )	Ns/   {"a": 1,"b": 2, "c": 3}
{"a": 4,"b": 5, "c": 6}r   ry   r      r      r   rk   rp   )rm   r   )rj   r   rs   s      r   test_no_newline_at_endz#BaseTestJSON.test_no_newline_at_end   sb    B%%  QQQ%
 %
 
 
 
 
 
 
r   c                 6   d}|                      |          }t          j        dt          j                    fdt          j                    fdt          j                    fg          }|j        |k    sJ |                                ddgddgd	d
gdk    sJ d S )Ns0   {"a": 1,"b": 2, "c": 3}
{"a": 4,"b": 5, "c": 6}
r   rk   rp   r   ry   r   r   r   r   r   )rm   r#   r^   r%   r   rj   r   rs   r^   s       r   test_simple_intszBaseTestJSON.test_simple_ints   s    D%%S"(**- "(**- "(**-/ 0 0 |v%%%%  QQQ%
 %
 
 
 
 
 
 
r   c                 d   d}|                      |          }t          j        dt          j                    fdt          j                    fdt          j                    fdt          j                    fg          }|j        |k    sJ |                                ddgdd	gd
dgddgdk    sJ d S )NsQ   {"a": 1,"b": 2, "c": "3", "d": false}
{"a": 4.0, "b": -5, "c": "foo", "d": true}
r   rk   rp   d      ?      @r   3rW   FTr   rk   rp   r   )rm   r#   r^   float64r%   r   bool_r   r   s       r   test_simple_variedzBaseTestJSON.test_simple_varied   s    @%%S"*,,/ "(**- ")++. "(**-/ 0 0 |v%%%%  sRu	%
 %
 
 
 
 
 
 
r   c           	         d}|                      |          }t          j        dt          j                    fdt          j                    fdt          j                    fdt          j                    fdt          j                    fg          }|j        |k    sJ |                                g dg dg d	g d
g ddk    sJ d S )Ns   {"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   rk   rp   r   e)r   Ng      @)r   r   N)NrW   nan)NNN)NTF)r   rk   rp   r   r   )	rm   r#   r^   r   r%   r   nullr   r   r   s       r   test_simple_nullszBaseTestJSON.test_simple_nulls   s    M %%S"*,,/ "(**- ")++. "')), "(**-	/ 0 0
 |v%%%%  !!!%%%###$$$%
 %
 
 
 
 
 
 
r   c                     d}|                      |          }t          j        dt          j        t          j                              fg          }|j        |k    sJ |                                dg gik    sJ d S )N	   {"a": []}r   )rm   r#   r^   list_r   r   r   s       r   test_empty_listszBaseTestJSON.test_empty_lists   sy    %%S"(2799"5"56788|v%%%%  S2$K//////r   c                     d}|                      |          }t          j        g           }|j        |k    sJ |j        dk    sJ |j        dk    sJ d S )Ns   {}
{}
r   r   )rm   r#   r^   rq   r8   r   s       r   test_empty_rowszBaseTestJSON.test_empty_rows   se    %%2|v%%%% A%%%%~""""""r   c                    d}dt          d          t          d          t          d          d gi}t          j        t          j        t          j        t          j        f}|D ]q}t          j        d |dd          fg          }t          |          }|                     ||	          }|j        |k    sJ |	                                |k    sJ rd S )
Ns'   {"a": 1}
{"a": 1.45}
{"a": -23.456}
{}
r   1z1.45z-23.456r   ry   r[   r~   )
r   r#   	decimal32	decimal64
decimal128
decimal256r^   r   rm   r   )rj   r   rA   decimal_typestype_factoryr^   rL   rs   s           r   test_explicit_schema_decimalz)BaseTestJSON.test_explicit_schema_decimal   s    
 '#,,1C1CTJ
 r|R]BMR) 	1 	1LYll1a&8&8 9:;;F777DOODO==E<6))))??$$00000	1 	1r   c                 ,   d}t          j        dt          j                    fg          }t          |          }|                     ||          }|j        t          j        dt          j                    fdt          j                    fg          k    sJ |                                ddgdd	gd
k    sJ t          |d          }|                     ||          }|j        t          j        dt          j                    fg          k    sJ |                                dddgik    sJ t          |d          }t          j        t           j	        d          5  |                     ||           d d d            d S # 1 swxY w Y   d S )Ns2   {"foo": "bar", "num": 0}
{"foo": "baz", "num": 1}
rW   r   r   nums   bars   bazr   r   )rW   r   rY   )r[   r]   rZ   "JSON parse error: unexpected fieldrz   )
r#   r^   binaryr   rm   r%   r   ra   rb   ArrowInvalid)rj   r   r^   rL   rs   s        r   .test_explicit_schema_with_unexpected_behaviourz;BaseTestJSON.test_explicit_schema_with_unexpected_behaviour   s-   .BIKK 
   F333D99|ryBIKK BHJJ*
           F#q6%
 %
 
 
 
 
 F6>@ @ @D99|ryBIKK *
           FF#%
 
 
 
 

 F6=? ? ?]2?!EG G G 	6 	6OODO555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   $F		FFc                    t          dd          \  }}|                     |          }|j        |j        k    sJ |                    |          sJ |                                |                                k    sJ d S )Nr   r   r7   r8   )rB   rm   r^   equalsr   )rj   r?   rA   rs   s       r   test_small_random_jsonz#BaseTestJSON.test_small_random_json  s    )1rBBBh%%|x....||H%%%%%  H$6$6$8$8888888r   c                     t          dd          \  }}t          d          }|                     ||          }|j        dk    sJ |j        dk    sJ d S )Nr   i r   i   rR   r}   )rB   r   rm   r8   )rj   r?   rA   r}   rs   s        r   test_load_large_jsonz!BaseTestJSON.test_load_large_json!  sj    )1vFFFh"l;;;<@@~'''' F******r   c                    t          dd          \  }}t                      }t                      }||                    d          fD ]}dD ]}||_        dD ]t}||_        |                     |||          }|j        |j        k    sJ |                    |          s,|	                                |	                                k    sJ ud S )Nr   d   r   s   
rx   )      %   r|   )
rB   r   r   rstripr\   rR   rm   r^   r   r   )	rj   	data_baserA   r}   r~   r?   r\   rR   rs   s	            r   test_stress_block_sizesz$BaseTestJSON.test_stress_block_sizes*  s    /CHHH	8"}}$	 0 0 9 9: 
	I 
	ID&3 	I 	I"3E0". I IJ.8L+ OOD|:G , I IE <8?:::: <<11 I$00H4F4F4H4HHHHHI	I
	I 
	Ir   N)__name__
__module____qualname__abcabstractmethodrm   ru   r   r   r   r   r   r   r   r   r   ra   marknumpyr   r   r   r   r   r   rf   rf   s   s3       " " "8 8 8A A A,
 
 

 
 

 
 
"
 
 
(0 0 0# # #1 1 1"#6 #6 #6J [9 9 9 [+ + + [I I I I Ir   rf   c                        e Zd Zd Zd Zd ZdS )BaseTestJSONReadc                 B     | j         t          j        |          fi |S r
   )r   r#   	py_bufferri   s      r   rm   zBaseTestJSONRead.read_bytes@  $    t~bl1oo88888r   c                 x   d}dgdgd}t          j        |          }|                     |          }|                                |k    sJ t          j        |                                          }t          j        t                    5  |                     |           d d d            d S # 1 swxY w Y   d S )N   {"a": 1, "b": 2}
r   r   r   rk   )	ioBytesIOr   r   StringIOdecodera   rb   	TypeError)rj   r?   expected_databiors   sios         r   test_file_objectz!BaseTestJSONRead.test_file_objectC  s    $ c,,js##  M1111k$++--((]9%% 	  	 NN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   B//B36B3c           
      J   d}t          t          |                    }dd dgfdd g gfdd g dgggfdd i gfd	d d
d id
ddiigffD ]]\  }}|                     ||z   |          }d|i}|                                |k    sJ |                    d          j        dk    sJ ^d S )Ns"   {                               }
r   s   {"a": 0}r   r   s   {"a": []}
{"a": [[1]]}r   s	   {"a": {}}s    {"a": {}}
{"a": {"b": {"c": 1}}}rk   rp   r   r   )r   rr   rm   r   column
num_chunks)rj   	first_rowr}   	next_rowsexpected_pylistrs   rA   s          r   test_reconcile_across_blocksz-BaseTestJSONRead.test_reconcile_across_blocksN  s    :	"c)nn===4)$D":&'$aSE):;D":&1S$K#Qx13+
 	4 	4&I OOI	$91= $ ? ?E_-H??$$0000<<$$/!33333	4 	4r   N)r   r   r   rm   r   r   r   r   r   r   r   >  sA        9 9 9	  	  	 4 4 4 4 4r   r   c                   h    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd ZdS )BaseTestStreamingJSONReadc                 ~    |                     dt                                }| j        |_        t          |g|R i |S )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
        r}   )
setdefaultr   rS   r   )rj   r1   argsrl   r}   s        r   r   z#BaseTestStreamingJSONRead.open_jsonc  sF     ((GG#'#3 ///////r   c                 B     | j         t          j        |          fi |S r
   )r   r#   r   ri   s      r   
open_bytesz$BaseTestStreamingJSONRead.open_bytesn  r   r   c                 (   |j         |k    sJ t          |          }t          |          t          |          k    sJ t          ||          D ]B\  }}|                    d           |j         |k    sJ |                                |k    sJ Cd S )NTfull)r^   r+   rr   r/   validater   )rj   readerexpected_schemar   batchesbatchexpected_batchs          r   check_readerz&BaseTestStreamingJSONRead.check_readerq  s    }////v,,7||s=111111%(-%@%@ 	7 	7!E>NNN%%%<?2222??$$66666	7 	7r   c                 B     | j         |fi |                                S r
   )r   read_allri   s      r   rm   z$BaseTestStreamingJSONRead.read_bytesz  s(    tq++F++44666r   c                    d}dgdgd}t          j        |          }|                     |          }t          j        dt          j                    fdt          j                    fg          }|                     |||g           d S )Nr   r   r   r   r   rk   )r   r   r   r#   r^   r%   r   )rj   r?   r   r   r   r   s         r   r   z*BaseTestStreamingJSONRead.test_file_object}  s    $ c,,j$$)c28::%6&)28::%6%8 9 9&/M?CCCCCr   c                     d}t                      }d|_        t          j        t          j        d          5  |                     ||           d d d            d S # 1 swxY w Y   d S )Ns   {"i": 0            }
{"i": 1}r   1straddling object straddles two block boundaries*rz   r   r   rR   ra   rb   r#   r   r   )rj   bad_first_chunkr}   s      r   test_bad_first_chunkz.BaseTestStreamingJSONRead.test_bad_first_chunk  s    ;"}}"#]OE
 
 
 	H 	H OOO,OGGG		H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H   AA!$A!c                 N   d}t                      }d|_        t          j        dt          j                    fg          }|                     ||          }|j        |k    sJ |                                                                ddgik    sJ t          j	        t          j
        d          5  |                                 d d d            n# 1 swxY w Y   t          j	        t                    5  |                                 d d d            d S # 1 swxY w Y   d S )Ns   {"i": 0}
{"i":     1}
{"i": 2}r   ir   r   r   rz   r   rR   r#   r^   r%   r   read_next_batchr   ra   rb   r   StopIterationrj   bad_middle_chunkr}   r   r   s        r   test_bad_middle_chunkz/BaseTestStreamingJSONRead.test_bad_middle_chunk  s   >"}}"$)c28::%6$788!1MM}////%%''1133!8
 
 
 
 
 ]OE
 
 
 	% 	% ""$$$		% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ]=)) 	% 	%""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%$   3CCC8DD!Dc                     d}t                      }d|_        t          j        t          j        d          5  |                     ||           d d d            d S # 1 swxY w Y   d S )Ns   {"n": }
{"n": 10000}   !JSON parse error: Invalid value.*rz   r   r   rj   bad_first_blockr}   s      r   test_bad_first_parsez.BaseTestStreamingJSONRead.test_bad_first_parse  s    2"}}"$]2?!DF F F 	H 	HOOO,OGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hr   c                     d}t                      }d|_        t          j        t          j        d          5  |                     ||           d d d            d S # 1 swxY w Y   d S )Ns"   {            }{"n": }
{"n": 10000}r	  r
  rz   r   r   r  s      r   !test_bad_middle_parse_after_emptyz;BaseTestStreamingJSONRead.test_bad_middle_parse_after_empty  s    @"}}"$]2?!DF F F 	H 	HOOO,OGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hr   c                 N   d}t                      }d|_        t          j        dt          j                    fg          }|                     ||          }|j        |k    sJ |                                                                ddgik    sJ t          j	        t          j
        d          5  |                                 d d d            n# 1 swxY w Y   t          j	        t                    5  |                                 d d d            d S # 1 swxY w Y   d S )Ns%   {"n": 1000}
{"n": 200 00}
{"n": 3000}r   nr   r   z@JSON parse error: Missing a comma or '}' after an object member*rz   r  r  s        r   test_bad_middle_parsez/BaseTestStreamingJSONRead.test_bad_middle_parse  s   E"}}"$)c28::%6$788!1MM}////%%''1133$8
 
 
 
 
 ]O1
 
 
 	% 	%
 ""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ]=)) 	% 	%""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%r  c                 f   d}t          d          }t          d          }t          j        dt          j                    fg          }|                     |||          }|j        |k    sJ |                                                                ddgik    sJ t          j	        t          j
        d	
          5  |                                 d d d            n# 1 swxY w Y   t          j	        t                    5  |                                 d d d            d S # 1 swxY w Y   d S Ns   {"n": 0}{1}
{"n": 2}r   r   Tr\   r  r|   r   JSON parse error *rz   r   r   r#   r^   r%   r   r  r   ra   rb   r   r  rj   r  r}   r~   r   r   s         r   %test_non_linewise_chunker_first_blockz?BaseTestStreamingJSONRead.test_non_linewise_chunker_first_block     3"b111$===)c28::%6$788%' ! ) ) }////%%''1133!8
 
 
 
 
 ]2?!57 7 7 	% 	%""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ]=)) 	% 	%""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%$   ?C  C$'C$D&&D*-D*c                 f   d}t          d          }t          d          }t          j        dt          j                    fg          }|                     |||          }|j        |k    sJ |                                                                ddgik    sJ t          j	        t          j
        d	
          5  |                                 d d d            n# 1 swxY w Y   t          j	        t                    5  |                                 d d d            d S # 1 swxY w Y   d S r  r  r  s         r   )test_non_linewise_chunker_bad_first_blockzCBaseTestStreamingJSONRead.test_non_linewise_chunker_bad_first_block  r  r  c                    d}t          d          }t          d          }t          j        dt          j                    fg          }|                     |||          }|j        |k    sJ |                                                                ddgik    sJ |                                                                dd	gik    sJ t          j	        t          j
        d
          5  |                                 d d d            n# 1 swxY w Y   t          j	        t                    5  |                                 d d d            d S # 1 swxY w Y   d S )Ns&   {"n": 0}
{"n":    1}
{}"n":2}
{"n": 3}r   r   Tr  r  r|   r   r   r  rz   r  r  s         r   *test_non_linewise_chunker_bad_middle_blockzDBaseTestStreamingJSONRead.test_non_linewise_chunker_bad_middle_block  s   G"b111$===)c28::%6$788%' ! ) ) }////%%''1133!8
 
 
 
 
 %%''1133!8
 
 
 
 
 ]2?!57 7 7 	% 	%""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ]=)) 	% 	%""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s$   .DDD3EEEc                 0   d}t          j        dt          j                    fdt          j                    fg          }t	          d          }t          |          }dgdgd	}|                     |||
          }|                     |||g           d S )Ns       
{"b": true, "s": "foo"}rk   s   r   r   TrW   )rk   r!  r|   )r#   r^   r   utf8r   r   r   r   )rj   leading_empty_chunkr[   r}   r~   r   r   s          r    test_ignore_leading_empty_blocksz:BaseTestStreamingJSONRead.test_ignore_leading_empty_blocks  s    >)"(**"'))%
   #b111$_EEEug
 
 %' ! ) ) 	&/M?CCCCCr   c                    d}t          j        dt          j                    fdt          j                    fg          }dgdgd}t	          d          }t          d	
          }|                     |||          }|j        |k    sJ |                                                                |k    sJ t          j
        t           j        d          5  |                                 d d d            n# 1 swxY w Y   t          j        dt          j                    fdt          j                    fdt          j                    fg          }ddgdd gd dgd}t	          d          }|                     |||          }|j        |k    sJ |                                                                |k    sJ t          j
        t           j        d          5  |                                 d d d            n# 1 swxY w Y   t          j        dt          j                    fdt          j                    fdt          j                    fdt          j                    fg          }g dg dg dg dd}t	          d          }|                     |||          }|j        |k    sJ |                                                                |k    sJ d S )NsI   {"a": 0, "b": "foo"    }
        {"a": 1, "c": true  }
{"a": 2, "d": 4.0}r   rk   r   rW   r       r   rX   )r]   r|   r   rz   rp   r   Tr   @   r   )r   r   r   )rW   NN)NTN)NNr   r   `   )r#   r^   r%   r#  r   r   r   r  r   ra   rb   r   r   r   )rj   r   r   r   r}   r~   r   s          r   test_inferencez(BaseTestStreamingJSONRead.test_inference  s   3)"(**"'))%
    !c00"b111$wGGG%' ! ) ) }////%%''1133}DDDD]2?!EG G G 	% 	%""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% )"(**"'))"(**%
  
  !!fE4=d|LL"b111L/< ! > >}////%%''1133}DDDD]2?!EG G G 	% 	%""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% )"(**"'))"(**"*,,	%
   (ii.A.A.A0007H7H7HJ J"b111L/< ! > >}////%%''1133}DDDDDDs$   C88C<?C< HHHN)r   r   r   r   r   r   rm   r   r   r  r  r  r  r  r  r  r%  r*  r   r   r   r   r   b  s	       	0 	0 	09 9 97 7 77 7 7D D DH H H% % %(H H HH H H% % %*% % %*% % %*% % %2D D D$0E 0E 0E 0E 0Er   r   c                       e Zd Zd ZdS )TestSerialJSONReadc                     |                     dt                                }d|_        t          |i |}|                    d           |S )Nr}   FTr   r   r   rS   r   r   rj   r   rl   r}   rs   s        r   r   zTestSerialJSONRead.read_jsonS  sN    ((GG#( 4*6**D!!!r   Nr   r   r   r   r   r   r   r,  r,  Q  #            r   r,  c                       e Zd Zd ZdS )TestParallelJSONReadc                     |                     dt                                }d|_        t          |i |}|                    d           |S )Nr}   Tr   r.  r/  s        r   r   zTestParallelJSONRead.read_json]  sN    ((GG#' 4*6**D!!!r   Nr0  r   r   r   r3  r3  [  r1  r   r3  c                       e Zd ZdZdS )TestSerialStreamingJSONReadFNr   r   r   rS   r   r   r   r6  r6  e  s        KKKr   r6  c                       e Zd ZdZdS )TestThreadedStreamingJSONReadTNr7  r   r   r   r9  r9  j  s         KKKr   r9  )r   r   r   )%r   collectionsr   decimalr   r   r,   r1   r   unittestr   r'   ImportErrorra   pyarrowr#   pyarrow.jsonr   r   r   r   r   rB   rP   rU   rd   ABCrf   r   r   TestCaser,  r3  r6  r   	threadingr9  r   r   r   <module>rC     s  $ 


 # # # # # #       				          	BBB      H H H H H H H H H H H H! ! !
 
 
 
0 0 04 4 4*E E E6HI HI HI HI HI37 HI HI HIV!4 !4 !4 !4 !4| !4 !4 !4HlE lE lE lE lE lE lE lE^    )8+<       +X->       ";X=N   
     $=x?P     s   + 55