
    MhI                        S SK Jr  S SKJr  S SKJr  S SKrS SKrS SK	r
S SK	JrJr  S SKJr  S SKJr  \R$                  R'                  S5      r\R*                  S 5       r\R*                  " S	S
/S9S 5       rS rS rS rS rS rS r\R$                  R=                  SSS/5      S 5       rS r S r!S r"S r#\R$                  R=                  SSS/5      S 5       r$\R$                  R=                  S/ SQ5      S 5       r%\R$                  R=                  S/ SQ5      S 5       r&S  r'\R$                  R=                  S!SS"/5      S# 5       r(\R$                  R=                  S$S%S&/5      S' 5       r)S( r*S) r+S* r,\R$                  R=                  S+/ S,Q5      S- 5       r-S. r.\R$                  R=                  S/S0S1/5      S2 5       r/S3 r0S4 r1S5 r2S6 r3g)7    )Iterator)StringIO)PathN)	DataFrame	read_json)
JsonReaderz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                  F    [        / SQ/ SQS.5      n U R                  SSS9$ )N                  ABTrecordslinesorient)r   to_json)dfs    U/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/json/test_readlines.pylines_json_dfr      s$    	3	4B::D:33    ujsonpyarrow)paramsc                 f    U R                   S:X  a  [        R                  " S5        U R                   $ )Nr   zpyarrow.json)parampytestimportorskip)requests    r   enginer&      s&    }}	!N+==r   c                  z    [        [        S5      SS9n [        SS/SS//SS/S9n[        R                  " X5        g )	Nz!{"a": 1, "b": 2}
{"b":2, "a" :1}
Tr   r   r   abcolumns)r   r   r   tmassert_frame_equal)resultexpecteds     r   test_read_jsonlr1   #   s?    x EFdSF1a&1a&)C:>H&+r   c                 |    [        U " SSSS5      SUS9n[        / SQ/ SQS	.5      n[        R                  " X#5        g )
Niojsondataline_delimited.jsonTr   r&   )r   r   r   )r   r   r   r)   r*   )r   r   r-   r.   )datapathr&   r/   r0   s       r   test_read_jsonl_engine_pyarrowr:   *   s@    vv'<=F
 yy9:H&+r   c                 h   US:X  a3  SnU R                  [        R                  R                  U[        S95        [        SS/SS/S4// S	QS
9nUR                  SSS9nUS:X  a  [        [        U5      US9nO[        [        U5      US9n[        / SQ/ SQ// S	QS
9n[        R                  " XV5        g )Nr   zEPyarrow only supports a file path as an input and line delimited jsonreasonraisesr   r   
2020-03-052020-04-08T09:58:49+00:00hector)accountsdatenamer+   Tr   r   r&   )r   r?   rA   )r   r@   rA   )applymarkerr#   markxfail
ValueErrorr   r   r   r   r-   r.   )r%   r&   r=   r   	json_liner/   r0   s          r   test_read_datetimerK   4   s    XFKK--VJ-OP	a&<!<=x	HI,
B 

i
8I8I.v>8I.v>	$&PQ,H &+r   c                      Sn [        U 5      n [        U SS9n[        SS/SS//SS/S	9n[        R                  " X5        Sn [        [        U 5      SS9n[        SS/SS//SS/S	9n[        R                  " X5        g )
Nu5   {"a": "foo”", "b": "bar"}
{"a": "foo", "b": "bar"}
Tr(   u   foo”barfoor)   r*   r+   )r   r   r   r-   r.   )r4   r/   r0   s      r   test_read_jsonl_unicode_charsrO   L   s    
 EDD>Dt4(F;.?#sTH&+ EDx~T2F;.?#sTH&+r   c                     [        SS/SS//SS/S9n U R                  SSS9nS	nX:X  d   e[        S
S/SS//SS/S9n U R                  SSS9nSnX:X  d   e[        R                  " [	        [        U5      SS9U 5        [        SS/SS//SS/S9n U R                  SSS9nSnX:X  d   e[        R                  " [	        [        U5      SS9U 5        g )Nr   r   r)   r*   r+   r   Tr   r   z{"a":1,"b":2}
{"a":1,"b":2}
zfoo}rM   zfoo"z/{"a":"foo}","b":"bar"}
{"a":"foo\"","b":"bar"}
r(   zfoo\za\z4{"a\\":"foo\\","b":"bar"}
{"a\\":"foo\"","b":"bar"}
)r   r   r-   r.   r   r   )r   r/   r0   s      r   test_to_jsonlrR   ^   s    	QFQF#c3Z	8BZZyZ5F/H	VUOfe_5Sz	JBZZyZ5FCH)HV$4DA2F 
We$vuo6	MBZZyZ5FNH)HV$4DA2Fr   c                  x    [        SS/SS//SS/S9n U R                  SSS9R                  S	5      nSnX:X  d   eg )
Nr   r   r)   r*   r+   r   TrQ   
)r   r   count)r   actual_new_lines_countexpected_new_lines_counts      r   test_to_jsonl_count_new_linesrX   s   sO    	QFQF#c3Z	8BZZyZEKKDQ !===r   	chunksizer   g      ?c                 R   US:X  a3  SnU R                  [        R                  R                  U[        S95        [        [        U5      SS9n[        [        U5      SX#S9 n[        R                  " U5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nr   mPyarrow only supports a file path as an input and line delimited jsonand doesn't support chunksize parameter.r<   Tr(   r   rY   r&   )rF   r#   rG   rH   rI   r   r   pdconcatr-   r.   )r%   r   rY   r&   r=   	unchunkedreaderchunkeds           r   test_readjson_chunksrb   {   s     7 	 	FKK--VJ-OP(=1>I	ty
	))F#

 '9-
 
