
    A>iQ                    H   S SK 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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%  S	 r&S
 r' " S S5      r(S r)S r*S r+\RX                  " S5      S 5       r-S r.S r/g)    N)	timedelta)BytesIOStringIO)using_string_dtype)IS64)Pandas4Warning)	NA	DataFrameDatetimeIndexIndex
RangeIndexSeries	Timestamp
date_range	read_json)ujson_dumpsc                     Sn Sn[         R                  " [        US9   [        U SS9  S S S 5        [         R                  " [        US9   [        SSS9  S S S 5        [         R                  " [        US9   [        SSS9  S S S 5        [         R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nx= f! , (       d  f       N]= f! , (       d  f       g = f)	Nz[{"a": 1, "b": 2}
        {"a": 3, "b": 4}
        {"a": 5, "b": 6}
        {"a": 7, "b": 8}z.* does not existmatchFlines!{"a": 1, "b": 2}
{"b":2, "a" :1}
T4{"a\\":"foo\\","b":"bar"}
{"a\\":"foo\"","b":"bar"}
pytestraisesFileNotFoundErrorr   )jsonlmsgs     _/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/io/json/test_pandas.pytest_literal_json_raisesr!   &   s    E
 C	(	4%u% 
5 
(	47tD 
5 
(	4K	
 
5 
(	47uE 
5	4 
5	4 
5	4 
5	4 
5	4s/   B6
C6C"C)6
C
C
C&)
C7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dropr$   )reset_indexrangelencolumnstmassert_frame_equal)resultexpectedorients      r    assert_json_roundtrip_equalr0   ?   sL    &&''T'2 X%5%5!67&+    c                      \ rS rS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      R                  S5      S/\" S5      R                  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%\R8                  " S+\R<                  " S+5      S,9/5      \R                  R                  S!S"S /5      S- 5       5       r\R                  R                  S!S"S /5      S. 5       r \R                  RC                  S/\"S09\R                  R                  S	S1S1/S2S3//S1S4/S2S2//S1S1/S2S2///5      S5 5       5       r#\R                  R                  S6S7S8S9RI                  S:/5      S4S;S</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@\RP                  \RP                  * /5      \R                  R                  SS"S /5      SA 5       5       r)\R                  RU                  \+(       + SBSC9\R                  R                  SD/ SEQ5      SF 5       5       r,SG r-SH r.SI r/SJ r0SK r1SL r2SM r3SN r4SO r5SP r6SQ r7SR r8\R                  R                  SS S%/5      SS 5       r9ST r:\R                  R                  S*S%\R8                  " S+\R<                  " S+5      S,9/5      SU 5       r;\R                  R                  S\R.                  \/5      SV 5       r<SW r=SX r>SY r?\R                  R                  S*S%\R8                  " S+\R<                  " S+5      S,9/5      \R                  R                  SZS"\@" S[/S\S]94S \@" S^/5      4/5      S_ 5       5       rAS` rBSa rCSb rDSc rESd rFSe rG\R                  R                  SfSgSh/5      \R                  R                  SiS"S /5      \R                  R                  Sj\HR                  \HR                  \/5      Sk 5       5       5       rJ\R                  R                  Sl/ SmQ5      Sn 5       rK\R                  R                  So/ SpQ5      Sq 5       rLSr rM\R                  R                  So/ SpQ5      Ss 5       rNSt rOSu rP\R                  R                  Sv\Q" / SwQ\R                  " S5      Sx.5      S%4\Q" Sy/ SzQ05      S%4\Q" / SwQ\SR                  " \R                  " S5      S{S|9Sx.5      \U4\Q" Sy\SR                  " / S}Q5      05      \U4/5      S~ 5       rW\R                  R                  S*S%\R8                  " S+\R<                  " S+5      S,9/5      \R                  R                  S/ SQ5      S 5       5       rXS rYS rZS r[\R                  R                  \R                  R                  S 5       5       r^S r_S r`S ra\R                  R                  SiS"S /5      \R                  R                  SfShSg/5      \R                  R                  S\SR                  \c/5      S 5       5       5       rd\R                  R                  SiS"S /5      \R                  R                  S\SR                  \c/5      S 5       5       reS rfS rgS rhS riS rjS rkS rl\R                  R                  S\" S5      \" SSS9\" S5      /5      S 5       rmS rn\R                  R                  S\o" SSSS9\o" SSSSS9\o" SSSS9/5      S 5       rpS rqS rr\R                  R                  \R                  R                  \R                  S 5       5       5       rtS ruS rv\R                  R                  S\wR                  S-   \wR                  S-   * /5      S 5       ry\R                  R                  SSS/5      S 5       rzS r{S r|\R                  RC                  S\}S09\R                  R                  S/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ\R                  SSS/S\R                  SSS//	5      \R                  R                  SS\/5      S 5       5       5       rS r\R                  R                  SS%SS/SS/SS/SS/SS//5      \R                  R                  S	SS/SS/SS//5      S 5       5       rS r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  SS"\\S./5      S 5       r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  S\Q" SS/SS//SS/S9SS/SS/SS//S.4\Q" SS/SS//SS/S9GR                  S5      SS/SS/SS//S.4\Q" SS/SS//SS/SS/SS//S9SS/SS/SS//S.4\@" / SQSyS9Sy/ SQS.4\@" / SQSyS9GR                  S5      Sy/ SQS.4\@" SS/SySS/SS//S9SySS/S.4/5      S 5       r\R                  R                  S\Q" SS/SS//SS/S9\Q" SS/SS//SS/S9GR                  S5      \Q" SS/SS//SS/SS/SS//S9\@" / SQSyS9\@" / SQSyS9GR                  S5      \@" SS/SyS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/5      S 5       r\R                  R                  SSS\R8                  " SS\R                  RC                  SSC9S,9\R8                  " SS\R                  RC                  SSC9S,9/5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  RU                  \" 5       SSC9\R                  R                  S/ SQ5      S 5       5       rS rS rS rS r\R                  R                  \R                  R                  S 5       5       rGS  rGS rGS 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\Q" GSGS/GSGS//5      GS4\Q" GSGS/GSGS//5      GS4/5      GS 5       rGS rGS r\R<                  " S+5      \R                  GRI                  GS5      GS 5       5       r\R                  R                  S/ GSQ5      GS 5       rGS rGS rg%(!  TestPandasContainerG   c           	          [        S[        R                  " S[        R                  S9-  [	        SSSS9SS9nUR
                  R                  S 5      Ul        U$ )	Ng?
   dtype
2020-01-01nsperiodsunitts)indexname)r   nparangefloat64r   r?   
_with_freq)selfsers     r    datetime_series#TestPandasContainer.datetime_seriesH   sQ     "))Bbjj11\2DA

 II((.	
r1   c                     [        [        R                  R                  S5      R	                  S5      [        [        S5      5      [        SSSSS9S	9nUR                  R                  S 5      Ul        U$ )
N   )      ABCD
2000-01-01rK   Br:   r<   freqr=   r*   r?   )
r
   rA   randomdefault_rngstandard_normalr   listr   r?   rD   rE   dfs     r    datetime_frame"TestPandasContainer.datetime_frameT   sb     II!!!$44W=$v,'\2CdK

 88&&t,	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 )Nabcdz	index " 1z	index / 2za \ bzy / zr?   r*   r/   r
   r   to_jsonr   copyr0   rE   r/   rX   datar-   r.   s         r     test_frame_double_encoded_labels4TestPandasContainer.test_frame_double_encoded_labels`   sb    3Z#s$,w'
 

&
124/779#Ff=r1   r/   )splitr#   r$   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^   r_      xyr`   ra   rb   re   s         r    test_frame_non_unique_index/TestPandasContainer.test_frame_non_unique_indexl   sY    c
S#J/1vSzR

&
124/779#Ff=r1   r?   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^   r_   rk   rl   rm   r`   z+DataFrame index must be unique for orient=''r   ra   r
   r   r   
ValueErrorrc   rE   r/   rX   r   s       r    "test_frame_non_unique_index_raises6TestPandasContainer.test_frame_non_unique_index_raisesu   s[    c
S#J/1vSzR;F81E]]:S1JJfJ% 211   A
Ari   r$   rf   r\   r]   r^   r_         ?      @g      @g      @rk      20130101s20130102c           	         [        USS/SS/S9nS nSnUR                  S S 2S4   R                  S:X  a  [        n[        R
                  " XVS9   [        [        UR                  US	95      US/S
9nS S S 5        US:X  a  [        U5      nUR                  S S 2S4   R                  S:X  a[  UR                  S S 2S4   R                  n	UR                  SU	R                  S5      R                  [        R                  5      5        OEUS:X  a?  UnSS/Ul        US   R                  R                   S:X  a  US   R                  S5      US'   [        R"                  " WW5        g ! , (       d  f       N= f)Nrk   rJ   rl   r`   |The default 'epoch' date format is deprecated and will be removed in a future version, please use 'iso' date format instead.r   zdatetime64[s]r   ra   )r/   convert_datesr$   msri   zx.1MM8[ms])r
   ilocr8   r   r+   assert_produces_warningr   r   rc   _valuesisetitemas_unitastyperA   int64r*   kindr,   )
rE   r/   rf   requestrX   expected_warningr   r-   r.   dtas
             r    test_frame_non_unique_columns1TestPandasContainer.test_frame_non_unique_columns|   s[    tAq6C:>I 	 771a4=/1-''(8D623FSVRWF E X H}}QT"((O; mmAqD)11!!!S[[%6%=%=bhh%GHwH #U|H}""''3. ( 4 4X >
fh/% EDs   #E%%
E3)r?   r*   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^   r_   rk   rJ   rl   r`   z-DataFrame columns must be unique for orient='rq   r   ra   rr   rt   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1rw   c                 J    UR                  5       UR                  SS9:X  d   eg )Nr*   ra   rc   )rE   float_frames     r    test_frame_default_orient-TestPandasContainer.test_frame_default_orient   s'    ""$(;(;9(;(MMMMr1   r8   Fconvert_axesTc                 d    [        UR                  US95      n[        XQX#S9nUn[        XgU5        g Nra   r/   r   r8   r   rc   r   r0   )rE   r/   r   r8   r   rf   r-   r.   s           r    test_roundtrip_simple)TestPandasContainer.test_roundtrip_simple   s7     ++6+:;4\W#Ff=r1   c                 d    [        UR                  US95      n[        XQX#S9nUn[        XgU5        g r   r   )rE   r/   r   r8   	int_framerf   r-   r.   s           r    test_roundtrip_intframe+TestPandasContainer.test_roundtrip_intframe   s7     	)))894\W#Ff=r1   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*   r?   r8   ra   r   r`   r#   ri   )r
   rA   zerosr(   strr   rc   r   rd   r   r   r*   r?   r0   )	rE   r/   r   r8   irX   rf   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                    US;   a0  UR                  [        R                  R                  SU S3S95        [	        [        S5      5       VVs0 s H4  u  pVU[        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n	[        U	R!                  US95      n[#        XrUS9n
U	R%                  5       nUR&                  R)                  U(       d  [*        OS5      Ul        S UR&                  l        [/        XU5        g s  snnf )Nr`   z.Can't have duplicate index values for orient 'z')reasonrM   rK   bah   barbazfoo   Er   r7   sortr@   r?   ra   r/   r   r   )applymarkerr   markxfail	enumeraterV   rA   rS   rT   rU   reversedrB   r
   pdCategoricalIndexr   rc   r   rd   r?   r   r   r@   r0   )rE   r   r/   r   using_infer_stringr   r^   rf   catcategorical_framer-   r.   s               r    test_roundtrip_categorical.TestPandasContainer.test_roundtrip_categorical   sg   
 ))!!KF8SUV "  "$v,/
/ ryy$$Q'77;;/ 	 
 gkUGaK'5'A+5"D#'S	yy73V%d"2E2EcPS2TU)111@A4\J$))+!..)Cu
 ##Ff=!
s   ;E0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 )Nra   r   ri   r7   r`   )
r
   r   rc   r   r   floatobjectrd   r+   r,   )rE   r/   r   empty_framerf   r-   idxr.   s           r    test_roundtrip_empty(TestPandasContainer.test_roundtrip_empty  s{    k++6+:;4\JWL5fFC s8H++ {H"'')H
f/r1   dtype_backendpyarrow)marksc                    UR                  5       nUb'  [        UR                  5      R                  US9Ul        [	        UR                  US95      n[        XaUS9nU(       dN  UR                  R                  [        R                  5      S-  nUS:w  a  UR                  [        5      nXl        O UR                  R                  S5      Ul        [        XuU5        g )Nr   ra   r   i@B ri   r   )rd   r   r?   convert_dtypesr   rc   r   viewrA   r   r   r   r   r0   )	rE   r/   r   r   rY   r.   rf   r-   r   s	            r    test_roundtrip_timestamp,TestPandasContainer.test_roundtrip_timestamp  s     "&&($#).*>*>#?#N#N+ $O $N  ..f.=>4\J..%%bhh/7:C jjo N%^^33D9HN#Ff=r1   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^   r_   e)              ?       @      @      @)r   r   r   r   r   )foo1foo2foo3foo4foo5)TFTFTArO   CDrf   r?   ra   r   number )r   r
   r   rc   r   rd   assignselect_dtypesr   rA   r   r0   )	rE   r/   r   r?   r$   rX   rf   r-   r.   s	            r    test_roundtrip_mixed(TestPandasContainer.test_roundtrip_mixed.  s    /0**91	
 F0

&
124\J779??WX%;%;H%E%L%LRXX%VW#Ff=r1   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 )Nrk   rJ   rz   rL   r*   ri   ra   )	r
   r   
MultiIndexfrom_arraysr   rc   r   r+   r,   )rE   r*   rX   rf   r-   s        r    test_roundtrip_multiindex-TestPandasContainer.test_roundtrip_multiindexB  sa     VaVMM--g6
 

'
2340
f)r1   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 columnsri   )zN{"badkey":["A","B"],"index":["2","3"],"data":[[1.0,"1"],[2.0,"2"],[null,"3"]]}zunexpected key\(s\): badkeyri   c                     [         R                  " [        US9   [        [	        U5      US9  S S S 5        g ! , (       d  f       g = f)Nr   ra   )r   r   rs   r   r   )rE   rf   r   r/   s       r    $test_frame_from_json_bad_data_raises8TestPandasContainer.test_frame_from_json_bad_data_raisesW  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 )
Nrk   rJ   rL   r      ra   r   r   rJ   12)456)r
   r   r   rc   rA   isnanr   )rE   r/   r   r8   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)****r1   c                     [        [        S5      US9n[        [        R                  /U(       d  [
        OS S9n[        R                  " X#5        g )Nz[null]r7   )r   r   r
   rA   nanr   r+   r,   )rE   r8   r-   r.   s       r    (test_frame_read_json_dtype_missing_value<TestPandasContainer.test_frame_read_json_dtype_missing_value  s9     8H-U;bffX5VdK
f/r1   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 )Nrk   rJ   r   r   r7   )r
   locr   rc   r   rA   r  r   )rE   r  r8   rX   rf   r-   s         r    test_frame_infinity'TestPandasContainer.test_frame_infinity  sZ    
 A	*+t

%4-xxD)****r1   z$not compliant on 32-bit, xref #15865r   zvalue,precision,expected_val))gffffff?rk   r   )g333333?rk   r   )g333333rk   g       )gףp=
?rJ   r   )gCl?rz   r   )g?r   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
   rc   )rE   value	precisionexpected_valrX   encodeds         r    "test_frame_to_json_float_precision6TestPandasContainer.test_frame_to_json_float_precision  s>     E*+,**i*8.|nDAAAAr1   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rk   rJ   rz   z+Invalid value 'garbage' for option 'orient'r   garbagera   rr   )rE   rX   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   r7   Fcheck_index_type)	r
   _is_mixed_typer   rc   r   dictdtypesr+   r,   )rE   rX   rf   r-   s       r    test_frame_empty$TestPandasContainer.test_frame_empty  sS    u~.$$$$

%4tBII7
f5Ar1   c                 L    [        S/ 0/ S9nUR                  SS9nSnX#:X  d   eg )Ntestr   r*   ra   z{"test":{}}r  rE   rX   r-   r.   s       r    test_frame_empty_to_json,TestPandasContainer.test_frame_empty_to_json  s3    |2.9- !!!r1   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   i8r7   Fr'  )
r
   r   r)  rc   r+   r,   r   r   r*  r+  )rE   rX   rf   s      r    test_frame_empty_mixedtype.TestPandasContainer.test_frame_empty_mixedtype  sl    u~.uI$$T*5	    zz|
htnDO<"	
r1   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)r6   rk   r   g?g{Gz?)   rJ   r   g?g{Gz?)rK   rz   r   g333333?gQ?)(   rL   quxg?g{Gz?abcd)1st2nd3rd4th5thr`   ri   r?   r*   ra   Fr   r#   rk   r$   )r
   rV   r)  rd   r   rc   r   r+   r,   r   r)   r?   shaper*   )rE   valsrX   rightr/   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*r1   c                 L   [        SSSS9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UR!                  5       nUS   R"                  R                  S5      US'   US   R"                  R                  S5      US'   UR$                  R                  S5      Ul        [&        R(                  " Xg5        [        R                  R                  US5      n[        U5      n	UR+                  S/SS9n
U
S   R"                  R                  S5      U
S'   U
R$                  R                  S5      U
l        [&        R(                  " XSS9  g )Nz
2000-01-03z
2000-01-07r:   r=   rQ   )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   rR   z19920106 18:21:32.12dater{   rz   modifiedrk   iojsonrf   ztsframe_v012.jsonztsframe_iso_v012.json)axisusFcheck_column_type)r   r   rA   asarrayr
   r   r   r   r*   get_locr   NaTospathjoinr   rd   dtr?   r+   r,   r&   )rE   datapathdtirX   dirpathv12_jsonr-   r.   v12_iso_json
result_isoexpected_isos              r    test_v12_compat#TestPandasContainer.test_v12_compat  s   |$?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<<)<=8$779#F+..66t<'
366>>tD!//5
f/ww||G-DE|,
ww
|!w4+F366>>tDV)//77=
j%Pr1   c           	         [        S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UR                  R                  S5      Ul        [        R                  " UUSSSSS9  g )N20000101r6   hr:   rP   rK  )
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_2r   r   ri   ra   r   T)r(  rS  	by_blockscheck_exact)r   r   rV   r
   r*   r   rA   str_r   rc   r   r?   r   r+   r,   )rE   r   r?   df_mixedrf   df_roundtrips         r    test_blocks_compat_GH9037-TestPandasContainer.test_blocks_compat_GH9037  s    :r$Gd5k5{IT WL
^ $++22-BGG5
 (((89 g6!//5
!"	
r1   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)rE   r  s     r    __init__OTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__init__  s    "
#mmE2r1   c                     U R                   $ r  )r  rE   s    r    __str__NTestPandasContainer.test_frame_nonprintable_bytes.<locals>.BinaryThing.__str__  s    zz!r1   )r  r  r  N)__name__
__module____qualname____firstlineno__r  r   r  __static_attributes__r   r1   r    BinaryThingr    s    3" "r1   r  574b4454ba8c5eb4f98a8f45r   z{"A":{"0":""}}z6Unsupported UTF-8 sequence length when encoding stringr   rk   r   rO   rO   r   default_handlerz"},"B":{"0":1}})r
   r  rc   r   r   OverflowErrorr   )
rE   r  r  binthingdf_printabledf_nonprintabler   r  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 )Nr   i rk   r   i9  {"z":{"0":1},"foo":{"0":1337}}r  rE   r-   r.   s      r    test_label_overflow'TestPandasContainer.test_label_overflow  sF    EFNQC?@HHJ((HI!!!r1   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]   rk   r   z.Series index must be unique for orient='index'r   r?   ra   ri   series)r/   typr#   )r   r   r   rs   rc   r+   assert_series_equalr   r   assert_equalr$   )rE   r|   r   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 )Nr?   ra   r   )rE   string_seriess     r    test_series_default_orient.TestPandasContainer.test_series_default_orient  s'    $$&-*?*?w*?*OOOOr1   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 )
Nra   r  r  r/   rA  r   r$   r#   Tr%   ri   )	r   rc   r   r?   r   r'   r@   r+   r  )rE   r/   r  r   rf   r-   r.   s          r    test_series_roundtrip_simple0TestPandasContainer.test_series_roundtrip_simple  s    --V-<=4Xf= &,I"I%^^2259HN**+++6HW HM
v0r1   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        [        5       (       a  UR                  S5      n[        R                  " XV5        g )	Nra   r  )r  r/   r8   r  Tr%   ri   r   )	r   rc   r   r'   r@   r   r   r+   r  )rE   r/   r8   object_seriesrf   r-   r.   s          r    test_series_roundtrip_object0TestPandasContainer.test_series_roundtrip_object  s}    --V-<=4XfJ **+++6HW HMu-H
v0r1   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r?   r8   ra   r  r  Tr%   ri   )r   rA   rC   r   rc   r   r'   r?   r   r+   r  )rE   r/   empty_seriesrf   r-   r.   s         r    test_series_roundtrip_empty/TestPandasContainer.test_series_roundtrip_empty  s}    b"**=,,F,;<4Xf=+++6g%^^222::>HN
v0r1   c                 p   UR                  5       nUb'  [        UR                  5      R                  US9Ul        [	        UR                  US95      n[        USUS9nUS;   a  UR                  SS9nO UR                  R                  S5      Ul        US	:w  a  S Ul	        [        R                  " Xd5        g )
Nr   ra   r  r  r  Tr%   r   ri   )rd   r   r?   r   r   rc   r   r'   r   r@   r+   r  )rE   r   r/   rG   r.   rf   r-   s          r     test_series_roundtrip_timeseries4TestPandasContainer.test_series_roundtrip_timeseries  s     #'')$$*?+@+@$A$P$P+ %Q %O! //v/>?4Xf=**+++6H%^^33D9HNW HM
v0r1   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^   r_   r   fr   ra   r  r  r  Tr%   )	r   r(   r   rc   r   rd   r'   r+   r  )rE   r/   r8   r|   rf   r-   r.   s          r    test_series_roundtrip_numeric1TestPandasContainer.test_series_roundtrip_numeric   sk    58#AB			014Xf=668**+++6H
v0r1   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   rs   rc   )rE   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   rc   r+   r  rE   r|   r-   s      r    #test_series_from_json_precise_float7TestPandasContainer.test_series_from_json_precise_float  s6    %&8AIIK0hdS
v5Ar1   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  r8   rL   rz   )r   r   r   rc   rA   r   r+   r  )rE   r|   r-   r.   s       r    test_series_with_dtype*TestPandasContainer.test_series_with_dtype  sG    %&8AIIK0hbhhO1#'?
v0r1   zdtype,expectedrN   datetime64[ms]r7   l    ,Uqc                    [        S/SS9nUb  UR                  US9nSn[        R                  " [        US9   [        UR                  5       5      nS S S 5        [        WSUS9n[        R                  " Xr5        g ! , (       d  f       N0= f)	NrN   datetime64[ns]r7   r   r   r   r  r  )	r   r   r+   r   r   r   rc   r   r  )rE   r8   r.   r   r|   r   rf   r-   s           r    test_series_with_dtype_datetime3TestPandasContainer.test_series_with_dtype_datetime  s     L>)9:$  } =AI 	 ''cBAIIK(D C4XU;
v0 CBs   A==
B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   rc   r+   r,   rE   rX   r-   s      r    "test_frame_from_json_precise_float6TestPandasContainer.test_frame_from_json_precise_float5  s8    *,>?@8BJJL1F
f)r1   c                     [        [        S5      / SQSS9n[        [        UR	                  5       5      SS9n[
        R                  " X!5        g )Nr   r  r   r  r  r  )r   r(   r   r   rc   r+   r  r  s      r    test_typTestPandasContainer.test_typ:  s:    58#AQ8AIIK0h?
v)r1   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   rO   r   r   r  r  s      r    test_reconstruction_index-TestPandasContainer.test_reconstruction_index?  sh    	9-.8BJJL12
f)YY7O8BJJL12
f)r1   c                 R    XU4 H  nUR                  U5        [        U5        M!     g r  )rc   r   )rE   r   r   rY   	temp_filerX   s         r    	test_pathTestPandasContainer.test_pathH  s%    >:BJJy!i  ;r1   c                    [        UR                  5       5      n[        U5      nUR                  5       nUR                  R                  S5      Ul        [        R                  " XE5        [        UR                  5       5      n[        USS9nUR                  5       nUR                  R                  S5      Ul        [        R                  " XESS9  UR                  b   eg )Nr   r  r  F)check_names)
r   rc   r   rd   r?   r   r+   r,   r  r@   )rE   rG   rY   rO  r-   r.   s         r    test_axis_dates#TestPandasContainer.test_axis_datesM  s    ..014!&&(!//5
f/ //124X."'')!//5
vUC{{"""r1   c                    Un[        S5      R                  S5      US'   Sn[        R                  " [        US9   [        UR                  5       5      nS S S 5        [        W5      nUR                  5       nUS   R                  R                  S5      US'   UR                  R                  S5      Ul
        [        R                  " Xg5        SUS'   [        R                  " [        US9   [        UR                  SS	95      nS S S 5        [        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                  " Xg5        [        [        S5      R                  S5      UR                  S9n[        R                  " [        US9   [        UR                  5       5      nS S S 5        [        USS9nUR                  R                  S5      nUR                  R                  S5      Ul
        [        R                   " Xg5        g ! , (       d  f       GN= f! , (       d  f       GNL= f! , (       d  f       N= f)Nr{   r:   rL  r   r   r   r   r   	date_unitFr   r4  r   r   r  r  )r   r   r+   r   r   r   rc   r   rd   rZ  r?   r,   r$   r   r   r   r  )	rE   rG   rY   rX   r   rO  r-   r.   r>   s	            r    test_convert_dates&TestPandasContainer.test_convert_dates]  s   z*22486
I 	 ''cBBJJL)D C4779#F+..66t<!//5
f/5	''cBBJJJ67D C 4u5779#F+2277="5/009
f/ Ij)11$7?T?TU''cBBJJL)D C4X.55==&!//5
v03 CB CB CBs#   H9-I;I9
I
I
I+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(       dP  UR	                  S5      n[        UR                  [        5      (       a   UR                  R                  S5      Ul        S nUS:X  a	  S	n[        nOS
nSn[        R                  " XhS9   UR                  US9n	S S S 5        U(       a  UR                  SS5      nW	U:X  d   eg ! , (       d  f       N0= f)Ni  rk   )yearmonthdayr\   r   zM8[ns]r:   r   z+{"1577836800000":1577836800000,"null":null}zA{"2020-01-01T00:00:00.000":"2020-01-01T00:00:00.000","null":null}p'epoch' date format is deprecated and will be removed in a future version, please use 'iso' date format instead.r   r  }	,"a":"a"})r   rV  appendr   r   
isinstancer?   r   r   r   r+   r   rc   replace)
rE   r  r  r  rf   rF   r   r.   r   r-   s
             r    test_date_index_and_values.TestPandasContainer.test_date_index_and_values  s     d!3RVV<KKT&**X&C#))]33II--d3	'!DH- T 
= 	 ''(8D[[[[9F E ''[9H!!! EDs   :C44
D
infer_word)
trade_timerL  datetimesold_atrM  	timestamp
timestampsc                    SSUS0SS0/n[        S[        S5      /S[        R                  //SU/S9nX1   R	                  S5      X1'   [        [        [        U5      5      5      SU/   n[        R                  " XC5        g )Nidrk   l    $ArJ   z
2002-11-08r   r   )
r
   r   r   rV  r   r   r   r   r+   r,   )rE   r  rf   r.   r-   s        r    test_convert_dates_infer,TestPandasContainer.test_convert_dates_infer  s     q*m4tQi@<()Arvv;7$
AS
  (3::8D8K$567z8JK
f/r1   zdate,date_unit))20130101 20:43:42.123N)20130101 20:43:42r|   )r  r   )z20130101 20:43:42.123456rQ  )z20130101 20:43:42.123456789r:   c                 r   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US:w  aA  US   R                  R                  S5      US'   UR                  R                  S5      Ul        [        R                  " Xg5        g )	Nr:   rL  rk   r   r  r  r  r	  rQ  )r   r   r   rV  r   r*   rU  rc   r   r   rd   rZ  r?   r+   r,   )rE   rL  r  rY   rX   rO  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'/22::4@HV%^^33D9HN
f/r1   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  r   r  )r   r   rs   rc   )rE   rY   rX   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      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US	:w  a   UR                  R                  S
5      Ul        [        R                  " Xg5        g )Nr   rk   r   r  r  r	  r  r  r:   rQ  )r   r   r?   r   rV  r   rc   r   r   rd   r   r+   r  )rE   rL  r  rG   r>   rO  r-   r.   s           r    test_date_format_series+TestPandasContainer.test_date_format_series  s     IdO?+@+@AVV
VV
::%9:ED::%:0D8D>x8779%^^33D9HN
v0r1   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  r   r"  r   r  r   r  )r   r   r?   r   r   rs   rc   )rE   rG   r>   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!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'   S	n[        R                  " [        US
9   UR                  SUS9nS S S 5        UR                  5       nUS   R                  R                  U5      US'   UR                  R                  U5      Ul        [        [        W5      S S9n[        R                   " X5        g ! , (       d  f       N= f)Nr  r:   rL  z19710101 20:43:42rk   z21460101 20:43:42rJ   rL   r  r   r   r  r  )r   r   r*   rU  r   r   rV  r+   r   r   rc   rd   rZ  r?   r   r   r,   )	rE   r=   rY   rX   dlr   rO  r.   r-   s	            r    test_date_unit"TestPandasContainer.test_date_unit  s   23;;DA6
ZZ'"#672"#6722= 	 ''cB::'T:BD C
 779#F+..66t<!//5 8D>T:
f/ CBs   )D==
Ezdf, warnr\   r]   r^   r  r   )TFFr   rJ  )r9   z
2020-02-01z
2020-03-01c                     Sn[         R                  " X#S9   UR                  5         S S S 5        g ! , (       d  f       g = f)Nr   r   )r+   r   rc   )rE   rX   warnr   s       r    )test_default_epoch_date_format_deprecated=TestPandasContainer.test_default_epoch_date_format_deprecated  s2    ,I 	 ''8JJL 988s   1
?r=   )r|   r   rQ  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UR                  5       nUR                  R                  S5      Ul        US	   R                  R                  S5      US	'   US
   R                  S5      US
'   Ub  UR                  US9nUR                  SUS9n[        [        U5      S	S
/S9n[        R                   " Xu5        g )Nz2023-01-01T11:22:33.123456zdatetime64[]r7   z2022-01-01T11:22:33.123456r8   r?   )rL  date_objrQ  rL  r7  datetime64[us]r   r  r  r  )r   rA   
datetime64r
   r   r   rd   r?   r   rZ  r   r   rc   r   r   r+   r,   )rE   r   r=   r?   rX   r.   rO  r-   s           r    test_iso_non_nano_datetimes/TestPandasContainer.test_iso_non_nano_datetimes3  s4    ]]7>?vQ'
 ]]#?FG'vQ/
 #]]#?FG 
 779!//5#F+..66t<'
3::;KL$"""?Bzzetz<8D>&*9MN
f/r1   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   )rE   r|   s     r    test_weird_nested_json*TestPandasContainer.test_weird_nested_jsonZ  s    " 	(1+r1   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S9Ul	        Sn[        R                  " [        US9   [        UR                  5       5      nS S S 5        [        W[        R                   [        R"                  S.S9n[        R$                  " XD5        g ! , (       d  f       NN= f)NrJ   )r   rJ   ABr   r{   rL  r   intsTboolsr:   r;   r   r   )rA  rB  r7   )r
   rA   rS   rT   rU   rV   r   r(   r   r?   r+   r   r   r   rc   r   r   bool_r,   )rE   dfj2r   rO  r-   s        r    test_doc_example$TestPandasContainer.test_doc_exampleo  s    II!!!$44V<d4j
 !,VQxVW
ADA
I 	 ''cBDLLN+D C4288'LM
f- CBs   C..
C<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UR                  [        R                  5      n[        R                  " Xc5        g )NrN  rO  rf   z	teams.csvr`   )r   read_csvrc   r   r   reindexr?   r*   fillnarA   r
  r+   r,   )rE   r[  rX  rX   r|   r-   ress          r    test_round_trip_exception-TestPandasContainer.test_round_trip_exception  ss    ffk:[[JJL8A;'nn288RZZn@jj 
c&r1   c                     SnUR                  US9  [        UR                  SS9nS[        R                  " SSS9/S	S
/S[        R                  " SSS9/4 H  u  pEX4   R
                  U:X  a  M   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  
created_atrQ  UTCtz	closed_atr8  
updated_at)serve_contentr   urlr   DatetimeTZDtyper8   )rE   
httpserverrf   r-   fieldr8   s         r    test_urlTestPandasContainer.test_url  s     J   .:>>>2--du=>*+2--du=>
LE
 =&&%///
r1   c                    S n[        [        S5      [        SS9/SU S3S9nUR                  SU S3:X  d   eS	n[        R                  " [
        US
9   [        [        UR                  5       5      SS9R                  U5      nS S S 5        [        R                  " WUR                  S5      5        [        [        S5      [        SS9/[        SS/5      SS9nUR                  S:X  d   e[        R                  " [
        US
9   [        [        UR                  5       5      SS9R                  U5      nS S S 5        [        R                  " XSR                  S5      5        [        [        S5      [        SS9/SS9nUS   R                  S:X  d   e[        R                  " [
        US
9   UR                  5       nS S S 5        [        [        W5      5      R                  U5      n[        R                  " UR                  S5      U5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N{= f)Nc                 ,    [         R                  " U SS9$ )Nr   rJ  )r   to_timedelta)rl   s    r    <lambda>4TestPandasContainer.test_timedelta.<locals>.<lambda>  s    booad;r1      r   secondszm8[r5  r7   ztimedelta64[r   r   r  r  zm8[ms]r   rk   m8[ns]r  ztimedelta64[ns])r   r   r8   r+   r   r   r   r   rc   applyr  r   r   r
   r,   )rE   r=   	converterrF   r   r-   framerO  s           r    test_timedelta"TestPandasContainer.test_timedelta  s   ;	imYq%9:CvQ-Pyyl4&2222I 	 ''cBx6HEKKIVF C
vszz(';<r]Ia011vh
 yy----''cBx6HEKKIVF C
vzz(';<9R=)A*>?xPQx~~!2222''cB==?D C8D>*00;
ell84f=% CB CB CBs$   1H1H$/H5
H!$
H25
Ic           
         [        [        SS9[        SS9/SS/[        SSSS	9S
.5      nUS   R                  S5      US'   Sn[        R
                  " [        US9   [        UR                  SS95      nS S S 5        [        W5      n[        R                  " UR                  SS9US'   [        R                  " UR                  5      US'   [        R                  " X5        g ! , (       d  f       Nu= f)Nrb  daysr   rc  rk   rJ   r{   r:   )startr<   r=   r/  r\   re  r   r   r  rJ  r^   )r
   r   r   r   r+   r   r   r   rc   r   r   r_  r\   to_datetimer^   r,   )rE   rh  r   rf   r-   s        r    test_timedelta2#TestPandasContainer.test_timedelta2  s    R()A*>?Vj!$G
 3Z&&x0c
I 	 ''cBEMMDM9:D C4oofhhT:snnVXX.s
e, CBs   C%%
C3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 )
Nrb  r{   r\   r7   r:   r  r   Fr'  )r   r   r
   r   r   	Timedeltar   _valuer   rc   r   r+   r,   )rE   tdr>   rh  r.   rf   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Gr1   timedelta_typc                    U" SS9U" SS9[         R                  /nU(       a  UR                  S5        [        XDS9nU(       d1  UR	                  S5      nUR
                  R	                  S5      Ul        S nUS:X  a  SnO[        nS	nU(       a  UR                  S
S5      nSn[        R                  " XhS9   UR                  US9n	S S S 5        W	U:X  d   eg ! , (       d  f       N= f)Nrk   rl  rJ   r\   r   re  r  zA{"P1DT0H0M0S":"P1DT0H0M0S","P2DT0H0M0S":"P2DT0H0M0S","null":null}z7{"86400000":86400000,"172800000":172800000,"null":null}r
  r  r  r   r	  )r   rV  r  r   r   r?   r   r  r+   r   rc   )
rE   r  r  rx  rf   rF   r   r.   r   r-   s
             r    test_timedelta_to_json*TestPandasContainer.test_timedelta_to_json  s    
 1%}!'<bffEKKT&**X&C		((2CI%S   .PH''[9H= 	 ''(8D[[[[9F E!!! EDs   7C
C&c                 ^   U" SS9/n[        X3S9R                  S5      nUR                  R                  S5      Ul        [        nU(       a  UR                  [        5      nS nSn[
        R                  " XVS9   UR                  5       nS S S 5        SnWU:X  d   eg ! , (       d  f       N= f)N*   )millisecondsr   re  r   r   z	{"42":42})r   r   r?   r   r   r+   r   rc   )	rE   r  rx  rf   rF   r1  r   r-   r.   s	            r    +test_timedelta_to_json_fractional_precision?TestPandasContainer.test_timedelta_to_json_fractional_precision  s     2./T&--h7II$$X.	**V$CDI 	 ''8[[]F 9!!! 98s   :B
B,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'  )r   r
   r   r   r   rc   r+   r,   )rE   r  rh  r.   r-   s        r    test_default_handler(TestPandasContainer.test_default_handler  s]    3E
+,cAs5z?348EMM#M$FGH
hGr1   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)r  complexrealimagr   )objs    r    defaultBTestPandasContainer.test_default_handler_indirect.<locals>.default  s7    #w''-chh/?$AQRRs8Or1   	   rk   STRrL   r
  zN/Ar  r\   r]   r   zR[9,[[1,null],["STR",null],[[["mathjs","Complex"],["re",4.0],["im",-5.0]],"N\/A"]]]r$   r  r/   )r
   r  r   r   )rE   r  df_listr.   s       r    test_default_handler_indirect1TestPandasContainer.test_default_handler_indirect  se    	 %B0edE7RSc

1 	
 JhV	
Vr1   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 )Nrk   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)"]]r$   r  )r
   r  r   rc   r   )rE   rX   r.   s      r    ,test_default_handler_numpy_unsupported_dtype@TestPandasContainer.test_default_handler_numpy_unsupported_dtype(  sb    c71b>*%,gcSTo1VW#J

 T 	 zz#hz?8KKKr1   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_raises6  s    C. r1   r   r\   rk   rJ   r  rL   r  )r   r   r  r
   r   rc   r  )rE   r  r   s     @r    test_default_handler_raises/TestPandasContainer.test_default_handler_raises3  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\   rO   category)r
   rc   r   )rE   rX   r.   r|   scs        r    test_categorical$TestPandasContainer.test_categoricalB  s~    @ABS'3::<S'..,3::<'''sGWyy{bjjl***r1   c           	      D   [        SSSSS9nUR                  S5      R                  S 5      n[        U[        SSSS9S.5      nUR	                  5       nX$S	'   S
n[
        R                  " [        US9   UR                  5       nXcR                  5       :X  d   e S S S 5        [        U5      n[        U5      n[
        R                  " [        US9   UR                  5       UR                  5       :X  d   e S S S 5        g ! , (       d  f       Nl= f! , (       d  f       g = f)Nr{   rz   
US/Easternr:   r<   rS  r=   utcr;   r  r   r   r   )
r   
tz_converttz_localizer
   rd   r+   r   r   rc   r   )	rE   tz_rangetz_naiverX   df_naiver   r.   stzs_naives	            r    test_datetime_tz$TestPandasContainer.test_datetime_tzO  s    j!4P&&u-99$?J!MN
 779 I 	 ''cB'')Hzz|+++ C X"''cB;;=GOO$5555 CB CB CBs   3&D %D 
D
D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 )NrJ   )r6   rL      Sparser6   )
r
   rA   rS   rT   rU   r
  r  r   rc   r   )rE   rX   sdfr.   r|   sss         r    test_sparseTestPandasContainer.test_sparseg  s    ryy,,Q/??HIVVr
ii!::<;;=(((299((+;;B?@FFbq	XXh99;::<'''r1   r>   z2013-01-10 05:00:00Zz2013-01-10 00:00:00r  rR  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rE   r>   exprZ  s       r    test_tz_is_utc"TestPandasContainer.test_tz_is_utcw  sA     +2.#5552.#555r1   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5r1   r  z2013-01-01 05:00:00ZrJ   r:   r;   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   r   r
   )rE   r  r  dfexpr\  rX   r-   s          r    test_tz_range_is_utc(TestPandasContainer.test_tz_range_is_utc  s     HX8t4;;;H% 3$/36663::f->#EEEc{#R40299dF^4EEEr1   c                    [        S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:00rJ   r:   r;   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   r   r
   )rE   r\  r  r  rX   r-   s         r    test_tz_range_is_naive*TestPandasContainer.test_tz_range_is_naive  s    .EEV 3$/36663::f->#EEEc{#R40299dF^4EEEr1   c                 z    [        [        S5      SS9n[        SS/SS//SS/S9n[        R                  " X5        g )	Nr   Tr   rk   rJ   r\   r]   r   r   r   r
   r+   r,   r  s      r    test_read_inline_jsonl*TestPandasContainer.test_read_inline_jsonl  sB     8$IJRVWq!fq!f-SzB
f/r1   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_optionsrk   rJ   r\   r]   r   )r   r@   r
   r+   r,   )rE   s3_bucket_public_with_datas3sor-   r.   s        r    test_read_s3_jsonl&TestPandasContainer.test_read_s3_jsonl  sU    
 /445\B 

 q!fq!f-SzB
f/r1   c                     [        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        g ! , (       d  f       NA= f)Nwzutf-8encodingr   Tr   rk   rJ   r\   r]   r   )openwriter   r
   r+   r,   )rE   r  infiler-   r.   s        r    test_read_local_jsonl)TestPandasContainer.test_read_local_jsonl  sb    )S73vLL>? 49D1q!fq!f-SzB
f/	 43s   A
A'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”r   r   r\   r]   r   )r   r   r
   r+   r,   rE   rO  r-   r.   s       r    test_read_jsonl_unicode_chars1TestPandasContainer.test_read_jsonl_unicode_chars  s    
 I~4t,{E2UENCcSVZX
f/ QR4t,{E2UENCcSVZX
f/r1   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	articleIdr6  {"articleId":r
  r   r8   r?   r*   {"0":{"articleId":r  )r   r   rc   r   r
   )rE   r  r  rO  r.   rX   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<r1   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   rs   r   )rE   r  rO  r   s       r    test_read_json_large_numbers0TestPandasContainer.test_read_json_large_numbers  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  r   z.{"0": {"articleId": "1404366058080022500245"}}r   r`   )r   r   r   r+   r  r
   r,   r  s       r    test_read_json_large_numbers21TestPandasContainer.test_read_json_large_numbers2  so    8~4X.+k];
v0?~4[sK
f/r1   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 )Nrk   rJ   r\   r]   r   r#   Tr/   r   z{"a":1,"b":2}
{"a":1,"b":2}
zfoo}r   zfoo"z/{"a":"foo}","b":"bar"}
{"a":"foo\"","b":"bar"}
r   zfoo\za\r   )r
   rc   r+   r,   r   r   r0  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Jr1   z%GH#13774 encoding kwarg not supportedval)   E, 17r1      a   b   c)r  r  r  r  )s   EE, 17r1   r  r  r  )r     r  r  r  )r1   r  r  r  )r  r  r  r  )   Ar1   r  r  r  r1   r  r  r  r  c           	         [        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UR	                  X6S9  [        [        U5      US9n[        R                  " XWSS9  g s  snf )Nzlatin-1r7   r  F)check_categorical)	r   r  r  decoderc   r   r   r+   r  )rE   r8   r  r  rl   rF   r  retrs           r    test_latin_encoding'TestPandasContainer.test_latin_encoding  sy    $ ILMAJq%$8$8QXXi a?M
 I1),x@
sEB Ns   2A<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\   rk   T)r?   deep)r
   r   memory_usagesumrc   )rE   rX   size_before
size_afters       r    "test_data_frame_size_after_to_json6TestPandasContainer.test_data_frame_size_after_to_json9  sa    c!fX'ooDto<@@B


__4d_;??A
(((r1   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 )Nrk   rJ   rz   rL   r`   tablera   r
   rc   r   r   r+   r,   )rE   r?   r*   r.   dfjsonr-   s         r    .test_from_json_to_json_table_index_and_columnsBTestPandasContainer.test_from_json_to_json_table_index_and_columnsC  sO     q!fq!f-UL!!!18F+G<
f/r1   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 )
Nrk   rJ   r   r   r  r  r/  r  ra   r  )rE   r.   r  r-   s       r    #test_from_json_to_json_table_dtypes7TestPandasContainer.test_from_json_to_json_table_dtypesO  sQ    Aq6c
#sLM!!!18F+G<
f/r1   )ri   r#   r?   r*   c                    [         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Sn[        R                  " [
        US9   UR                  US9nS S S 5        U(       a  [        R                  UR                  S'   [        [        W5      USSSS	SSS.S9n[        R                  " Xc5        g ! , (       d  f       Nd= f)Nr  r   r7   )Nr   r   rC   )N r^   r   TFTboolr\   r]   Nr  )r9   Nz
2020-01-03r  )IntegerFloatObjectBoolCategoryDatetimer   r   ra   )r   r  r  r/   r8   )r
   	from_dictr   r+   r   r   rc   rA   r
  r  r   r   r,   )rE   r/   r   r.   r   r  r-   s          r    %test_to_json_from_json_columns_dtypes9TestPandasContainer.test_to_json_from_json_columns_dtypesV  s     &&!)7; 0	B A2&A"#3:F"6>N	
I 	 ''cB%%V%4F C  )+HLL%V"""&,
 	f/) CBs   5C##
C1c                     [        SS/SS/S.S9n[        R                  " [        SS9   UR	                  SS	9  S S S 5        g ! , (       d  f       g = f)
Nrk   rJ   rz   )r?   r\   rf   z/Overlapping names between the index and columnsr   r  ra   rr   rW   s     r    (test_to_json_with_index_as_a_column_name<TestPandasContainer.test_to_json_with_index_as_a_column_name  sK    q!fAq6:;]]O
 JJgJ&
 
 
s   A
A)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)Nrk   rJ   r   r   r  r  r/  r  ra   z)cannot pass both dtype and orient='table'r   r#  r
   rc   r   r   rs   r   )rE   r8   rX   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#)r?   r*   r#   r$   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_equalr?   r*   )rE   r/   r.   r-   s       r    %test_read_json_table_empty_axes_dtype9TestPandasContainer.test_read_json_table_empty_axes_dtype  sO     ;8D>&tL
fllHNN;
fnnh.>.>?r1   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)Nrk   rJ   rz   rL   r   r   r  r  r`   r  ra   z0cannot pass both convert_axes and orient='table'r   Tr   r,  )rE   rX   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   r   r   )r*   rf   r   rR   r  r   )r@   rf   )r@   r?   c                 ^    UR                  SSS9n[        R                  " U5      nX2:X  d   eg )Nri   Fr/   r?   )rc   rO  loadsrE   rf   r.   r-   s       r    test_index_false_to_json_split2TestPandasContainer.test_index_false_to_json_split  s1    @ WE:F#!!!r1   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  Fr8  r   r#   ra   )schemarf   )rc   rO  r9  r   rN  build_table_schemar
   to_dictrE   rf   r-   r.   s       r    test_index_false_to_json_table2TestPandasContainer.test_index_false_to_json_table  sk    & WE:F# eejj33D3FdO++9+=

 !!!r1   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)Nrk   rJ   rL   r   r\   r]   r   zU'index=False' is only valid when 'orient' is 'split', 'table', 'records', or 'values'r   Fr8  rr   rt   s       r    test_index_false_error_to_json2TestPandasContainer.test_index_false_error_to_json  sW    
 AA'#s<. 	 ]]:S1JJfEJ2 211   A
Ar#   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)Nrk   rJ   rL   r   r\   r]   r   zS'index=True' is only valid when 'orient' is 'split', 'table', 'index', or 'columns'r   Tr8  rr   rt   s       r    test_index_true_error_to_json1TestPandasContainer.test_index_true_error_to_json  sW    
 AA'#s<- 	 ]]:S1JJfDJ1 211rG  r  c                     [        SS/SS/S.5      nUR                  XS9n[        [        U5      US9n[        R
                  " XS5        g )Nrk   rJ   rz   rL   r  r8  ra   r  )rE   r/   r?   r.   r  r-   s         r    "test_index_false_from_json_to_json6TestPandasContainer.test_index_false_from_json_to_json  sM    
 Aq6A78!!!=8F+F;
f/r1   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  r?   r  z2019-01-01 11:00:00zM8[us, UTC]r7   X   r   )r   r   r   r   r+   r  )rE   r-   exp_dtir.   s       r    test_read_timezone_information2TestPandasContainer.test_read_timezone_information  sG    67Xg
  !6 7}M2$g.
v0r1   rW  )zs3://example-fsspec/zgcs://another-fsspec/file.jsonz,filecache::s3://yet-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  rW  r  )rE   rW  r-   r.   s       r    test_read_json_with_url_value1TestPandasContainer.test_read_json_with_url_value  s:     8ocU%$@ABecU^,
f/r1   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  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jsonzFile z does not existr   r   )rE   rV  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  z1970-01-02T00:00:00.000c                 2   [        S//[        S5      [        R                  " S5      -   R	                  U5      /S9nSU S3nS nUS:X  a  [
        nSn[        R                  " XgS	9   UR                  US
9nS S S 5        WU:X  d   eg ! , (       d  f       N= f)Nrk   r   1Dr   r  
":{"0":1}}r   r  r   r	  )	r
   r   r   rs  r   r   r+   r   rc   	rE   r  keyr=   rX   r.   r   r   r-   s	            r    test_datetime_as_label*TestPandasContainer.test_datetime_as_label/  s     SEYq\BLL,>>GGMN
 ]+'!-= 	 ''(8DZZKZ8F E !!! EDs   'B
B)r  
P1DT0H0M0Sc                    [        S//[        R                  " S5      R                  U5      /S9nSU S3nS nUS:X  a  [        nSn[
        R                  " XgS9   UR                  US	9nS S S 5        WU:X  d   eg ! , (       d  f       N= f)
Nrk   r^  r   r  r_  r   r  r   r	  )r
   r   rs  r   r   r+   r   rc   r`  s	            r    test_timedelta_as_label+TestPandasContainer.test_timedelta_as_labelE  s     ur||D'9'A'A$'G&HI]+'!-= 	 ''(8DZZKZ8F E !!! EDs   A<<
B
zorient,expected)r?   z{"('a', 'b')":{"('c', 'd')":1}})r*   z{"('c', 'd')":{"('a', 'b')":1}}r  z,Produces JSON but not in a consistent mannerc                 N    [        S//S/S/S9nUR                  US9nXB:X  d   eg )Nrk   r  )r^   r_   r`   ra   r  rE   r/   r.   rX   r-   s        r    test_tuple_labels%TestPandasContainer.test_tuple_labelsY  s6    0 uZL:,G6*!!!r1   indent)rk   rJ   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 )Nr   r   r   r:  r\   r]   r   rl   z{
z"a":{
z"0":"foo",
z
"1":"baz"
z},
z"b":{
z"0":"bar",
z
"1":"qux"
z}
}r  )rE   rl  rX   r-   spacesr.   s         r    test_to_json_indent'TestPandasContainer.test_to_json_indentu  s     7#sL6*v 	   	 	   		 !!!r1   z]Adjust expected when infer_string is default, no bug here, just a complicated parametrization))ri   z{
    "columns":[
        "a",
        "b"
    ],
    "index":[
        0,
        1
    ],
    "data":[
        [
            "foo",
            "bar"
        ],
        [
            "baz",
            "qux"
        ]
    ]
})r#   zf[
    {
        "a":"foo",
        "b":"bar"
    },
    {
        "a":"baz",
        "b":"qux"
    }
])r?   zn{
    "0":{
        "a":"foo",
        "b":"bar"
    },
    "1":{
        "a":"baz",
        "b":"qux"
    }
})r*   zn{
    "a":{
        "0":"foo",
        "1":"baz"
    },
    "b":{
        "0":"bar",
        "1":"qux"
    }
})r$   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 )
Nr   r   r   r:  r\   r]   r   rL   )r/   rl  r  ri  s        r    test_json_indent_all_orients0TestPandasContainer.test_json_indent_all_orients  s@    x 7#sL6!4!!!r1   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   rn  )r   r   rs   r
   rc   r  s    r     test_json_negative_indent_raises4TestPandasContainer.test_json_negative_indent_raises	  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
   rA   r  r+   r,   rA  s       r    test_emca_262_nan_inf_support1TestPandasContainer.test_emca_262_nan_inf_support  sP    M
 4$rvvzBFF7KH
 	f/r1   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)rO  dumpsr
   r   r   r+   r,   )rE   encoded_jsonr.   r-   s       r    test_frame_int_overflow+TestPandasContainer.test_frame_int_overflow  sQ    zzE+A#BUFO"TUe&<f%EFG8L12
f/r1   c                 x    [        / SQ/ SQS.5      nSnUR                  5       nUR                  SS9nXB:X  d   eg )Nr  r/  rl   rm   zU{"(0, 'x')":1,"(0, 'y')":"a","(1, 'x')":2,"(1, 'y')":"b","(2, 'x')":3,"(2, 'y')":"c"}r?   ra   )r
   stackrc   )rE   	dataframer.   r  r-   s        r    test_json_multiindex(TestPandasContainer.test_json_multiindex  sF    IODE	@ 	 "w/!!!r1   c                     UR                   n[        R                  " 5        S3n[        / SQ/ SQS.5      nSU SU 3nUR	                  XbS9  [        XbS9n[        R                  " Xu5        g )NrY  r  )rJ   rL   r   r  zs3:///)r  )r@   uuiduuid4r
   rc   r   r+   r,   )rE   s3_bucket_publicr  mock_bucket_nametarget_filerX   urir-   s           r    
test_to_s3TestPandasContainer.test_to_s3)  sk     ,00e,YY78&'q6


3
-35
f)r1   c                     S nSnU[         R                  L a  [        n[        R                  " X#S9   [        U//5      R                  5       nS S S 5        WS:X  d   eg ! , (       d  f       N= f)Nr   r   z{"0":{"0":null}})r   rV  r   r+   r   r
   rc   )rE   nulls_fixturer   r   r-   s        r    test_json_pandas_nulls*TestPandasContainer.test_json_pandas_nulls5  sm    I 	 BFF"-''(8D0199;F E++++ EDs   A
A-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_seriesC  s-    8$9:I-.
v0r1   c           	      ~    [        S[        SSSS9SS/S9R                  5       nUR                  5       nS	nX#:X  d   eg )
NTz
2017-01-20z
2017-01-23r:   rJ  r   r   r`   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   r  rc   r0  s       r    test_to_json_multiindex_escape2TestPandasContainer.test_to_json_multiindex_escapeI  sT    \<dCEN
 %'	 	
 B 	 !!!r1   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]   _cr_   )rE   r\   r]   r  r_   s        r    r  PTestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.__init___  s    r1   c                     g)Nr   r   r  s    r    r   ITestPandasContainer.test_to_json_series_of_objects.<locals>._TestObject.ee  s    r1   )r  r\   r]   r_   r  )r  r  r  r  r  r   r  r   r1   r    _TestObjectr  ^  s    r1   r  rk   rJ   rz   rL   r  0)r\   r]   r_   )r   rO  r9  rc   )rE   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Nr1   zdata,expectedy             @y              ?y      "@      )r   rk   rJ   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_tojsonl  s    F !!!r1   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(  ri   ra   r  )rE   r.   rX   r-   s       r    test_json_uint64$TestPandasContainer.test_json_uint64  sA    F 	 V&:<P%QRS7+!!!r1   c                    [        [        S[        S/SS9[        / SQSS9[        S[        S/SS9[        / S	QSS9/ S
Q/ SQ/ SQ/ SQS.5      nUR                  US9n[        R
                  " SU5         [        [        U5      X#S9nS S S 5        US:X  a;  [        R                  " S5      n[        R                  " UR                  5       5      n	O[        R                  " U5      n	[        [        S[        S/SS9[        / SQSS9[        S[        S/SS9[        / S	QSS9[        SS[        /SS9[        / SQSS9[        / SQU	S9[        / SQU	S9S.5      n
US:X  aX  [        R                  " S5      n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
SS9  g ! , (       d  f       GNm= fs  snf )Nrk   rz   Int64r7   r  rx   ry   Float64)rx   r   ry   )TFNr  r/  r  )r\   r]   r^   r_   r   r  grf  ra   mode.string_storage)r   r/   r   TFbooleanr   ArrowExtensionArrayfrom_pandasr$   r  rR  )r
   r   r	   rc   r   option_contextr   r   r   importorskip
ArrowDtypestringStringDtypepandas.arraysr  r*   arrayrV   r(   r+   r,   )rE   string_storager   r/   r   rX   outr-   pastring_dtyper.   r  r  s                r    test_read_json_dtype_backend0TestPandasContainer.test_read_json_dtype_backend  s    QAJg6IW5S"cN)<O9=(($%	
 jjj'4nE]F F
 I%$$Y/B==5L>>.9LQAJg6IW5S"cN)<O9=T5"-Y?/yAO<@,LA	
 I%$$Y/B9   (/// ,RXXhmQUX-VWW/H X#E!H~H 	fh%HQ FE:s   5G/"H/
G>z0ignore:Passing a BlockManager:DeprecationWarningc                    SSS.nSn[        [        U5      USSSS9nUR                  n[        [        R
                  R                  S5      [        R
                  R                  S5      /SS	/S
9n[        R                  " XE5        g )Nzint32[pyarrow]int64[pyarrow]r  s   {"a": 1, "b": 2}
Tr   )r8   r   enginer   r\   r]   r   )	r   r   r+  r   r   r  construct_from_stringr+   r  )rE   r8   rO  rX   r-   r.   s         r    !test_read_json_pyarrow_with_dtype5TestPandasContainer.test_read_json_pyarrow_with_dtype  s     '-=>$DM#
 334DE334DE *
 	v0r1   )ri   r#   r?   c           	         [         R                  " S5      n[        S[        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[        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       Nb= f)Nr   rk   rz   r  r7   ra   r  r  )r   r/   r  r   r  Tr  )r   r  r   r	   rc   r   r  r   r   r  r  r  r+   r  )
rE   r  r   r/   r  rF   r  r-   r.   r  s
             r    test_read_json_nullable_series2TestPandasContainer.test_read_json_nullable_series  s       +aQZw/kkk(4nE]xF F
 1b!*G4I%91"((8QU(2VWXH
vx0 FEs   B??
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/  numpyr   )r   r   rs   r   )rE   r   s     r    test_invalid_dtype_backend.TestPandasContainer.test_invalid_dtype_backend	  s2    % 	 ]]:S1fG4 211s   0
>r   )r  r  r  r  r   fixturerG   rY   rg   r   parametrizern   ru   r   r   r   r   r   r   r   rA   r   r   rC   intr   r   r   paramru  
skip_if_nor   r   r   AssertionErrorr   rY  r   r  r  r  r  skipifr   r  r!  r,  r1  r5  rG  rb  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  rL  r  r  r  r#  r&  r)  r-  r
   rB   r   r_  r   ro  r2  r:  r=  rE  rL  network
single_cpur[  ri  rp  rv  rs  r   rz  r  r  r  r  r  r  r  r  r  r  r   r  r  r  skip_if_not_us_localer  r  r  sysmaxsizer  r  r  r  r  r
  r   r  r  r  r  r%  r)  r-  r2  r5  rename_axisr;  rB  rE  rI  rL  rQ  rT  r[  rb  rf  rj  rq  r   rt  rx  r}  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r   r1   r    r3   r3   G   s   ^^	 	 ^^	 	
> [[X'EF> G> [[X';<& =& [[X':;[[3Z#s$3Z#s$X3x :&..s3S9:&..s3S9		
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 [[$YbmmI>V WX [[^dE];> <>0 [[^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"

+<"QHa
F$
L"7$P1 [[Wudm41 51	1 [[$YbmmI>V WX11& [[Wrzz3&78	1 9	1(B
1 [[$YbmmI>V WX [[6<.0@ABFL>*+	
11*
*
*!
# "1H [[]We,<=[[[4-8[[Z(--9J9JI)VW" X 9 >"@ [[	

0
0 [[	
	0	0$; [[	
	1	1;04 [[_299Q<@A4H123T:)		!SV0WX 	 "..)STU 		
&'& [[$YbmmI>V WX [[V%67!0 8!0F*.$	' [[[[	0  	0><-(
H [[[4-8[[]UG,<=[[_r||Y.GH" I > 9"< [[[4-8[[_r||Y.GH" I 9"$H
*	L+60(  [[,-+=01	
666 [[-qtD,aLtT114H	
FFF0 [[[[0   000" [[Xa3;;?9K'LM
  N
  [[Xe'<=	 >	0K, [[EiX[[1,.9#+1VVS$%2663d3
	
 [[Wz6&:;	C < Y 	C) [[$Ac
S#Jc
T4LQ [[Y#sc3Z$(NO0 P00 [[X'OP&0 Q&0P' [[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 [[#&	& [[/1ST""& [[/1FG""" [[<>LLkk''I (  LLkk''I ( 	
,"-," [[Xy1" 2"& [[-  
 [[q	
tj"ktt"+	00" [[[[*  *,1"(O [[ 7v&9:0 =\lKL2 GW-/ABC2 #]3lM5RS4	)	
 B"C B"
":Ix ]]9[[ RS1 T 1, [[X'DE1 F1(5r1   r3   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)Nrk   zThe engine type foor   r   )r  r   r(   rc   r   r   rs   r   rF   r  s     r    test_invalid_enginer  	  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)Nrk   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           
         [        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        [        R                  " [        R                  S9n[        SS/SS//U[        SS/US9[        SS/US9S9n[        R                  " WU5        g ! , (       d  f       Nn= f)Nr\   r]   r^   r_   zrow 1zrow 2zcol 1zcol 2r`   zfuture.infer_stringT)na_valuer7   r  )r
   rc   r   r  r   r   r  rA   r
  r   r+   r,   )r/   rX   r  r-   r8   r.   s         r    $test_json_roundtrip_string_inferencer  	  s    	
sc3Z '(:WgDV
B **,C			0$	78C=) 
8NNBFF+E
sc3Z Wg&e4w(6	H &(+ 
8	7s   B::
C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 )Nrk   r  r7   rJ   r  r  r#   Tr  z"{"a":1,"b":2}
{"a":null,"b":null}
)r
   r   r	   rc   )rX   r-   r.   s      r    test_to_json_ea_nullr  /	  sY     
B'78Bw/	

B ZZyZ5FH r1   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   rJ   )exact)r   r   r?   r   r+   r1  )rf   r-   r.   s      r    test_read_json_lines_rangeindexr  ?	  s:    D x~T288F!}H&$7r1   c                  r    [        [        S5      SSSS9n [        S/5      n[        R                  " X5        g )Nz["9999999999999999"]r$   r  F)r/   r  r   l   _r  )r-   r.   s     r    test_large_numberr  J	  s<    '(	F '()H6,r1   )0r  r   rN  r   r   rO  rW  r  r  r  rA   r   pandas._configr   pandas.compatr   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsru  pandasr   r	   r
   r   r   r   r   r   r   r   pandas._testing_testingr+   pandas.io.jsonr   r!   r0   r3   r  r  r  r  r  r  r  r   r1   r    <module>r     s       	 
    -  ( ) ) 
 
 
  &F2,D#5 D#5NF%6," y 8	-r1   