
    Mh1                    d   S SK r S SK Jr  S SKJr  S SKJrJr  S SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKJr  S SKJr  S SKJs  Jr  S SKrS SKJrJrJrJrJrJrJrJrJ r   S SK!J"r#  S SK$J%r%J&r&  S S	K'J(r(  S S
K)J*r*  S r+S r, " S S5      r-S r.S r/S r0S r1\Rd                  " S5      S 5       r3S r4g)    N)	timedelta)Decimal)BytesIOStringIO)using_pyarrow_string_dtype)IS64)	NA	DataFrameDatetimeIndexIndex
RangeIndexSeries	Timestamp
date_range	read_json)ArrowStringArrayStringArray)ArrowStringArrayNumpySemantics)ujson_dumpsc                  r   [        SS/SS//SS/S9n SnSn[        R                  " [        US9    [	        US	S
9  S S S 5        [        R                  " [        US9   [	        U R                  5       S	S
9  S S S 5        [        R                  " [        US9   [	        SSS
9n[        R                  " X05        S S S 5        [        R                  " [        US9    [	        SS	S
9nS S S 5        [        R                  " [        US9    [	        SS	S
9n[        R                  " WU 5        S S S 5        g ! [
         a     GNf = f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! [
         a     Nf = f! , (       d  f       N= f! [
         a     Nf = f! , (       d  f       g = f)N      abcolumnsz[{"a": 1, "b": 2}
        {"a": 3, "b": 4}
        {"a": 5, "b": 6}
        {"a": 7, "b": 8}zPassing literal json to 'read_json' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.matchFlines!{"a": 1, "b": 2}
{"b":2, "a" :1}
T4{"a\\":"foo\\","b":"bar"}
{"a\\":"foo\"","b":"bar"}
)r
   tmassert_produces_warningFutureWarningr   
ValueErrorto_jsonassert_frame_equal)expectedjsonlmsgresults       R/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/json/test_pandas.pytest_literal_json_deprecationr.   +   s   1a&1a&)C:>HE	:  
	#	#M	=	e5) 
> 
	#	#M	=(""$E2 
> 
	#	#M	=@M
f/ 
> 
	#	#M	=	OF 
> 
	#	#M	=	DERF 	fh/ 
>	='  		 
>	= 
>	= 
>	=  		 
>	=  		 
>	=s   E
D2E!E&F
E7F(
FF(2
E <E?E  E
E
E#&
E47
FFFF
F
F%"F($F%%F((
F6c                     US;   a  UR                  SS9nUS:X  a#  [        [        UR                  5      5      Ul        [        R
                  " X5        g )N)recordsvaluesTdropr1   )reset_indexrangelenr   r#   r(   )r,   r)   orients      r-   assert_json_roundtrip_equalr8   X   sL    &&''T'2 X%5%5!67&+    c                      \ rS rSr\R
                  S 5       r\R
                  S 5       r\R
                  S 5       rS r	\R                  R                  S/ SQ5      S 5       r\R                  R                  SS	S
/5      S 5       r\R                  R                  SSS/5      \R                  R                  SSS/SS//SS/SS//SS/SS//\" S5      S/\" S5      S///5      S 5       5       r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  SS \/5      \R                  R                  S!S"S /5      S# 5       5       r\R                  R                  SS \R*                  /5      \R                  R                  S!S"S /5      S$ 5       5       r\R                  R                  SS%\R.                  \S&/5      \R                  R                  S!S"S /5      S' 5       5       r\R                  R                  S!S"S /5      S( 5       r\R                  R                  S!S"S /5      S) 5       r\R                  R                  S!S"S /5      S* 5       r\R                  R                  S!S"S /5      S+ 5       r\R                  R=                  S,\S-9\R                  R                  S
S.S./S/S0//S.S1/S/S///S.S./S/S////5      S2 5       5       r \R                  R                  S3S4S5S6RC                  S7/5      S4S8S9/5      S: 5       r"\R                  R                  SS"S /5      \R                  R                  S!S"S /5      S; 5       5       r#\R                  R                  SS"S /5      S< 5       r$\R                  R                  S=\RJ                  \RJ                  * /5      \R                  R                  SS"S /5      S> 5       5       r&\R                  RO                  \((       + S?S@9\R                  R                  SA/ SBQ5      SC 5       5       r)SD r*SE r+SF r,SG r-SH r.SI r/SJ r0SK r1SL r2SM r3SN r4SO r5\R                  R                  SS S%/5      SP 5       r6SQ r7SR r8\R                  R                  S\R.                  \/5      SS 5       r9ST r:SU r;SV r<\R                  R                  SWS"\=" SX/SYSZ94S \=" S[/5      4/5      S\ 5       r>S] r?S^ r@S_ rAS` rBSa rCSb rD\R                  R                  ScSdSe/5      \R                  R                  SfS"S /5      \R                  R                  Sg\ER                  \ER                  \/5      Sh 5       5       5       rG\R                  R                  Si/ SjQ5      Sk 5       rH\R                  R                  Sl/ SmQ5      Sn 5       rISo rJ\R                  R                  Sl/ SmQ5      Sp 5       rKSq rL\R                  R                  Sr/ SsQ5      St 5       rM\R                  R                  Sr/ SuQ5      Sv 5       rNSw rOSx rPSy rQ\R                  R                  \R                  R                  \R                  R                  SzS{\TR                  " S|S}9/S~SY/S\TR                  " S|S}9//5      S 5       5       5       rVS rWS rXS rY\R                  R                  SfS"S /5      \R                  R                  ScSeSd/5      \R                  R                  S\TR                  \[/5      S 5       5       5       r\\R                  R                  SfS"S /5      \R                  R                  S\TR                  \[/5      S 5       5       r]S r^S r_S r`S raS rbS rcS rd\R                  R                  S\" S5      \" SSS}9\" S5      /5      S 5       reS rf\R                  R                  S\g" SSS9\g" SSSS9\g" SSS9/5      S 5       rhS riS rj\R                  R                  \kR                  S 5       5       rmS rnS ro\R                  R                  S\pR                  S-   \pR                  S-   * /5      S 5       rr\R                  R                  SSS/5      S 5       rsS rtS ru\R                  R=                  S\vS-9\R                  R                  S/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ\R                  SSS/S\R                  SSS//	5      \R                  R                  SS\x/5      S 5       5       5       ryS rz\R                  R                  S	S%SS/SS/SS/SS/SS//5      \R                  R                  S
SS/SS/SS//5      S 5       5       r{S r|\R                  R=                  \}" 5       SS@9\R                  R                  S/ SQ5      S 5       5       r~\R                  R                  SS"\\S./5      S 5       r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  S\" SS/SS//SS/S9SS/SS/SS//S.4\" SS/SS//SS/S9GR                  S5      SS/SS/SS//S.4\" SS/SS//SS/SS/SS//S9SS/SS/SS//S.4\=" / SQSS9S/ SQS.4\=" / SQSS9GR                  S5      S/ SQS.4\=" SS/SSS/SS//S9SSS/S.4/5      S 5       r\R                  R                  S\" SS/SS//SS/S9\" SS/SS//SS/S9GR                  S5      \" SS/SS//SS/SS/SS//S9\=" / SQSS9\=" / SQSS9GR                  S5      \=" SS/SSS/SS//S9/5      S 5       r\R                  R                  SS	S
/5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      \R                  R                  S	S"S /5      S 5       5       rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS\GR                  " SS\R                  R=                  SS@9S9\GR                  " SS\R                  R=                  SS@9S9/5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  RO                  \}" 5       SS@9\R                  R                  S/ SQ5      S 5       5       rS rS rS r\R                  R                  S\" / SQ/ SQS.5      S4/5      S 5       r\R                  R                  S 5       rS rS rS rGS  r\R                  R                  GS\=" GSGSGSGS.5      GS4\=" GSGSGS	GS.5      GS
4\" GSGS/GSGS//5      GS4\" GSGS/GSGS//5      GS4/5      GS 5       rGS r\R                  R                  S/ GSQ5      GS 5       r\R                  R                  S/ GSQ5      GS 5       rGS rGSrg%(  TestPandasContainer`   c                    [        [        S5      5       VVs0 s H4  u  pU[        R                  R	                  U5      R                  S5      _M6     nnnS/S-  S/S-  -   S/S-  -   S/S-  -   n[        [        U5      5      US	'   [        R                  " SS
S9US'   [        U[        R                  " US	S9S9$ s  snnf )NABCD   bah   barbazfoo   Eint64dtypesortnameindex)	enumeratelistnprandomdefault_rngstandard_normalreversedaranger
   pdCategoricalIndex)selficdatacats        r-   categorical_frame%TestPandasContainer.categorical_framea   s     "$v,/
/ ryy$$Q'77;;/ 	 
 gkUGaK'5'A+5"D#'S	yy73VR%8%83%GHH
s   ;B=c                     [        S[        R                  " S[        R                  S9-  [	        SSS9SS9nUR
                  R                  S 5      Ul        U$ )Ng?
   rH   
2020-01-01periodsts)rN   rL   )r   rQ   rV   float64r   rN   
_with_freq)rY   sers     r-   datetime_series#TestPandasContainer.datetime_seriesl   sO     "))Bbjj11\26

 II((.	
r9   c           
          [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9nUR                  R                  S 5      Ul	        U$ )
Nr   )r?      r>   rH   
2000-01-01r?   Brd   freqr   rN   )r
   rQ   rR   rS   rT   r   rP   objectr   rN   rg   )rY   dfs     r-   datetime_frame"TestPandasContainer.datetime_framex   sb     II!!!$44W=$v,f5\2C@

 88&&t,	r9   c                     [        SS/SS//SS/SS/S	9n[        UR                  US
95      n[        X1S
9nUR	                  5       n[        XEU5        g )Nr   r   r[   dz	index " 1z	index / 2za \ bzy / zrN   r   r7   r
   r   r'   r   copyr8   rY   r7   rs   r\   r,   r)   s         r-    test_frame_double_encoded_labels4TestPandasContainer.test_frame_double_encoded_labels   sb    3Z#s$,w'
 

&
124/779#Ff=r9   r7   )splitr0   r1   c                     [        SS/SS//SS/SS/S9n[        UR                  US	95      n[        X1S	9nUR	                  5       n[        XEU5        g )
Nr   r   r[   rw   r   xyrx   ry   rz   r|   s         r-   test_frame_non_unique_index/TestPandasContainer.test_frame_non_unique_index   sY    c
S#J/1vSzR

&
124/779#Ff=r9   rN   r   c                     [        SS/SS//SS/SS/S9nS	U S
3n[        R                  " [        US9   UR	                  US9  S S S 5        g ! , (       d  f       g = f)Nr   r   r[   rw   r   r   r   rx   z+DataFrame index must be unique for orient=''r   ry   r
   pytestraisesr&   r'   rY   r7   rs   r+   s       r-   "test_frame_non_unique_index_raises6TestPandasContainer.test_frame_non_unique_index_raises   s[    c
S#J/1vSzR;F81E]]:S1JJfJ% 211   A
Ar   r1   r\   r   r   r[   rw         ?      @g      @g      @r      2013010120130102c                    [        USS/SS/S9n[        [        UR                  US95      US/S9nUS:X  ap  [        U5      nUR                  S S 2S4   R
                  S	:X  aC  UR                  SUR                  S S 2S4   R                  [        R                  5      S
-  5        OUS:X  a  UnSS/Ul
        [        R                  " UW5        g )Nr   r   r   rx   ry   )r7   convert_datesr1   r   datetime64[ns]@B r   zx.1)r
   r   r   r'   ilocrI   isetitemastyperQ   rG   r   r#   r(   )rY   r7   r\   rs   r,   r)   s         r-   test_frame_non_unique_columns1TestPandasContainer.test_frame_non_unique_columns   s     tAq6C:>RZZvZ./se
 X H}}QT"((,<<
 !!!X]]1a4%8%?%?%IW%TUwH #U|H
fh/r9   )rN   r   r0   c                     [        SS/SS//SS/SS/S9nS	U S
3n[        R                  " [        US9   UR	                  US9  S S S 5        g ! , (       d  f       g = f)Nr   r   r[   rw   r   r   r   rx   z-DataFrame columns must be unique for orient='r   r   ry   r   r   s       r-   $test_frame_non_unique_columns_raises8TestPandasContainer.test_frame_non_unique_columns_raises   s[    c
S#J/1vSzR=fXQG]]:S1JJfJ% 211r   c                 J    UR                  5       UR                  SS9:X  d   eg )Nr   ry   r'   )rY   float_frames     r-   test_frame_default_orient-TestPandasContainer.test_frame_default_orient   s'    ""$(;(;9(;(MMMMr9   rI   Fconvert_axesTc                 d    [        UR                  US95      n[        XQX#S9nUn[        XgU5        g Nry   r7   r   rI   r   r'   r   r8   )rY   r7   r   rI   r   r\   r,   r)   s           r-   test_roundtrip_simple)TestPandasContainer.test_roundtrip_simple   s7     ++6+:;4\W#Ff=r9   c                 d    [        UR                  US95      n[        XQX#S9nUn[        XgU5        g r   r   )rY   r7   r   rI   	int_framer\   r,   r)   s           r-   test_roundtrip_intframe+TestPandasContainer.test_roundtrip_intframe   s7     	)))894\W#Ff=r9   NU3c           
      n   [        [        R                  " S5      [        S5       Vs/ s H  n[	        U5      PM     sn[        S5       Vs/ s H  n[	        U5      PM     snUS9n[        UR                  US95      n[        XaX#S9nUR                  5       nU(       d  UR                  [        R                  5      nU(       ac  US;   a]  UR                  R                  [        R                  5      Ul        UR                  R                  [        R                  5      Ul        OwUS:X  a6  U(       a/  UR                  R                  [        R                  5      Ul        O;U(       a4  US	:X  a.  UR                  R                  [        R                  5      Ul        [        XxU5        g s  snf s  snf )
N)   rl   rl   r   )r   rN   rI   ry   r   rx   r0   r   )r
   rQ   zerosr5   strr   r'   r   r{   r   rG   r   rN   r8   )	rY   r7   r   rI   rZ   rs   r\   r,   r)   s	            r-   test_roundtrip_str_axes+TestPandasContainer.test_roundtrip_str_axes   s8    HHX%*1X.XSVX.#(:.:a3q6:.	
 

&
124\W779rxx0H V';;'//66rxx@H%^^22288<HNy \'//66rxx@Hf/'//66rxx@H#Ff=3 /.s   F-
F2c                 h   US;   a0  UR                  [        R                  R                  SU S3S95        [	        UR                  US95      n[        XbUS9nUR                  5       nUR                  R                  U(       d  [        OS5      Ul        S UR                  l        [        XxU5        g )Nrx   z.Can't have duplicate index values for orient 'z')reasonry   r7   r   string[pyarrow_numpy])applymarkerr   markxfailr   r'   r   r{   rN   r   r   rL   r8   )	rY   requestr7   r^   r   using_infer_stringr\   r,   r)   s	            r-   test_roundtrip_categorical.TestPandasContainer.test_roundtrip_categorical   s    
 ))!!KF8SUV "  )111@A4\J$))+!..)C/F
 ##Ff=r9   c                     [        5       n[        UR                  US95      n[        XAUS9nUS:X  a%  [	        / U(       a  [
        O[        S9n[        XfS9nO!US;   a  [        5       nOUR                  5       n[        R                  " XW5        g )Nry   r   r   rH   rx   )
r
   r   r'   r   r   floatrr   r{   r#   r(   )rY   r7   r   empty_framer\   r,   idxr)   s           r-   test_roundtrip_empty(TestPandasContainer.test_roundtrip_empty  s{    k++6+:;4\JWL5fFC s8H++ {H"'')H
f/r9   c                 (   [        UR                  US95      n[        XAUS9nUR                  5       nU(       dM  UR                  R                  [        R                  5      S-  nUS:w  a  UR                  [        5      nXvl        [        XVU5        g )Nry   r   r   r   )r   r'   r   r{   rN   viewrQ   rG   r   r   r8   )rY   r7   r   rt   r\   r,   r)   r   s           r-   test_roundtrip_timestamp,TestPandasContainer.test_roundtrip_timestamp   sz     ..f.=>4\J!&&(..%%bhh/7:C jjo N#Ff=r9   c                 F   [        / SQ5      n/ SQ/ SQ/ SQ/ SQS.n[        XCS9n[        UR                  US95      n[	        XaUS	9nUR                  5       nUR                  " S0 UR                  S
5      R                  [        R                  5      D6n[        XxU5        g )N)r   r   r[   rw   e)              ?       @      @      @)r   r   r   r   r   )foo1foo2foo3foo4foo5)TFTFTArn   CD)r\   rN   ry   r   number )r   r
   r   r'   r   r{   assignselect_dtypesr   rQ   rG   r8   )	rY   r7   r   rN   r1   rs   r\   r,   r)   s	            r-   test_roundtrip_mixed(TestPandasContainer.test_roundtrip_mixed1  s    /0**91	
 F0

&
124\J779??WX%;%;H%E%L%LRXX%VW#Ff=r9   z9#50456 Column multiindex is stored and loaded differently)r   r   2022JANFEB2023c                     [        SS/SS//[        R                  R                  U5      S9n[	        UR                  SS95      n[        USS9n[        R                  " XB5        g )Nr   r   r   rl   r   r   ry   )	r
   rW   
MultiIndexfrom_arraysr   r'   r   r#   r(   )rY   r   rs   r\   r,   s        r-   test_roundtrip_multiindex-TestPandasContainer.test_roundtrip_multiindexE  sa     VaVMM--g6
 

'
2340
f)r9   zdata,msg,orient)z{"key":b:a:d}zExpected object or valuer   zO{"columns":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}|z;Length of values \(3\) does not match length of index \(2\))zW{"columns":["A","B","C"],"index":["1","2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}z+3 columns passed, passed data had 2 columnsr   )zN{"badkey":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}zunexpected key\(s\): badkeyr   c                     [         R                  " [        US9   [        [	        U5      US9  S S S 5        g ! , (       d  f       g = f)Nr   ry   )r   r   r&   r   r   )rY   r\   r+   r7   s       r-   $test_frame_from_json_bad_data_raises8TestPandasContainer.test_frame_from_json_bad_data_raisesZ  s-    F ]]:S1htnV4 211s	   7
Ac                 x   [        SS// SQ/5      n[        [        UR                  US95      UUUS9n[        R
                  " UR                  S   5      (       d   e[        SS// S	Q/5      n[        [        UR                  US95      UUUS9n[        R
                  " UR                  S   5      (       d   eg )
Nr   r   rl   rA      ry   r   r   r   12)456)r
   r   r   r'   rQ   isnanr   )rY   r7   r   rI   num_dfr,   obj_dfs          r-   !test_frame_from_json_missing_data5TestPandasContainer.test_frame_from_json_missing_data  s     QFI./V^^6^23%	
 xxD)****S#J89V^^6^23%	
 xxD)****r9   c                     [        [        S5      US9n[        [        R                  /5      n[
        R                  " X#5        g )Nz[null]rH   )r   r   r
   rQ   nanr#   r(   )rY   rI   r,   r)   s       r-   (test_frame_read_json_dtype_missing_value<TestPandasContainer.test_frame_read_json_dtype_missing_value  s3     8H-U;bffX&
f/r9   infc                     [        SS// SQ/5      nXR                  S'   [        UR                  5       5      n[	        XBS9n[
        R                  " UR                  S   5      (       d   eg )Nr   r   r   r   rH   )r
   locr   r'   r   rQ   r   r   )rY   r  rI   rs   r\   r,   s         r-   test_frame_infinity'TestPandasContainer.test_frame_infinity  sZ    
 A	*+t

%4-xxD)****r9   z$not compliant on 32-bit, xref #15865r   zvalue,precision,expected_val))gffffff?r   r   )g333333?r   r   )g333333r   g       )gףp=
?r   r   )gCl?r   r   )g?rE   r   c                 V    [        SU0/5      nUR                  US9nUSU S3:X  d   eg )Na_float)double_precisionz{"a_float":{"0":}}r
   r'   )rY   value	precisionexpected_valrs   encodeds         r-   "test_frame_to_json_float_precision6TestPandasContainer.test_frame_to_json_float_precision  s>     E*+,**i*8.|nDAAAAr9   c                     [        / SQ5      nSn[        R                  " [        US9   UR	                  SS9  S S S 5        g ! , (       d  f       g = fNr   r   r   z+Invalid value 'garbage' for option 'orient'r   garbagery   r   )rY   rs   r+   s      r-   test_frame_to_json_except-TestPandasContainer.test_frame_to_json_except  s9    y!;]]:S1JJiJ( 211   A
Ac                     [        SS/S9nUR                  (       a   e[        UR                  5       5      n[	        U[        UR                  5      S9n[        R                  " X1SS9  g )Njimjoer   rH   Fcheck_index_type)	r
   _is_mixed_typer   r'   r   dictdtypesr#   r(   )rY   rs   r\   r,   s       r-   test_frame_empty$TestPandasContainer.test_frame_empty  sS    u~.$$$$

%4tBII7
f5Ar9   c                 L    [        S/ 0/ S9nUR                  SS9nSnX#:X  d   eg )NtestrM   r   ry   z{"test":{}}r
  rY   rs   r,   r)   s       r-   test_frame_empty_to_json,TestPandasContainer.test_frame_empty_to_json  s3    |2.9- !!!r9   c                    [        SS/S9nUS   R                  S5      US'   UR                  (       d   eUR                  5       n[        R
                  " [        [        U5      [        UR                  5      S9USS9  g )Nr  r  r   i8rH   Fr  )
r
   r   r  r'   r#   r(   r   r   r  r  )rY   rs   r\   s      r-   test_frame_empty_mixedtype.TestPandasContainer.test_frame_empty_mixedtype  sl    u~.uI$$T*5	    zz|
htnDO<"	
r9   c                 d   / SQ/ SQ/ SQ/ SQ/n[        U[        S5      / SQS9nUR                  (       d   eUR                  5       nS H;  n[	        UR                  US	95      n[        XTS
S9n[        R                  " Xc5        M=     [        [        U5      5      Ul        [	        UR                  SS	95      n[        USS
S9n[        R                  " Xc5        [        UR                  S   5      Ul        [	        UR                  SS	95      n[        USS
S9n[        R                  " Xc5        g )N)ra   r   rD   皙?g{Gz?)   r   rB   g?g{Gz?)r?   r   rC   g333333?gQ?)(   rl   quxg?g{Gz?abcd)1st2nd3rd4th5thrx   r   rN   r   ry   Fr   r0   r   r1   )r
   rP   r  r{   r   r'   r   r#   r(   r   r6   rN   shaper   )rY   valsrs   rightr7   inplefts          r-   test_frame_mixedtype_orient/TestPandasContainer.test_frame_mixedtype_orient  s
   %%%%	
 V.Q
     	3F2::V:45CSeDD!!$. 4
 !R)rzzz34YUC
d*"288A;/rzzz23XEB
d*r9   c                    [        SS5      n[        [        R                  " U5      S S9n[	        / SQ/ SQ/ SQ/ SQ/ SQ// S	QUS
9n[        S5      R                  S5      US'   [        S5      UR                  SUR                  R                  S5      4'   US   US'   [        R                  UR                  SUR                  R                  S5      4'   U" SSS5      n[        R                  R                  US5      n[        U5      n[         R"                  " X65        UR%                  S/SS9n[        R                  R                  US5      n[        U5      n	[         R"                  " XySS9  g )Nz
2000-01-03z
2000-01-07rp   )gÉ?gz~Kc?gX7?gH/ƿ)g|RпgXgsBfg(ƿ)g<1=?g9?gg??gLł
)gJQg[r?T?gj<DH>?g-ѿ)gIEx?gW!i`ygP04?g+]5?r   rq   z19920106 18:21:32.12nsdater   r   modifiedr   iojsonr\   ztsframe_v012.json)axisztsframe_iso_v012.jsonF)check_column_type)r   r   rQ   asarrayr
   r   as_unitr   r   get_locrW   NaTospathjoinr   r#   r(   r3   )
rY   datapathdtirs   dirpathv12_jsondf_unserdf_isov12_iso_jsondf_unser_isos
             r-   test_v12_compat#TestPandasContainer.test_v12_compat  s<   |4BJJsO$7AC?BA )

 56>>tD6
1::1F2::%%f--.F:57VV2::%%j1124077<<)<=X&
b+*A.ww||G-DE .
feLr9   c           	      ^   [        SSSS9n[        [        U5      S S9n[        / SQ/ SQ/ SQ/ S	Q/ S
Q/ SQS.US9nUR                  R                  U(       d  [        R                  OS5      Ul        [        UR                  SS95      n[        USS9n[        R                  " UUSSSSS9  g )N20000101ra   hro   r?  )
g}S? wgbm?gz(~J	?g1?gk*MgvTj?g7j	" Y?gp+KS(g񒬁?gZtSy)
iL,i_}i4ziKeiL&i%giDiY)L i;eiD )
78c608f164a9974313d2ff52ca7f4af297236474bde7e2141a6bde47b1190be57a6691448d64d068)
gD!gIxJ g%
@gP\<g޿gPl?gFzn?g5mH/?gpH%gI?)
14f04af9d085da904bcfac8381504caf2ffef4a908e2f5c407e1af03addbd4a71f6a09ba4bfc4d87)
i/iiYi6iI i;>i	i( i0q{iѪ)float_1int_1str_1float_2str_2int_2rM   r   r   ry   T)r  rF  	by_blockscheck_exact)r   r   rP   r
   r   r   rQ   str_r   r'   r   r#   r(   )rY   r   rN   df_mixedr\   df_roundtrips         r-   test_blocks_compat_GH9037-TestPandasContainer.test_blocks_compat_GH9037  s    :r<d5k5{IT WL
^ $++22-BGG3J
 (((89 g6
!"	
r9   c                 X    " S S5      nSnU" U5      n[        SUR                  /05      nUR                  5       SU S3:X  d   e[        SU/05      nSn[        R                  " [
        US9   UR                  5         S S S 5        [        U/S	/S
.SS/S9n[        R                  " [
        US9   UR                  5         S S S 5        UR                  [        S9nSU S3n	X:X  d   eUR                  [        S9SU S3:X  d   eg ! , (       d  f       N= f! , (       d  f       N]= f)Nc                   ,    \ rS rSrSS jrS\4S jrSrg)FTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThingi~  returnNc                 D    Xl         [        R                  U5      U l        g N)hexedbytesfromhexbinary)rY   r  s     r-   __init__OTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__init__  s    "
#mmE2r9   c                     U R                   $ r  )r  rY   s    r-   __str__NTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__str__  s    zz!r9   )r  r  r  N)__name__
__module____qualname____firstlineno__r  r   r  __static_attributes__r   r9   r-   BinaryThingr~  ~  s    3" "r9   r  574b4454ba8c5eb4f98a8f45r   z{"A":{"0":""}}z6Unsupported UTF-8 sequence length when encoding stringr   r   r   rn   rn   r   default_handlerz"},"B":{"0":1}})r
   r  r'   r   r   OverflowErrorr   )
rY   r  r  binthingdf_printabledf_nonprintabler+   rx  r,   r)   s
             r-   test_frame_nonprintable_bytes1TestPandasContainer.test_frame_nonprintable_bytes{  s4   	" 	" +u% !#'7!89##%=u)EEEE $S8*$56F]]=4##% 5 H:QC83*M]]=4 5 !(((="5'/!!!S1ug%89:	
: 54
 54s   0D
3D

D
D)c                 h    [        SS-  S/SS/05      R                  5       nSSS-   S3nX:X  d   eg )NrB   i r   rD   i9  {"z":{"0":1},"foo":{"0":1337}}r
  rY   r,   r)   s      r-   test_label_overflow'TestPandasContainer.test_label_overflow  sF    EFNQC?@HHJ((HI!!!r9   c                    [        SS/SS/S9nSn[        R                  " [        US9   UR	                  SS9  S S S 5        [
        R                  " U[        [        UR	                  S	S95      S	S
S95        [        [        UR	                  SS95      SS
S9n[
        R                  " UR                  UR                  5        g ! , (       d  f       N= f)Nr   r   r   rM   z.Series index must be unique for orient='index'r   rN   ry   r   series)r7   typr0   )r   r   r   r&   r'   r#   assert_series_equalr   r   assert_equalr1   )rY   sr+   unserializeds       r-   test_series_non_unique_index0TestPandasContainer.test_series_non_unique_index  s    C:aV,>]]:S1IIWI% 2 	'23G	
 !QYYiY01)
 	,"5"56 21s   C
Cc                 J    UR                  5       UR                  SS9:X  d   eg )NrN   ry   r   )rY   string_seriess     r-   test_series_default_orient.TestPandasContainer.test_series_default_orient  s'    $$&-*?*?w*?*OOOOr9   c                    [        UR                  US95      n[        USUS9nUnU(       a&  US;   a   UR                  R	                  S5      Ul        US;   a  UR                  SS9nUS	:w  a  S Ul        [        R                  " XV5        g )
Nry   r  r  r7   r6  r   r1   r0   Tr2   r   )	r   r'   r   rN   r   r4   rL   r#   r  )rY   r7   r  r   r\   r,   r)   s          r-   test_series_roundtrip_simple0TestPandasContainer.test_series_roundtrip_simple  s    --V-<=4Xf= &,I"I%^^223JKHN**+++6HW HM
v0r9   c                     [        UR                  US95      n[        USXS9nUnUS;   a  UR                  SS9nUS:w  a  S Ul        [
        R                  " XV5        g )Nry   r  )r  r7   rI   r  Tr2   r   r   r'   r   r4   rL   r#   r  )rY   r7   rI   object_seriesr\   r,   r)   s          r-   test_series_roundtrip_object0TestPandasContainer.test_series_roundtrip_object  sf    --V-<=4XfJ **+++6HW HM
v0r9   c                 .   [        / / [        R                  S9n[        UR	                  US95      n[        USUS9nUR                  SS9nUS;   a.  UR                  R                  [        R                  5      Ul        [        R                  " XE5        g )NrN   rI   ry   r  r  Tr2   r   )r   rQ   rf   r   r'   r   r4   rN   r   r#   r  )rY   r7   empty_seriesr\   r,   r)   s         r-   test_series_roundtrip_empty/TestPandasContainer.test_series_roundtrip_empty  s}    b"**=,,F,;<4Xf=+++6g%^^222::>HN
v0r9   c                     [        UR                  US95      n[        USUS9nUnUS;   a  UR                  SS9nUS:w  a  S Ul        [
        R                  " XE5        g )Nry   r  r  r  Tr2   r   r  )rY   r7   ri   r\   r,   r)   s         r-    test_series_roundtrip_timeseries4TestPandasContainer.test_series_roundtrip_timeseries  sf    //v/>?4Xf="**+++6HW HM
v0r9   c                     [        [        S5      / SQS9n[        UR                  US95      n[	        USUS9nUR                  5       nUS;   a  UR                  SS	9n[        R                  " XV5        g )
Nr   r   r   r[   rw   r   frM   ry   r  r  r  Tr2   )	r   r5   r   r'   r   r{   r4   r#   r  )rY   r7   rI   r  r\   r,   r)   s          r-   test_series_roundtrip_numeric1TestPandasContainer.test_series_roundtrip_numeric  sk    58#AB			014Xf=668**+++6H
v0r9   c                     [        / SQ5      nSn[        R                  " [        US9   UR	                  SS9  S S S 5        g ! , (       d  f       g = fr  )r   r   r   r&   r'   )rY   r  r+   s      r-   test_series_to_json_except.TestPandasContainer.test_series_to_json_except  s9    9;]]:S1IIYI' 211r  c                     [        / SQ5      n[        [        UR                  5       5      SSS9n[        R
                  " X!SS9  g )N=
ףp=@r  r  r  T)r  precise_floatFr  )r   r   r   r'   r#   r  rY   r  r,   s      r-   #test_series_from_json_precise_float7TestPandasContainer.test_series_from_json_precise_float  s6    %&8AIIK0hdS
v5Ar9   c                     [        / SQ5      n[        [        UR                  5       5      S[        R
                  S9n[        S/S-  5      n[        R                  " X#5        g )Nr  r  r  rI   rl   r   )r   r   r   r'   rQ   rG   r#   r  )rY   r  r,   r)   s       r-   test_series_with_dtype*TestPandasContainer.test_series_with_dtype  sG    %&8AIIK0hbhhO1#'?
v0r9   zdtype,expectedrm   r   rH   l    ,Uqc                     [        S/SS9n[        UR                  5       5      n[        USUS9n[        R
                  " XR5        g )Nrm   r   rH   r  r  )r   r   r'   r   r#   r  )rY   rI   r)   r  r\   r,   s         r-   test_series_with_dtype_datetime3TestPandasContainer.test_series_with_dtype_datetime  s?     L>)9:		$4XU;
v0r9   c                     [        / SQ/ SQ/5      n[        [        UR                  5       5      SS9n[        R
                  " X!5        g )Nr  T)r  r
   r   r   r'   r#   r(   rY   rs   r,   s      r-   "test_frame_from_json_precise_float6TestPandasContainer.test_frame_from_json_precise_float  s8    *,>?@8BJJL1F
f)r9   c                     [        [        S5      / SQSS9n[        [        UR	                  5       5      S S9n[
        R                  " X!5        g )Nr   r  rG   r  r  )r   r5   r   r   r'   r#   r  r  s      r-   test_typTestPandasContainer.test_typ  s:    58#AQ8AIIK0d;
v)r9   c                 ,   [        / SQ/ SQ/5      n[        [        UR                  5       5      5      n[        R
                  " X!5        [        / SQ/ SQS./ SQS9n[        [        UR                  5       5      5      n[        R
                  " X!5        g )Nr  r   r   r   )r   rn   r   rM   r  r  s      r-   test_reconstruction_index-TestPandasContainer.test_reconstruction_index$  sh    	9-.8BJJL12
f)YY7O8BJJL12
f)r9   c                     [         R                  " S5       nXU4 H  nUR                  U5        [        U5        M!     S S S 5        g ! , (       d  f       g = f)N	test.json)r#   ensure_cleanr'   r   )rY   r   r   rt   rL  rs   s         r-   	test_pathTestPandasContainer.test_path-  s>    __[)T"~>

4 $ ? *))s   (A
Ac                    [        UR                  5       5      n[        U5      n[        R                  " XB5        [        UR                  5       5      n[        USS9n[        R
                  " XASS9  UR                  b   eg )Nr  r  F)check_names)r   r'   r   r#   r(   r  rL   )rY   ri   rt   rD  r,   s        r-   test_axis_dates#TestPandasContainer.test_axis_dates3  sm    ..014
f5 //124X.
vEJ{{"""r9   c                    Un[        S5      R                  S5      US'   [        UR                  5       5      n[	        U5      n[
        R                  " XS5        SUS'   [        UR                  SS95      n[	        USS9nUR                  5       nUS   R                  R                  S	5      US'   US   R                  S
5      US'   [
        R                  " XV5        [        [        S5      R                  S5      UR                  S9n[        UR                  5       5      n[	        USS9n[
        R                  " XW5        g )Nr   r@  rA  r   rD   	date_unitFr   r(  rG   rM   r  r  )r   rH  r   r'   r   r#   r(   r{   r1   r   r   r   rN   r  )rY   ri   rt   rs   rD  r,   r)   re   s           r-   test_convert_dates&TestPandasContainer.test_convert_dates?  s   z*22486


%4
f)5	

T
234u5779#F+2277="5/009
f/ Ij)11$7?T?TU

%4X.
v*r9   date_formatepochiso	as_objectdate_typc                     U" SSSS9[         R                  /nU(       a  UR                  S5        [        XDS9nUR	                  US9nUS:X  a  SnOS	nU(       a  UR                  S
S5      nXg:X  d   eg )Ni  r   )yearmonthdayr   rM   r  r  z+{"1577836800000":1577836800000,"null":null}zA{"2020-01-01T00:00:00.000":"2020-01-01T00:00:00.000","null":null}}	,"a":"a"})rW   rJ  appendr   r'   replace)rY   r  r  r  r\   rh   r,   r)   s           r-   test_date_index_and_values.TestPandasContainer.test_date_index_and_valuesW  s     d!3RVV<KKT&5'!DH T  ''[9H!!!r9   
infer_word)
trade_timerA  datetimesold_atrB  	timestamp
timestampsc                     SSUS0SS0/n[        S[        S5      /S[        R                  //SU/S9n[	        [        [        U5      5      5      SU/   n[        R                  " XC5        g )Nidr   l    $Ar   z
2002-11-08r   )	r
   r   rW   rJ  r   r   r   r#   r(   )rY   r  r\   r)   r,   s        r-   test_convert_dates_infer,TestPandasContainer.test_convert_dates_infern  st     q*m4tQi@<()Arvv;7$
AS
 8K$567z8JK
f/r9   zdate,date_unit))20130101 20:43:42.123N)20130101 20:43:42r  )r  ms)z20130101 20:43:42.123456us)z20130101 20:43:42.123456789r@  c                    Un[        U5      R                  S5      US'   [        R                  UR                  SUR
                  R                  S5      4'   [        R                  UR                  SUR
                  R                  S5      4'   U(       a  UR                  SUS9nOUR                  SS9n[        [        U5      5      nUR                  5       n[        R                  " Xg5        g )Nr@  rA  r   rA   r  r  r  r  )r   rH  rW   rJ  r   r   rI  r'   r   r   r{   r#   r(   )rY   rA  r  rt   rs   rD  r,   r)   s           r-   test_date_format_frame*TestPandasContainer.test_date_format_frame  s     t_,,T26
132::%%f--.132::%%f--.::%9:ED::%:0D8D>*779
f/r9   c                     UnSn[         R                  " [        US9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)N*Invalid value 'foo' for option 'date_unit'r   r  rD   r  )r   r   r&   r'   )rY   rt   rs   r+   s       r-   test_date_format_frame_raises1TestPandasContainer.test_date_format_frame_raises  s6    :]]:S1JJ5EJ: 211s	   8
Ac                    [        [        U5      R                  S5      UR                  S9n[        R
                  UR                  S'   [        R
                  UR                  S'   U(       a  UR                  SUS9nOUR                  SS9n[        [        U5      SS	9nUR                  5       n[        R                  " Xg5        g )
Nr@  rM   r   rA   r  r  r  r  r  )r   r   rH  rN   rW   rJ  r   r'   r   r   r{   r#   r  )rY   rA  r  ri   re   rD  r,   r)   s           r-   test_date_format_series+TestPandasContainer.test_date_format_series  s     IdO++D19N9NOVV
VV
::%9:ED::%:0D8D>x8779
v0r9   c                     [        [        S5      UR                  S9nSn[        R                  " [
        US9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)Nr  rM   r  r   r  rD   r  )r   r   rN   r   r   r&   r'   )rY   ri   re   r+   s       r-   test_date_format_series_raises2TestPandasContainer.test_date_format_series_raises  sI    I56o>S>ST:]]:S1JJ5EJ: 211s   A
A!unit)r  r  r  r@  c                    Un[        S5      R                  S5      US'   UR                  R                  S5      n[        S5      UR                  SU4'   [        S5      UR                  SU4'   [
        R                  UR                  SU4'   UR                  S	US
9n[        [        U5      US9n[        R                  " Xc5        [        [        U5      S S9n[        R                  " Xc5        g )Nr  r@  rA  z19710101 20:43:42r   z21460101 20:43:42r   rl   r  r  r  )r   rH  r   rI  r   rW   rJ  r'   r   r   r#   r(   )rY   r   rt   rs   dlrD  r,   s          r-   test_date_unit"TestPandasContainer.test_date_unit  s    23;;DA6
ZZ'"#672"#6722zzgz> 8D>T:
f) 8D>T:
f)r9   )r  r  r  c           	         [        [        R                  " SU5      /SU S3S9n[        [	        [        R                  " SU5      /SU S3US9[	        [        R                  " SU5      /[
        US9S.5      n[        5       nUR                  USUS	9  UR                  S
5        [        R                  " [        USS/S9USSS9  g )Nz2023-01-01T11:22:33.123456zdatetime64[]rH   z2022-01-01T11:22:33.123456rI   rN   )rA  date_objr  r  r   rA  r(  r  F)r  check_dtype)r   rQ   
datetime64r
   r   rr   r   r'   seekr#   r(   r   )rY   r   rN   rs   bufs        r-   test_iso_non_nano_datetimes/TestPandasContainer.test_iso_non_nano_datetimes  s     ]]7>?vQ'
 ]]#?FG'vQ/
 #]]#?FG 
 j


3ET
:
 	c&*)=>"		
r9   c                 0    Sn[        [        U5      5        g )Nad  {
        "status": "success",
        "data": {
        "posts": [
            {
            "id": 1,
            "title": "A blog post",
            "body": "Some useful content"
            },
            {
            "id": 2,
            "title": "Another blog post",
            "body": "More content"
            }
           ]
          }
        })r   r   )rY   r  s     r-   test_weird_nested_json*TestPandasContainer.test_weird_nested_json  s    " 	(1+r9   c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        S5      US'   [        S5      US'   S	US
'   [        SSS9Ul	        [        UR                  5       5      n[        U[        R                  [        R                  S.S9n[        R                   " X35        g )Nr   )rA   r   ABr   r   rA  rA   intsTboolsrc   )r4  r5  rH   )r
   rQ   rR   rS   rT   rP   r   r5   r   rN   r   r'   r   rG   bool_r#   r(   )rY   dfj2rD  r,   s       r-   test_doc_example$TestPandasContainer.test_doc_example  s    II!!!$44V<d4j
 !,VQxVW
A6
'4288'LM
f-r9   c                    U" SSSS5      n[         R                  " U5      nUR                  5       n[        [	        U5      5      nUR                  UR                  UR                  S9nSn[        R                  " [        US9   UR                  [        R                  SS	9nS S S 5        [        R                  " Xc5        g ! , (       d  f       N%= f)
NrC  rD  r\   z	teams.csvrx   z.The 'downcast' keyword in fillna is deprecatedr   F)downcast)rW   read_csvr'   r   r   reindexrN   r   r#   r$   r%   fillnarQ   r   r(   )rY   rN  rL  rs   r  r,   resr+   s           r-   test_round_trip_exception-TestPandasContainer.test_round_trip_exception  s    ffk:[[JJL8A;'nn288RZZn@>''SA**RVVe*4C B
c& BAs   C
Czfield,dtype
created_atUTC)tz	closed_at
updated_atc                 v    SnUR                  US9  [        UR                  SS9nXQ   R                  U:X  d   eg )Nzw{"created_at": ["2023-06-23T18:21:36Z"], "closed_at": ["2023-06-23T18:21:36"], "updated_at": ["2023-06-23T18:21:36Z"]}
)contentTr  )serve_contentr   urlrI   )rY   fieldrI   
httpserverr\   r,   s         r-   test_urlTestPandasContainer.test_url*  sA     J   .:>>>}""e+++r9   c           	         S n[        [        S5      [        SS9/5      nUR                  S:X  d   e[        [	        UR                  5       5      SS9R                  U5      n[        R                  " X25        [        [        S5      [        SS9/[        SS	/5      S
9nUR                  S:X  d   e[        [	        UR                  5       5      SS9R                  U5      n[        R                  " X25        [        [        S5      [        SS9/5      nUS   R                  S:X  d   e[        R                  " U[        [	        UR                  5       5      5      R                  U5      5        g )Nc                 ,    [         R                  " U SS9$ )Nr  r   )rW   to_timedelta)r   s    r-   <lambda>4TestPandasContainer.test_timedelta.<locals>.<lambda>;  s    booad;r9      rA   secondsztimedelta64[ns]r  r  r   r   rM   )r   r   rI   r   r   r'   applyr#   r  r   r
   r(   )rY   	converterrh   r,   frames        r-   test_timedelta"TestPandasContainer.test_timedelta:  s$   ;	imYq%9:;yy----8CKKM2AGG	R
v+imYq%9:%A-Pyy----8CKKM2AGG	R
v+9R=)A*>?@Qx~~!2222
9Xemmo67==iH	
r9   c           	      R   [        [        SS9[        SS9/SS/[        SSS9S	.5      n[        UR	                  S
S95      n[        U5      n[        R                  " UR                  S
S9US'   [        R                  " UR                  5      US'   [        R                  " X5        g )NrU  daysrA   rV  r   r   r   )startrd   r   r   r[   r@  r  rQ  r   r[   )r
   r   r   r   r'   r   rW   rR  r   to_datetimer[   r#   r(   )rY   rZ  r\   r,   s       r-   test_timedelta2#TestPandasContainer.test_timedelta2N  s    R()A*>?Vj!<
 564oofhhT:snnVXX.s
e,r9   c                 n   [        S5      n[        S5      n[        SX/0[        S9n[        S[        R
                  " U5      R                  S5      R                  UR                  S5      R                  /05      n[        UR                  SS95      n[        USS0S9n[        R                  " XdSS	9  g )
NrU  r   r   rH   r@  r  rG   Fr  )r   r   r
   rr   rW   	TimedeltarH  _valuer   r'   r   r#   r(   )rY   tdre   rZ  r)   r\   r,   s          r-   test_mixed_timedelta_datetime1TestPandasContainer.test_mixed_timedelta_datetime\  s    r]z"3/82<<#++D188"**T:J:Q:QRS
 564W~6
fGr9   timedelta_typc                     U" SS9U" SS9[         R                  /nU(       a  UR                  S5        [        XDS9nUS:X  a  SnOSnU(       a  UR	                  S	S
5      nUR                  US9nXv:X  d   eg )Nr   r^  r   r   rM   r  zA{"P1DT0H0M0S":"P1DT0H0M0S","P2DT0H0M0S":"P2DT0H0M0S","null":null}z7{"86400000":86400000,"172800000":172800000,"null":null}r  r  r  )rW   rJ  r   r   r  r'   )rY   r  r  rk  r\   rh   r)   r,   s           r-   test_timedelta_to_json*TestPandasContainer.test_timedelta_to_jsonh  s    
 1%}!'<bffEKKT&%S  QH''[9H5!!!r9   c                     U" SS9/n[        X3S9nU(       a  UR                  [        5      nUR                  5       nSnXV:X  d   eg )N*   )millisecondsrM   z	{"42":42})r   r   rr   r'   )rY   r  rk  r\   rh   r,   r)   s          r-   +test_timedelta_to_json_fractional_precision?TestPandasContainer.test_timedelta_to_json_fractional_precision  sH     2./T&**V$C!!!r9   c                     [        5       n[        SSU/05      n[        SS[        U5      /05      n[        [	        UR                  [        S95      5      n[        R                  " X4SS9  g )Nr      r  Fr  )rr   r
   r   r   r   r'   r#   r(   )rY   r  rZ  r)   r,   s        r-   test_default_handler(TestPandasContainer.test_default_handler  s]    3E
+,cAs5z?348EMM#M$FGH
hGr9   c           	          S nS[        SS[        SS5      /[        S5      S S/S	.S
S/S9/nSn[        X!SS9U:X  d   eg )Nc                 |    [        U [        5      (       a  SSU R                  4SU R                  4/$ [	        U 5      $ )N)mathjsComplexreim)
isinstancecomplexrealimagr   )objs    r-   defaultBTestPandasContainer.test_default_handler_indirect.<locals>.default  s7    #w''-chh/?$AQRRs8Or9   	   r   STRrl   r   zN/Ar  r   r   r   zR[9,[[1,null],["STR",null],[[["mathjs","Complex"],["re",4.0],["im",-5.0]],"N\/A"]]]r1   r  r7   )r
   r  r   r   )rY   r  df_listr)   s       r-   test_default_handler_indirect1TestPandasContainer.test_default_handler_indirect  se    	 %B0edE7RSc

1 	
 JhV	
Vr9   c           	          [        SS[        SS5      /[        S5      S [        SS5      /S.S	S
/S9nSnUR                  [        SS9U:X  d   eg )Nr   gffffff@rl   r  r   g333333?r   r  r   r   r   zE[["(1+0j)","(nan+0j)"],["(2.3+0j)","(nan+0j)"],["(4-5j)","(1.2+0j)"]]r1   r  )r
   r  r   r'   r   )rY   rs   r)   s      r-   ,test_default_handler_numpy_unsupported_dtype@TestPandasContainer.test_default_handler_numpy_unsupported_dtype  sa    c71b>*%,gcSTo1VW#J

% 	
 zz#hz?8KKKr9   c           
      z  ^ SmU4S jn[         R                  " [        TS9   [        SSS[	        5       /05      R                  US9  S S S 5        [         R                  " [        TS9   [        SSS[        SS	5      /05      R                  US9  S S S 5        g ! , (       d  f       NX= f! , (       d  f       g = f)
Nraisinc                    > [        T5      er  )	TypeError)r  r+   s    r-   my_handler_raisesJTestPandasContainer.test_default_handler_raises.<locals>.my_handler_raises  s    C. r9   r   r   r   r   r  rl   r  )r   r   r  r
   rr   r'   r  )rY   r  r+   s     @r-   test_default_handler_raises/TestPandasContainer.test_default_handler_raises  s    	! ]]9C0sQ68,-.66 1 7  1 ]]9C0sQ71b>234<< 1 =  10	 10 10s   &B*(B,
B),
B:c                    [        S/ SQ05      nUS   US'   UR                  5       nUS   R                  S5      US'   X!R                  5       :X  d   eUS   nUS   nUR                  5       UR                  5       :X  d   eg )Nr   )r   r   r[   r   r   r   r   rn   category)r
   r'   r   )rY   rs   r)   r  scs        r-   test_categorical$TestPandasContainer.test_categorical  s~    @ABS'3::<S'..,3::<'''sGWyy{bjjl***r9   c                 l   [        SSSS9nUR                  S5      R                  S 5      n[        U[        SSS9S.5      nUR	                  5       nX$S'   UR                  5       nXSR                  5       :X  d   e[        U5      n[        U5      nUR                  5       UR                  5       :X  d   eg )	Nr   r   
US/Easternrd   rD  utcrc   r  r   )r   
tz_converttz_localizer
   r{   r'   r   )rY   tz_rangetz_naivers   df_naiver)   stzs_naives           r-   test_datetime_tz$TestPandasContainer.test_datetime_tz  s    j!E&&u-99$?XJz1,MNO779 ##%::<'''X"{{} 1111r9   c                 ,   [        [        R                  R                  S5      R	                  S5      5      n[        R
                  UR                  S S& UR                  S5      nUR                  5       nX2R                  5       :X  d   e[        [        R                  R                  S5      R	                  S5      5      n[        R
                  UR                  S S& UR                  S5      nUR                  5       nX5R                  5       :X  d   eg )Nr   )ra   rl      Sparsera   )
r
   rQ   rR   rS   rT   r   r  r   r'   r   )rY   rs   sdfr)   r  sss         r-   test_sparseTestPandasContainer.test_sparse  s    ryy,,Q/??HIVVr
ii!::<;;=(((299((+;;B?@FFbq	XXh99;::<'''r9   re   z2013-01-10 05:00:00Zz2013-01-10 00:00:00r  z2013-01-10 00:00:00-0500c                 h    Sn[        USS9U:X  d   eUR                  5       n[        USS9U:X  d   eg )Nz"2013-01-10T05:00:00.000Z"T	iso_dates)r   to_pydatetimerY   re   expdts       r-   test_tz_is_utc"TestPandasContainer.test_tz_is_utc  sA     +2.#5552.#555r9   c                 ~    [        S5      nSn[        USS9U:X  d   eUR                  5       n[        USS9U:X  d   eg )Nz2013-01-10 05:00:00z"2013-01-10T05:00:00.000"Tr  )r   r   r  r  s       r-   test_tz_is_naive$TestPandasContainer.test_tz_is_naive  sJ    ,-)2.#5552.#555r9   r  z2013-01-01 05:00:00Zr   rc   z2013-01-01 00:00:00r  z2013-01-01 00:00:00-0500c                 0   SnSn[        USS9U:X  d   e[        U5      n[        USS9U:X  d   e[        UR                  [        5      SS9U:X  d   e[	        SU05      n[        USS9nXc:X  d   e[        UR                  S[        05      SS9(       d   eg )Nz7["2013-01-01T05:00:00.000Z","2013-01-02T05:00:00.000Z"]zF{"DT":{"0":"2013-01-01T05:00:00.000Z","1":"2013-01-02T05:00:00.000Z"}}Tr  DT)r   r   r   rr   r
   )rY   r  r  dfexprO  rs   r,   s          r-   test_tz_range_is_utc(TestPandasContainer.test_tz_range_is_utc  s     H/ 	 8t4;;;H% 3$/36663::f->#EEEc{#R40299dF^4EEEr9   c                    [        SSS9nSnSn[        USS9U:X  d   e[        UR                  [        5      SS9U:X  d   e[	        SU05      n[        USS9nXS:X  d   e[        UR                  S[        05      SS9(       d   eg )	Nz2013-01-01 05:00:00r   rc   z5["2013-01-01T05:00:00.000","2013-01-02T05:00:00.000"]zD{"DT":{"0":"2013-01-01T05:00:00.000","1":"2013-01-02T05:00:00.000"}}Tr  r  )r   r   r   rr   r
   )rY   rO  r  r  rs   r,   s         r-   test_tz_range_is_naive*TestPandasContainer.test_tz_range_is_naive"  s    .:EV 3$/36663::f->#EEEc{#R40299dF^4EEEr9   c                 z    [        [        S5      SS9n[        SS/SS//SS/S9n[        R                  " X5        g )	Nr!   Tr   r   r   r   r   r   r   r   r
   r#   r(   r  s      r-   test_read_inline_jsonl*TestPandasContainer.test_read_inline_jsonl1  sB     8$IJRVWq!fq!f-SzB
f/r9   c                     [        SUR                   S3SUS9n[        SS/SS//SS/S	9n[        R                  " X45        g )
Nzs3n://z/items.jsonlT)r    storage_optionsr   r   r   r   r   )r   rL   r
   r#   r(   )rY   s3_public_bucket_with_datas3sor,   r)   s        r-   test_read_s3_jsonl&TestPandasContainer.test_read_s3_jsonl8  sU    
 /445\B 

 q!fq!f-SzB
f/r9   c                 4   [         R                  " S5       n[        USSS9 nUR                  S5        S S S 5        [	        USS9n[        SS	/SS	//S
S/S9n[         R                  " X45        S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nztmp_items.jsonwzutf-8encodingr!   Tr   r   r   r   r   r   )r#   r  openwriter   r
   r(   )rY   rL  infiler,   r)   s        r-   test_read_local_jsonl)TestPandasContainer.test_read_local_jsonlE  s    __-.$dC'2fBC 3t40F 1a&1a&!1C:FH!!&3 /.22 /.s!   B	A8:B	8
B	B		
Bc                     Sn[        U5      n[        USS9n[        SS/SS//SS/S	9n[        R                  " X#5        [        S5      n[        U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”rB   rD   r   r   r   )r   r   r
   r#   r(   rY   rD  r,   r)   s       r-   test_read_jsonl_unicode_chars1TestPandasContainer.test_read_jsonl_unicode_charsN  s    
 I~4t,{E2UENCcSVZX
f/ QR4t,{E2UENCcSVZX
f/r9   bigNumc                     [        U[        S/S9nUR                  5       nS[        U5      -   S-   nX4:X  d   e[	        U[        S/S/S9nUR                  5       nS[        U5      -   S-   nX4:X  d   eg )	N	articleIdr'  {"articleId":r  r   rI   rN   r   {"0":{"articleId":r	  )r   rr   r'   r   r
   )rY   r  r  rD  r)   rs   s         r-   test_to_json_large_numbers.TestPandasContainer.test_to_json_large_numbers_  s}     f[MB~~"S[036vVK=1#Nzz|'#f+5<r9   l        l            c                 h   [        S[        U5      -   S-   5      nSn[        R                  " [        US9   [        U5        S S S 5        [        S[        U5      -   S-   5      n[        R                  " [        US9   [        U5        S S S 5        g ! , (       d  f       NV= f! , (       d  f       g = f)Nr  r  z#Value is too small|Value is too bigr   r  r	  )r   r   r   r   r&   r   )rY   r  rD  r+   s       r-   test_read_json_large_numbers0TestPandasContainer.test_read_json_large_numbersl  s     #f+5;<4]]:S1dO 2 ,s6{:TAB]]:S1dO 21	 21 21s   B=B#
B #
B1c                     Sn[        U5      n[        USS9n[        SS/S9n[        R                  " X#5        Sn[        U5      n[        U5      n[        SS/S/S	9n[        R                  " X#5        g )
Nz'{"articleId": "1404366058080022500245"}r  r  gg_SDr  rM   z.{"0": {"articleId": "1404366058080022500245"}}r   rx   )r   r   r   r#   r  r
   r(   r  s       r-   test_read_json_large_numbers21TestPandasContainer.test_read_json_large_numbers2x  so    8~4X.+k];
v0?~4[sK
f/r9   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   r0   Tr7   r    z{"a":1,"b":2}
{"a":1,"b":2}
zfoo}rB   zfoo"z/{"a":"foo}","b":"bar"}
{"a":"foo\"","b":"bar"}
r   zfoo\za\r"   )r
   r'   r#   r(   r   r   r$  s       r-   test_to_jsonl!TestPandasContainer.test_to_jsonl  s    AA'#s<9D93!!!&%9C:N9D9G!!!
i(8ErJ %(65/:UCLQ9D9R!!!
i(8ErJr9   z%GH#13774 encoding kwarg not supportedval)   E, 17r9      a   b   c)r  r  r  r  )s   EE, 17r9   r  r  r  )r     r  r  r  )r9   r  r  r  )r  r  r  r  )   Ar9   r  r  r  r9   r  r  r  r  c           	      b   [        U Vs/ s H+  n[        U[        5      (       a  UR                  S5      OUPM-     snUS9nSn[        R
                  " S5       nUR                  XeS9  [        [        U5      US9n[        R                  " XGSS9  S S S 5        g s  snf ! , (       d  f       g = f)Nzlatin-1rH   r  r  F)check_categorical)
r   r~  r  decoder#   r  r'   r   r   r  )rY   rI   r  r   rh   r  rL  retrs           r-   test_latin_encoding'TestPandasContainer.test_latin_encoding  s    $ ILMAJq%$8$8QXXi a?M
 __[)TKKK0Xd^h?D""3F *)	 N *)s   2B8B  
B.c                     [        S[        S5      /05      nUR                  SSS9R                  5       nUR	                  5         UR                  SSS9R                  5       nX#:X  d   eg )Nr   r   T)rN   deep)r
   r   memory_usagesumr'   )rY   rs   size_before
size_afters       r-   "test_data_frame_size_after_to_json6TestPandasContainer.test_data_frame_size_after_to_json  sa    c!fX'ooDto<@@B


__4d_;??A
(((r9   r   r   r   r   1.2.c                     [        SS/SS//XS9nUR                  SS9n[        [        U5      SS9n[        R
                  " XS5        g )Nr   r   r   rl   rx   tablery   r
   r'   r   r   r#   r(   )rY   rN   r   r)   dfjsonr,   s         r-   .test_from_json_to_json_table_index_and_columnsBTestPandasContainer.test_from_json_to_json_table_index_and_columns  sO     q!fq!f-UL!!!18F+G<
f/r9   c                     [        SS/SS/SS/S.5      nUR                  SS	9n[        [        U5      SS	9n[        R
                  " X15        g )
Nr   r   r   r   r   r   ra  r  ry   r  )rY   r)   r  r,   s       r-   #test_from_json_to_json_table_dtypes7TestPandasContainer.test_from_json_to_json_table_dtypes  sQ    Aq6c
#sLM!!!18F+G<
f/r9   zincorrect na conversion)r   r0   rN   r   c                 6   [         R                  " [        / SQSS9[        / SQSS9[        / SQSS9[        / SQS	S9[        / S
QSS9[        / SQSS9S.5      nUR                  US9n[	        [        U5      USSSS	SSS.S9n[        R                  " XB5        g )Nr  rG   rH   )Nr   r   rf   )N r[   rr   TFTboolr   r   Nr  )rb   Nz
2020-01-03r   )IntegerFloatObjectBoolCategoryDatetimery   r7   rI   )r
   	from_dictr   r'   r   r   r#   r(   )rY   r7   r)   r  r,   s        r-   %test_to_json_from_json_columns_dtypes9TestPandasContainer.test_to_json_from_json_columns_dtypes  s     &&!)7; 0	B A2&A"#3:F"6>N	
 !!!0V"""&,
 	f/r9   )r   r[   c                     [        SS/SS/SS/S.5      nUR                  SS	9nS
n[        R                  " [        US9   [        USUS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r   r   ra  r  ry   z)cannot pass both dtype and orient='table'r   r  r
   r'   r   r   r&   r   )rY   rI   rs   r  r+   s        r-   !test_read_json_table_dtype_raises5TestPandasContainer.test_read_json_table_dtype_raises  s\     aV3*C:FG7+9]]:S1fWE: 211    A
A#)rN   r   r0   r1   c                     [        5       n[        [        S5      USS9n[        R                  " UR
                  UR
                  5        [        R                  " UR                  UR                  5        g )Nz{}Tr   )r
   r   r   r#   assert_index_equalrN   r   )rY   r7   r)   r,   s       r-   %test_read_json_table_empty_axes_dtype9TestPandasContainer.test_read_json_table_empty_axes_dtype   sO     ;8D>&tL
fllHNN;
fnnh.>.>?r9   c                     [        SS/SS//SS/SS/S	9nUR                  S
S9nSn[        R                  " [        US9   [        US
SS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   rl   r   r   r  r  rx   r  ry   z0cannot pass both convert_axes and orient='table'r   Tr   r  )rY   rs   r  r+   s       r-   (test_read_json_table_convert_axes_raises<TestPandasContainer.test_read_json_table_convert_axes_raises	  s`    AA'SzD$<P7+@]]:S1fW4@ 211r   zdata, expectedrl   rA   r   )r   r\   rD   rq   r  r   rK   )rL   r\   )rL   rN   c                 ^    UR                  SSS9n[        R                  " U5      nX2:X  d   eg )Nr   Fr7   rN   )r'   rD  loadsrY   r\   r)   r,   s       r-   test_index_false_to_json_split2TestPandasContainer.test_index_false_to_json_split  s1    @ WE:F#!!!r9   c                     UR                  SSS9n[        R                  " U5      n[        R                  R                  R                  USS9[        U5      R                  SS9S.nX#:X  d   eg )Nr  Fr)  rM   r0   ry   )schemar\   )r'   rD  r*  rW   rC  build_table_schemar
   to_dictrY   r\   r,   r)   s       r-   test_index_false_to_json_table2TestPandasContainer.test_index_false_to_json_table6  sk    & WE:F# eejj33D3FdO++9+=

 !!!r9   c                     [        SS/SS//SS/S9nSn[        R                  " [        US	9   UR	                  US
S9  S S S 5        g ! , (       d  f       g = f)Nr   r   rl   rA   r   r   r   zU'index=False' is only valid when 'orient' is 'split', 'table', 'records', or 'values'r   Fr)  r   r   s       r-   test_index_false_error_to_json2TestPandasContainer.test_index_false_error_to_jsonS  sW    
 AA'#s<. 	 ]]:S1JJfEJ2 211   A
Ar0   c                     [        SS/SS//SS/S9nSn[        R                  " [        US	9   UR	                  US
S9  S S S 5        g ! , (       d  f       g = f)Nr   r   rl   rA   r   r   r   zS'index=True' is only valid when 'orient' is 'split', 'table', 'index', or 'columns'r   Tr)  r   r   s       r-   test_index_true_error_to_json1TestPandasContainer.test_index_true_error_to_jsona  sW    
 AA'#s<- 	 ]]:S1JJfDJ1 211r8  r  c                     [        SS/SS/S.5      nUR                  XS9n[        [        U5      US9n[        R
                  " XS5        g )Nr   r   r   rl   r  r)  ry   r  )rY   r7   rN   r)   r  r,   s         r-   "test_index_false_from_json_to_json6TestPandasContainer.test_index_false_from_json_to_jsono  sM    
 Aq6A78!!!=8F+F;
f/r9   c                     [        [        S5      SSS9n[        S/SS9n[        S/US	9n[        R
                  " X5        g )
Nz{"2019-01-01T11:00:00.000Z":88}r  rN   r  z2019-01-01 11:00:00zM8[ns, UTC]rH   X   rM   )r   r   r   r   r#   r  )rY   r,   exp_dtir)   s       r-   test_read_timezone_information2TestPandasContainer.test_read_timezone_informationy  sG    67Xg
  !6 7}M2$g.
v0r9   rJ  )zs3://example-fsspec/zgcs://another-fsspec/file.jsonzhttps://example-site.com/datazsome-protocol://data.txtc                 |    [        [        SU S35      5      n[        SU/05      n[        R                  " X#5        g )Nz{"url":{"0":"r  rJ  r  )rY   rJ  r,   r)   s       r-   test_read_json_with_url_value1TestPandasContainer.test_read_json_with_url_value  s:     8ocU%$@ABecU^,
f/r9   compression)r  z.gzz.bz2z.tarc                     S SU 3n[         R                  " [        SU S3S9   [        U5        S S S 5        g ! , (       d  f       g = f)N  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz.jsonzFile z does not existr   )r   r   FileNotFoundErrorr   )rY   rG  long_json_paths      r-   'test_read_json_with_very_long_file_path;TestPandasContainer.test_read_json_with_very_long_file_path  sI     '<u[M:]]u^,<O%L

 n%
 
 
s	   :
Azdate_format,key)r  i \&)r  
P1DT0H0M0Sc                 ~    [        S//[        R                  " S5      /S9nSU S3nUR                  US9nXT:X  d   eg )Nr   1Dr   r  z
":{"0":1}}r  )r
   rW   rf  r'   )rY   r  keyrs   r)   r,   s         r-   test_timedelta_as_label+TestPandasContainer.test_timedelta_as_label  sJ     ur||D'9&:;]+4!!!r9   zorient,expected)rN   z{"('a', 'b')":{"('c', 'd')":1}})r   z{"('c', 'd')":{"('a', 'b')":1}}r  z,Produces JSON but not in a consistent manner)marksc                 N    [        S//S/S/S9nUR                  US9nXB:X  d   eg )Nr   r  )r[   rw   rx   ry   r
  rY   r7   r)   rs   r,   s        r-   test_tuple_labels%TestPandasContainer.test_tuple_labels  s6    0 uZL:,G6*!!!r9   indent)r   r   rl   c                     [        SS/SS//SS/S9nUR                  US9nS	U-  nS
U SU U SU U SU SU SU U SU U SU S3nX5:X  d   eg )NrD   rB   rC   r/  r   r   r   rY   z{
z"a":{
z"0":"foo",
z
"1":"baz"
z},
z"b":{
z"0":"bar",
z
"1":"qux"
z}
}r
  )rY   rY  rs   r,   spacesr)   s         r-   test_to_json_indent'TestPandasContainer.test_to_json_indent  s     7#sL6*v 	   	 	   		 !!!r9   z]Adjust expected when infer_string is default, no bug here, just a complicated parametrization))r   z{
    "columns":[
        "a",
        "b"
    ],
    "index":[
        0,
        1
    ],
    "data":[
        [
            "foo",
            "bar"
        ],
        [
            "baz",
            "qux"
        ]
    ]
})r0   zf[
    {
        "a":"foo",
        "b":"bar"
    },
    {
        "a":"baz",
        "b":"qux"
    }
])rN   zn{
    "0":{
        "a":"foo",
        "b":"bar"
    },
    "1":{
        "a":"baz",
        "b":"qux"
    }
})r   zn{
    "a":{
        "0":"foo",
        "1":"baz"
    },
    "b":{
        "0":"bar",
        "1":"qux"
    }
})r1   zV[
    [
        "foo",
        "bar"
    ],
    [
        "baz",
        "qux"
    ]
])r  aa  {
    "schema":{
        "fields":[
            {
                "name":"index",
                "type":"integer"
            },
            {
                "name":"a",
                "type":"string"
            },
            {
                "name":"b",
                "type":"string"
            }
        ],
        "primaryKey":[
            "index"
        ],
        "pandas_version":"1.4.0"
    },
    "data":[
        {
            "index":0,
            "a":"foo",
            "b":"bar"
        },
        {
            "index":1,
            "a":"baz",
            "b":"qux"
        }
    ]
}c                 V    [        SS/SS//SS/S9nUR                  USS	9nXB:X  d   eg )
NrD   rB   rC   r/  r   r   r   rl   )r7   rY  r
  rV  s        r-   test_json_indent_all_orients0TestPandasContainer.test_json_indent_all_orients  s@    x 7#sL6!4!!!r9   c                     [         R                  " [        SS9   [        5       R	                  SS9  S S S 5        g ! , (       d  f       g = f)Nzmust be a nonnegative integerr   r[  )r   r   r&   r
   r'   r  s    r-    test_json_negative_indent_raises4TestPandasContainer.test_json_negative_indent_raisesY  s1    ]]:-LMKr* NMMs	   ;
A	c           	          [        S5      n[        U5      n[        SS S[        R                  S[        R                  * S/5      n[
        R                  " X#5        g )Nz?["a", NaN, "NaN", Infinity, "Infinity", -Infinity, "-Infinity"]r   NaNInfinityz	-Infinity)r   r   r
   rQ   r  r#   r(   r2  s       r-   test_emca_262_nan_inf_support1TestPandasContainer.test_emca_262_nan_inf_support]  sP    M
 4$rvvzBFF7KH
 	f/r9   c                     [         R                  " SS0SS0/5      n[        SSS/05      n[        [	        U5      5      n[
        R                  " X25        g )Ncol31900441201190696999Text)rD  dumpsr
   r   r   r#   r(   )rY   encoded_jsonr)   r,   s       r-   test_frame_int_overflow+TestPandasContainer.test_frame_int_overflowh  sQ    zzE+A#BUFO"TUe&<f%EFG8L12
f/r9   zdataframe,expectedra  r   r   zU{"(0, 'x')":1,"(0, 'y')":"a","(1, 'x')":2,"(1, 'y')":"b","(2, 'x')":3,"(2, 'y')":"c"}c                 N    UR                  SS9nUR                  SS9nXB:X  d   eg )NTfuture_stackrN   ry   )stackr'   )rY   	dataframer)   r  r,   s        r-   test_json_multiindex(TestPandasContainer.test_json_multiindexo  s0     d3w/!!!r9   c                    UR                   SpC[        / SQ/ SQS.5      nUR                  SU SU 3US9  Sn US	 UR                  R	                  5        5       ;   a  g [
        R                  " S
5        US
-  nUS:  d   S5       eMP  )Nr  r  )r   rl   r   rt  zs3:///)r  rA   c              3   8   #    U  H  oR                   v   M     g 7fr  )rQ  ).0r  s     r-   	<genexpr>1TestPandasContainer.test_to_s3.<locals>.<genexpr>  s     Q2P3ww2Ps   r,  r   z,Timed out waiting for file to appear on moto)rL   r
   r'   objectsalltimesleep)rY   s3_public_bucketr  mock_bucket_nametarget_filers   timeouts          r-   
test_to_s3TestPandasContainer.test_to_s3~  s     )9(=(={+YY78


U+,Ak];T
RQ2B2J2J2N2N2PQQJJsOsNGQ;N NN; r9   c                     [        U[        5      (       a.  [        R                  R	                  SS9nUR                  U5        [        U//5      R                  5       nUS:X  d   eg )Nznot implementedr   z{"0":{"0":null}})r~  r   r   r   r   r   r
   r'   )rY   nulls_fixturer   r   r,   s        r-   test_json_pandas_nulls*TestPandasContainer.test_json_pandas_nulls  s\    mW--;;$$,=$>D%]O,-557++++r9   c                 p    [        [        S5      SS9n[        / SQ5      n[        R                  " X5        g )Nz[true, true, false]r  r  )TTF)r   r   r   r#   r  r  s      r-   test_readjson_bool_series-TestPandasContainer.test_readjson_bool_series  s-    8$9:I-.
v0r9   c                 ~    [        S[        SS5      SS/S9R                  SS9nUR                  5       nSnX#:X  d   eg )	NTz
2017-01-20z
2017-01-23rD   rB   rx   rv  a  {"(Timestamp('2017-01-20 00:00:00'), 'foo')":true,"(Timestamp('2017-01-20 00:00:00'), 'bar')":true,"(Timestamp('2017-01-21 00:00:00'), 'foo')":true,"(Timestamp('2017-01-21 00:00:00'), 'bar')":true,"(Timestamp('2017-01-22 00:00:00'), 'foo')":true,"(Timestamp('2017-01-22 00:00:00'), 'bar')":true,"(Timestamp('2017-01-23 00:00:00'), 'foo')":true,"(Timestamp('2017-01-23 00:00:00'), 'bar')":true})r
   r   rx  r'   r$  s       r-   test_to_json_multiindex_escape2TestPandasContainer.test_to_json_multiindex_escape  sW    \<8EN
 %T%
"	 	
 B 	 !!!r9   c           	           " S S5      n[        U" SSSSS9/5      n[        R                  " UR                  5       5      SSSSS	.0:X  d   eg )
Nc                   $    \ rS rSrSS jrS rSrg)GTestPandasContainer.test_to_json_series_of_objects.<locals>._TestObjecti  Nc                 4    Xl         X l        X0l        X@l        g r  r   r   _crw   )rY   r   r   r  rw   s        r-   r  PTestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.__init__  s    r9   c                     g)NrA   r   r  s    r-   r   ITestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.e  s    r9   )r  r   r   rw   r  )r  r  r  r  r  r   r  r   r9   r-   _TestObjectr    s    r9   r  r   r   r   rl   r  0)r   r   rw   )r   rD  r*  r'   )rY   r  r  s      r-   test_to_json_series_of_objects2TestPandasContainer.test_to_json_series_of_objects  sP    	 	 qA!q9:;zz&..*+1115M/NNNNr9   zdata,expectedy             @y              ?y      "@      )r   r   r   zW{"0":{"imag":8.0,"real":-6.0},"1":{"imag":1.0,"real":0.0},"2":{"imag":-5.0,"real":9.0}}yHz"Q?y@p=
ף"@yQ@(\ſz]{"0":{"imag":0.66,"real":-9.39},"1":{"imag":9.32,"real":3.95},"2":{"imag":-0.17,"real":4.03}}y             @y              y      @      y              $z{"0":{"0":{"imag":3.0,"real":-2.0},"1":{"imag":-3.0,"real":4.0}},"1":{"0":{"imag":0.0,"real":-1.0},"1":{"imag":-10.0,"real":0.0}}}yQѿ(\?yHzG(\ؿy=
ףp=?(\տy(\迚z{"0":{"0":{"imag":0.34,"real":-0.28},"1":{"imag":-0.34,"real":0.41}},"1":{"0":{"imag":-0.39,"real":-1.08},"1":{"imag":-1.35,"real":-0.78}}}c                 2    UR                  5       nX2:X  d   eg r  r   r+  s       r-   test_complex_data_tojson,TestPandasContainer.test_complex_data_tojson  s    F !!!r9   c                 N    Sn[        SSS/0S9nUR                  SS9nX1:X  d   eg )NzY{"columns":["col1"],"index":[0,1],"data":[[13342205958987758245],[12388075603347835679]]}col1l   :!c&HI l   v8$Z_
 )r\   r   ry   r
  )rY   r)   rs   r,   s       r-   test_json_uint64$TestPandasContainer.test_json_uint64  sA    F 	 V&:<P%QRS7+!!!r9   )r   r0   r1   rN   r   c                    [         R                  " S5      n[        [        S[        R
                  S/SS9[        / SQSS9[        S[        R
                  S/S	S9[        / S
QS	S9/ SQ/ SQ/ SQ/ SQS.5      nU(       a9  [        UR                  / SQ5      5      n[        UR                  / SQ5      5      nOUS:X  ab  [        [        R                  " / SQ[        R                  S95      n[        [        R                  " SS[        /[        R                  S95      nOUS:X  aO  [         R                  " S5      nSSKJn	  U	" UR                  / SQ5      5      nU	" UR                  / SQ5      5      nO8[        UR                  / SQ5      5      n[        UR                  / SQ5      5      nUR                  US9n
[        R                   " SU5         [#        [%        U
5      X#S9nS S S 5        [        [        S[        R
                  S/SS9[        / SQSS9[        S[        R
                  S/S	S9[        / S
QS	S9[        SS[        /SS9[        / SQSS9UUS.5      nUS:X  aB  SSKJn	  [        UR&                   Vs0 s H  nX" UR                  X   SS95      _M     sn5      nUS:X  a  [)        [+        S5      5      Ul        [,        R.                  " WU5        g ! , (       d  f       GN= fs  snf )Npyarrowr   r   Int64rH   r  r   r   Float64)r   r   r   )TFNr  ra  r  )r   r   r[   rw   r   r  grZ  pythonr   r   r   ArrowExtensionArrayry   mode.string_storage)dtype_backendr7   TFbooleanfrom_pandasr1   r  )r   importorskipr
   r   rQ   r   r   arrayr   object_r	   pandas.arraysr  r   r'   rW   option_contextr   r   r   rP   r5   r#   r(   )rY   string_storager  r7   r   pars   string_arraystring_array_nar  outr,   r)   rm  s                 r-   test_read_json_dtype_backend0TestPandasContainer.test_read_json_dtype_backend  sz      +QN':IW5S"&&#.i@O9=(($%	
 9"((?:STL<RXXFV=WXOx'&rxxrzz'RSL)"((Cb>*TUOi'$$Y/B9.rxx/HIL1"((;K2LMO ,BHH_,EFL.rxx8H/IJOjjj'4nE]F F
 QN':IW5S"&&#.i@O9=T5"-Y?/yA!$	
 I%9   (/// ,RXXhmQUX-VWW/H X#E!H~H
fh/? FE,s   K""K4"
K1)r   r0   rN   c           	         [         R                  " S5      n[        S[        R                  S/SS9nUR                  US9n[        R                  " SU5         [        [        U5      X#SS	9nS S S 5        [        S[        R                  S/SS9nUS:X  a%  S
SK
Jn	  [        U	" UR                  USS95      5      n[        R                  " WU5        g ! , (       d  f       Nl= f)Nr  r   r   r  rH   ry   r  r  )r  r7   r  r   r  Tr  )r   r  r   rQ   r   r'   rW   r  r   r   r  r  r  r#   r  )
rY   r  r  r7   r  rh   r  r,   r)   r  s
             r-   test_read_json_nullable_series2TestPandasContainer.test_read_json_nullable_series7  s       +a^73kkk(4nE]xF F
 1bffa.8I%91"((8QU(2VWXH
vx0 FEs   C
C!c                     Sn[         R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       g = f)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r   r#  numpy)r  )r   r   r&   r   )rY   r+   s     r-   test_invalid_dtype_backend.TestPandasContainer.test_invalid_dtype_backendL  s2    % 	 ]]:S1fG4 211s   0
>r   )r  r  r  r  r   fixturer^   ri   rt   r}   r   parametrizer   r   r   r   r   r   r   r   rQ   rG   r   rf   intr   r   r   r   r   r   AssertionErrorr   rM  r   r   r   r  r  skipifr   r  r  r   r%  r)  r<  rV  rz  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  rA  r  r  r  r  r  r  r#  r-  r0  r8  r@  network
single_cpurW   DatetimeTZDtyperM  r[  rc  ri  rf  r   rm  rr  rv  r  r  r  r  r  r  r  r  r   r  r  r  rh  skip_if_not_us_localer  r  r  sysmaxsizer  r  r  r  r  r   rr   r  r   r  r  r   r  r  r#  r&  r
   rename_axisr,  r3  r6  r:  r=  rB  rE  rL  rR  paramrW  r^  ra  re  rj  rr  rz  r  r  r  r  r  r  r  r  r  r  r  r   r9   r-   r;   r;   `   s   ^^I I ^^	 	 ^^	 	
> [[X'EF> G> [[X';<& =& [[X':;[[3Z#s$3Z#s$X3x 
#S)Ij,A3+GH		
0 <0( [[X'FG& H&N [[Wuen5[[^dE];> < 6> [[Wubhh&78[[^dE];> < 9> [[WtRZZd&CD[[^dE];> < E>< [[^dE];> <>* [[^dE];0 <0 [[^dE];> <>  [[^dE];> <>& [[J   [[fu~.fu~.fu~.	
*	* [[D; V
 
/	
!D5E!D5 [[WtUm4[[^dE];+ < 5+( [[WtUm40 50 [[URVVbffW$56[[WtUm4+ 5 7+ [[D)OP[[&	

B
 QB
)B"

+<M<`
D$
L"7$P1 [[Wudm4
1 5
1	1
1 [[Wrzz3&78	1 9	1(B
1 [[6<.0@ABFL>*+	
11*
*
* 
#+0 [[]We,<=[[[4-8[[Z(--9J9JI)VW" X 9 >"( [[	
	0	0 [[	
	0	0; [[	
	1	1; [[V%<=* >*$ [[V%67$
 8$
L*.' [[[[[[2--78*+2--78	
,  ,
(-
H [[[4-8[[]UG,<=[[_r||Y.GH" I > 9"( [[[4-8[[_r||Y.GH" I 9"H
*L+2 (  [[,-+=01	
666 [[-q9,aLI11=	
FF&F0 [[	0  	040" [[Xa3;;?9K'LM
  N
  [[Xe'<=	 >	0K, [[EiX[[1,.9#+1VVS$%2663d3
	
 [[Wz6&:;
G < Y 
G) [[$Ac
S#Jc
T4LQ [[Y#sc3Z$(NO0 P00 [[13<UV[[X'OP0 Q W0< [[Wt3S-A&BC; D; [[X'PQ@ R@A [[ Aq6Aq6*S#J? #J!Q!Q0@A
 Aq6Aq6*S#J?KKER #J!Q!Q0@A
 VaV$sCj#scSVZ@X !#J!Q!Q0@A	 IC(3	*JKys+77>i0
 1vCc
S#J/GHq!f-)	
8"98" [[AA'#s<AA'#s<HHOVaV$sCj#scSVZ@X IC(IC(44U;QFc3Z#s,DE	
"" [[X';<3 =3 [[X	8'<=2 >2 [[X'9:[[WtUm40 5 ;01 [[	
00 [[#&	& [[/1FG"" [[<>LLkk''I (  LLkk''I ( 	
,"-," [[Xy1" 2"& [["$-  
 [[q	
tj"ktt"+	00 [[ 	@AD	
	"	"
 [[O O,1"(O [[ 7v&9:0 =\lKL2 GW-/ABC2 #]3lM5RS4	)	
 B"C B"
" [[DD0D0L [[X'DE1 F1(5r9   r;   c                      [        [        S5      5      n U R                  5       n[        R                  " [
        SS9   [        USS9  S S S 5        g ! , (       d  f       g = f)Nr   zThe engine type foor   rD   )enginer   r5   r'   r   r   r&   r   rh   r  s     r-   test_invalid_enginer  U  sA    
q
C
++-C	z)>	?#e$ 
@	?	?s   A
A c                      [        [        S5      5      n U R                  5       n[        R                  " [
        SS9   [        USSS9  S S S 5        g ! , (       d  f       g = f)Nr   z&currently pyarrow engine only supportsr   r  F)r  r    r  r  s     r-   test_pyarrow_engine_lines_falser  ]  sC    
q
C
++-C	z)Q	R#iu5 
S	R	Rs   A
A!c           
      ~   [         R                  " S5        [        SS/SS//SS/SS	/S
9nUR                  5       n[        R
                  " SS5         [        [        U5      5      nS S S 5        [        SS/SS//S[        SS/SS9[        SS	/SS9S9n[        R                  " WU5        g ! , (       d  f       NL= f)Nr  r   r   r[   rw   zrow 1zrow 2zcol 1zcol 2rx   zfuture.infer_stringTr   rH   r  )r   r  r
   r'   rW   r  r   r   r   r#   r(   )r7   rs   r  r,   r)   s        r-   $test_json_roundtrip_string_inferencer  e  s    
	"	
sc3Z '(:WgDV
B **,C			0$	78C=) 
8
sc3Z %Wg&.EFw(0GH	H &(+ 
8	7s   B..
B<c                      [        S/ SQ05      n Sn[        R                  " [        US9   [	        5       nU R                  US5        S S S 5        g ! , (       d  f       g = f)Nr   r  zuStarting with pandas version 3.0 all arguments of to_json except for the argument 'path_or_buf' will be keyword-only.r   r   )r
   r#   r$   r%   r   r'   )rs   r+   r,  s      r-   test_json_pos_args_deprecationr  v  sN    	C#	$B	8  
	#	#M	=i


3  
>	=	=s   A
Ar  c                      [        [        S[        /SS9[        S[        /SS9S.5      n U R                  SSS	9nS
nX:X  d   eg )Nr   zint64[pyarrow]rH   r   r  r  r0   Tr  z"{"a":1,"b":2}
{"a":null,"b":null}
)r
   r   r	   r'   )rs   r,   r)   s      r-   test_to_json_ea_nullr    sY     
B'78Bw/	

B ZZyZ5FH r9   c                      Sn [        [        U 5      SS9R                  n[        S5      n[        R
                  " XSS9  g )Nz#
{"a": 1, "b": 2}
{"a": 3, "b": 4}
Tr   r   )exact)r   r   rN   r   r#   r"  )r\   r,   r)   s      r-   test_read_json_lines_rangeindexr    s:    D x~T288F!}H&$7r9   )5r  r   decimalr   rC  r   r   rD  rK  r  r  r  rQ   r   pandas._configr   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorsrh  pandasrW   r	   r
   r   r   r   r   r   r   r   pandas._testing_testingr#   pandas.core.arraysr   r   pandas.core.arrays.string_arrowr   pandas.io.jsonr   r.   r8   r;   r  r  r  r  
skip_if_nor  r  r   r9   r-   <module>r     s        	 
    5  ) ) 
 
 
  K &*0Z,r5 r5j?%6,"	! y 8r9   