s   !B
B&c                     Sn[         R                  " [        US9   [        [	        U 5      SSUS9 n S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz*chunksize can only be passed if lines=TruematchFr   r\   r#   r>   rI   r   r   )r   r&   msg_s       r   &test_readjson_chunksize_requires_linesri      sR    
6C	z	-]#5Af

 
.	-
 
 
.	-s!   AAA
A	A
A$c                    US:X  a.  SnU R                  [        R                  R                  US95        [        R
                  " SSS.5      n[        UR                  SSS	95      n[        USS
US9n[        UR                  SSS	95      n[        USS
SUS9 n[        R                  " U5      nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nr   r[   )r=   r   r   r   Tr   r   Series)r   typr&   )r   rl   rY   r&   )rF   r#   rG   rH   r]   rk   r   r   r   r^   r-   assert_series_equal)r%   r&   r=   sstrior_   r`   ra   s           r   test_readjson_chunks_seriesrp      s    7 	 	FKK--V-<= 			"#AQYYT)Y<=E%t&IIQYYT)Y<=E	Tx1V
	))F#

 7I.
 
s   C
Cc                 >   US:X  a3  SnU R                  [        R                  R                  U[        S95        [        [        U5      SSUS9 n[        U5      nS S S 5        WS   R                  S:X  d   eUS	   R                  S
:X  d   eg ! , (       d  f       N9= f)Nr   r[   r<   Tr   r\   r   r   r   r   )r   r   )	rF   r#   rG   rH   rI   r   r   listshape)r%   r   r&   r=   r`   chunkss         r   test_readjson_each_chunkrv      s    7 	 	FKK--VJ-OP 
tq
	f
 !9??f$$$!9??f$$$
 
s   B
Bc                    US:X  a3  SnU R                  [        R                  R                  U[        S95        [
        R                  " S5       n[        / SQ/ SQS.5      nUR                  USS	S
9  [        USSUS9 n[        R                  " U5      nS S S 5        [        USUS9n[
        R                  " UW5        S S S 5        g ! , (       d  f       N9= f! , (       d  f       g = f)Nr   r[   r<   	test.jsonr
   r   r   Tr   r   r   r\   r7   )rF   r#   rG   rH   rI   r-   ensure_cleanr   r   r   r]   r^   r.   )r%   r&   r=   pathr   r`   ra   r_   s           r   test_readjson_chunks_from_filer{      s    7 	 	FKK--VJ-OP		%YY78


4tI
6t41VDii'G Ed$v>	
i1 
&	% ED 
&	%s$   0C C
*C

C	C
C)c                    [         R                  " S5       n[        / SQ/ SQS.5      nUR                  USSS9  [	        US SSSSSS	S S SU S S S
9nU   UR                  5         S S S 5        UR                  R                  R                  (       d
   SU  35       e S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nrx   r
   r   r   Tr   r   frameF)r   rl   dtypeconvert_axesconvert_dateskeep_default_datesprecise_float	date_unitencodingr   rY   compressionnrowsz%didn't close stream with chunksize = )	r-   ry   r   r   r   readhandleshandleclosed)rY   rz   r   r`   s       r   test_readjson_chunks_closesr      s    		%YY78


4tI
6#
  KKM  NN!!((	?29+>	?(- 
&	%& V' 
&	%s#   <B6B%$7B6%
B3	/B66
C)r   g@rN   c                     Sn[         R                  " [        US9   [        [	        U 5      SXS9 n S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz"'chunksize' must be an integer >=1rd   Tr\   rf   )r   rY   r&   rg   rh   s        r   test_readjson_invalid_chunksizer      sP    
/C	z	-]#49

 
.	-
 
 
.	-s!   AAA
A	A
A#)Nr   r   c                     Sn[        / SQ/ SQS.5      n[        [        U5      SU S9nU b!  U   [        R                  " U5      nS S S 5        [
        R                  " X#SU  3S9  g ! , (       d  f       N'= f)	NzF

    {"A":1,"B":4}



    {"A":2,"B":5}







    {"A":3,"B":6}
    r
   r   r   Tr   rY   zchunksize: )obj)r   r   r   r]   r^   r-   r.   )rY   jorigtests       r   )test_readjson_chunks_multiple_empty_linesr      sf    	A  9956DXa[	BD99T?D $K	{*CD Ts   A&&
A4c                    US:X  a3  SnU R                  [        R                  R                  U[        S95        [
        R                  " S5       nUR                  SS 5        [        USSS	9 nUR                  S
5        S S S 5        [        XBS9n[        SS/05      n[
        R                  " Xg5        S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr   r[   r<   rx   zlocale.getpreferredencodingc                     g)Ncp949 )do_setlocales    r   <lambda>'test_readjson_unicode.<locals>.<lambda>#  s    PWr   wzutf-8)r   u6   {"£©µÀÆÖÞßéöÿ":["АБВГДабвгд가"]}rE   u   £©µÀÆÖÞßéöÿu   АБВГДабвгд가)rF   r#   rG   rH   rI   r-   ry   setattropenwriter   r   r.   )r%   monkeypatchr&   r=   rz   fr/   r0   s           r   test_readjson_unicoder     s    7 	 	FKK--VJ-OP		%9;WX$g.!GGLM / 4/69R8STU
f/ 
&	%.. 
&	%s$   C/B?5C?
C		C
Cr   r   c                     Sn[        [        U5      SU S9n[        / SQ/ SQS.5      R                  S U  n[        R
                  " X45        g )N[{"a": 1, "b": 2}
        {"a": 3, "b": 4}
        {"a": 5, "b": 6}
        {"a": 7, "b": 8}T)r   r   r   r   r      r   r   r      r8   )r   r   r   ilocr-   r.   )r   r&   jsonlr/   r0   s        r   test_readjson_nrowsr   ,  sG    E xd%@F|,?@EEfuMH&+r   znrows,chunksizerr   )r   r   c                    US:X  a3  SnU R                  [        R                  R                  U[        S95        SnUS:w  a5  [        [        U5      SXUS9 n[        R                  " U5      nS S S 5        O+[        USXUS9 n[        R                  " U5      nS S S 5        [        / SQ/ SQS	.5      R                  S U n[        R                  " WU5        g ! , (       d  f       NE= f! , (       d  f       NV= f)
Nr   r[   r<   r   T)r   r   rY   r&   r   r   r8   )rF   r#   rG   rH   rI   r   r   r]   r^   r   r   r-   r.   )	r%   r   rY   r&   r=   r   r`   ra   r0   s	            r   test_readjson_nrows_chunksr   9  s     7 	 	FKK--VJ-OPE
 UO4uRX
ii'G
 

 U
ii'G
 |,?@EEfuMH'8,
 


 
s   CC*
C'*
C8c                     SnSn[         R                  " [        US9   [        USSU S9  S S S 5        g ! , (       d  f       g = f)Nr   z&nrows can only be passed if lines=Truerd   Fr   )r   r   r&   )r#   r>   rI   r   )r&   r   rg   s      r   "test_readjson_nrows_requires_linesr   X  s8    E 3C	z	-%uAf= 
.	-	-s	   4
Ac                    US:X  a3  SnU R                  [        R                  R                  U[        S95        [        SS//SS/S/S	9[        S
S//SS/S/S	9[        SS//SS/S/S	9/nU" SSSS5      n[        U5      R                  5       n[        USSUS9 n[        U5       H  u  p[        R                  " XU   5        M      S S S 5        g ! , (       d  f       g = f)Nr   r[   r<   r   r   r)   r*   r   )r,   indexr   r   r   r   r3   r4   r5   r6   Tr\   )rF   r#   rG   rH   rI   r   r   as_urir   	enumerater-   r.   )
r%   r9   r&   r=   df_list_expectedos_pathfile_url
url_readerr   chucks
             r   "test_readjson_lines_chunks_fileurlr   d  s     7 	 	FKK--VJ-OP 	Aq6(S#Jqc:Aq6(S#Jqc:Aq6(S#Jqc:
 tVV-BCGG}##%H	841V	D
%j1LE!!%%)@A 2 
E	D	Ds   .C
C!c            
          SS-  n  " S S5      nU" U 5      n[        [        [        USSS95      5      S:  d   eUR                  S	:  d   eg )
Nz\{"a": 1, "b": 2}
        {"a": 3, "b": 4}
        {"a": 5, "b": 6}
        {"a": 7, "b": 8}
i  c                   2    \ rS rSrSS jrS rS\4S jrSrg)	/test_chunksize_is_incremental.<locals>.MyReaderi  returnNc                 2    SU l         [        U5      U l        g )Nr   )
read_countr   stringio)selfcontentss     r   __init__8test_chunksize_is_incremental.<locals>.MyReader.__init__  s    DO$X.DMr   c                 ^    U =R                   S-  sl         U R                  R                  " U6 $ Nr   )r   r   r   )r   argss     r   r   4test_chunksize_is_incremental.<locals>.MyReader.read  s%    OOq O==%%t,,r   c                 V    U =R                   S-  sl         [        U R                  5      $ r   )r   iterr   )r   s    r   __iter__8test_chunksize_is_incremental.<locals>.MyReader.__iter__  s    OOq O&&r   )r   r   )r   N)	__name__
__module____qualname____firstlineno__r   r   r   r   __static_attributes__r   r   r   MyReaderr     s    	/	-	'h 	'r   r   Td   r   r   
   )lenrs   r   r   )r   r   r`   s      r   test_chunksize_is_incrementalr   {  s`    	 		 
' ' e_FtIfDC@ABQFFFr!!!r   orient_)splitr   tablec                     [        SS/SS/S.5      nSn[        R                  " [        US9   UR	                  SU S9  S S S 5        g ! , (       d  f       g = f)	Nr   r   r)   r*   col1col2Pmode='a' \(append\) is only supported when lines is True and orient is 'records'rd   )moder   r   r#   r>   rI   r   )r   r   rg   s      r   test_to_json_append_orientr     sQ     
QFS#J7	8B	0  
z	-


G
, 
.	-	-s   A
Ac                      [        SS/SS/S.5      n Sn[        R                  " [        US9   U R	                  SSS	S
9  S S S 5        g ! , (       d  f       g = f)Nr   r   r)   r*   r   r   rd   Fr   r   r   r   r   )r   rg   s     r   test_to_json_append_linesr     sS     
QFS#J7	8B	0  
z	-


5
; 
.	-	-s   A		
Amode_rxc                     [        SS/SS/S.5      nSU  S3n[        R                  " [        US9   UR	                  U S	S
S9  S S S 5        g ! , (       d  f       g = f)Nr   r   r)   r*   r   zmode=z@ is not a valid option.Only 'w' and 'a' are currently supported.rd   Fr   r   r   )r   r   rg   s      r   test_to_json_append_moder     s_     
QFS#J7	8B
w 4 	4  
z	-


U9
= 
.	-	-s   A
Ac                  V   [        SS/SS/S.5      n [        SS/SS	/S.5      n[        / S
Q/ SQS.5      n[        R                  " S5       nU R                  USSS9  UR                  USSSS9  [	        USS9n[        R
                  " XB5        S S S 5        g ! , (       d  f       g = f)Nr   r   r)   r*   r   r   r   cd)r   r   r   r   )r)   r*   r   r   rx   Tr   r   r   r(   )r   r-   ry   r   r   r.   )df1df2r0   rz   r/   s        r   -test_to_json_append_output_consistent_columnsr     s     aVc3Z8
9C
aVc3Z8
9C,8LMNH		%DY7Ds$yA 4t,
f/ 
&	%	%s   AB
B(c                     [        SS/SS/S.5      n [        SS/SS	/S
.5      n[        / SQ/ SQ[        R                  [        R                  SS	/S.5      n[        R                  " S5       nU R                  USSSS9  UR                  USSSS9  [        USS9n[        R                  " XB5        S S S 5        g ! , (       d  f       g = f)Nr   r   r)   r*   r   er   !#r   col3)r   r   NN)r)   r*   r   r   )r   r   r   rx   Tr   r   r(   )r   npnanr-   ry   r   r   r.   )r   df3r0   rz   r/   s        r   /test_to_json_append_output_inconsistent_columnsr     s     aVc3Z8
9C
c3Z#s<
=C&(VVRVVS#.	
H 
	%Ds$yADs$yA 4t,
f/ 
&	%	%s   .AB<<
C
c                     [        SS/SS/S.5      n [        SS/SS	/S.5      n[        S
S/SS/S.5      n[        SSS/05      n[        / SQSSSS	S
S[        R                  [        R                  /[        R                  [        R                  [        R                  [        R                  SS[        R                  [        R                  // SQS.5      R                  SS05      n[        R
                  " S5       nU R                  USSSS9  UR                  USSSS9  UR                  USSSS9  UR                  USSSS9  [        USS9n[        R                  " Xd5        S S S 5        g ! , (       d  f       g = f)Nr   r   r)   r*   r   r   r   r   r   r   r   r   r   r   col4TF)r   r   r   r   NNNN)NNNNNNTF)r   r   r   r   floatrx   r   r   r(   	r   r   r   astyper-   ry   r   r   r.   r   r   r   df4r0   rz   r/   s          r   ,test_to_json_append_output_different_columnsr    sU    aVc3Z8
9C
aVc3Z8
9C
c3Z#s<
=C
VdE]+
,C8#sCc266266BVVRVVRVVRVVS#rvvrvvNE		
 ffg  
	%Ds$yADs$yADs$yADs$yA 4t,
f/ 
&	%	%   A)E33
Fc                     [        SS/SS/S.5      n [        SS/SS	/S.5      n[        S
S/SS/S.5      n[        SSS/05      n[        / SQ[        R                  [        R                  S
SSS	SS/[        R                  [        R                  SS[        R                  [        R                  [        R                  [        R                  // SQS.5      R                  SS05      n[        R
                  " S5       nUR                  USSSS9  UR                  USSSS9  UR                  USSSS9  U R                  USSSS9  [        USS9n[        R                  " Xd5        S S S 5        g ! , (       d  f       g = f)Nr   r   r)   r*   r   r   r   r   r   r   r   r   r   r   r   TF)TFNNNNNN)NNNNr   r   r   r   )r   r   r   r   r   rx   r   r   r(   r   r   s          r   6test_to_json_append_output_different_columns_reorderedr    sW    aVc3Z8
9C
aVc3Z8
9C
c3Z#s<
=C
VdE]+
,C EVVRVVS#sCcBVVRVVS#rvvrvvrvvrvvN8		
 ffg  
	%Ds$yADs$yADs$yADs$yA 4t,
f/ 
&	%	%r  )4collections.abcr   r3   r   pathlibr   numpyr   r#   pandasr]   r   r   pandas._testing_testingr-   pandas.io.json._jsonr   rG   filterwarnings
pytestmarkfixturer   r&   r1   r:   rK   rO   rR   rX   parametrizerb   ri   rp   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   <module>r     s   $       +[[''C

 4 4
 +, -,,,0,$G*> q#h/. 0.,/0%&2$ tQi0? 1?6 &9: ; l3E 4E20& 1a&)	, *	, *VV,<=- >-<	>B."8 $?@	- A	-	< 3*-	> .	>0$000:0r   