
    >iel"                    4   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
Z
d dlmZ d dlmZ d dlmZ d dlmZmZ  ej        g dg dd	          Z ej        ed
          Zej                            dg d          d             Zd Zd Zd Zd Zej                            dg d          d             Z ej                            dg d          d             Z!ej                            dddg          d             Z"ej                            ddej#        g          d             Z$ej                            dg d          d             Z%ej                            dg d          d             Z&d  Z'd! Z(ej                            d"g d          d#             Z)ej                            d$g d%          d&             Z*d' Z+ej        ,                     e	ej-                   e	d(          k    d)*          d+             Z.dS ),    )annotationsN)Version)PANDAS_GE_200)	assert_eq)tmpdirtmpfileabcd            xyr   npartitionsorient)splitrecordsindexcolumnsvaluesc                   t          d          5 }t                              || d           t          j        || dd          }t          j        || d          }t          j        |                    t          j	        d          ft          |          z  d          |d	<   |j        j        dk    sJ t          ||           d d d            d S # 1 swxY w Y   d S )
NjsonFr   linesTr   r!   include_path_column/categorydtypepath)r   dfto_jsondd	read_jsonpdSeriesreplaceosseplenr(   r'   r   r   factual	actual_pds       Alib/python3.11/site-packages/dask/dataframe/io/tests/test_json.pytest_read_json_with_path_columnr8      s   	 %A


1V5
111aeQUVVVL6???	 IYYrvs##%I6j
 
 
	& { J....&)$$$% % % % % % % % % % % % % % % % % %s   B7CCCc                 &   t          d          5 } t                              | dd           t          j        t
          d          5  t          j        | ddd           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	Nr   r   Fr    zFiles already containmatchr   r"   )r   r)   r*   pytestraises
ValueErrorr+   r,   r4   s    r7   7test_read_json_path_column_with_duplicate_name_is_errorr@   %   s/   	 TA


1Ye
444]:-DEEE 	T 	TL9EsSSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	TT T T T T T T T T T T T T T T T T Ts5   9B	A."B.A2	2B5A2	6BB
B
c                    d} d }t          d          5 }t                              |dd           t          j        |dd| |          }t          j        |dd          }t          j         ||          ft          |          z  d	          || <   t          ||           d d d            d S # 1 swxY w Y   d S )
N	filenamesc                    dS )Nz	asdf.json r   s    r7   path_converterz:test_read_json_with_path_converter.<locals>.path_converter/   s    {    r   r   Fr    )r   r!   r#   rF   r%   r&   )	r   r)   r*   r+   r,   r-   r.   r2   r   )path_column_namerF   r4   r5   r6   s        r7   "test_read_json_with_path_converterrI   ,   s&   "   
 %A


1Ye
444 0)
 
 
 L9EBBB	&(i^A 3y>>1'
 '
 '
	"# 	&)$$$% % % % % % % % % % % % % % % % % %s   BB33B7:B7c                     t          j        t          d          5  t          j        ddd           d d d            d S # 1 swxY w Y   d S )NLine-delimited JSONr:   znofile.jsonr   Tr    )r<   r=   r>   r+   r,   rD   rG   r7   &test_read_orient_not_records_and_linesrL   B   s    	z)>	?	?	? @ @
]7$????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   AAAc                     t          d          5 } t          j        t          d          5  t	          j        t          | dd           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   rK   r:   r   Tr    )r   r<   r=   r>   r+   r*   ddfr?   s    r7   'test_write_orient_not_records_and_linesrO   G   s    	 ;A]:-BCCC 	; 	;JsAgT::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s4   A.A
A.A	A.A	A..A25A2	blocksize)      !      i_ c                n   t           |j        d                                        t          j        d          }t           |j        d                                        t          j        d          }t          j        t          d          g dd          }|                    |j	        dz             }d	}d
}|
                    |||           |
                    |||           t          j        ||f          }t          j        |ft          |          z  |          |d<   t          j        |ft          |          z  |          |d<   t          j        ||g          }	t          j        t           |j        d                    ||d
|           }
t#          |
|	d           d S )N	fil1.jsonr$   	fil2.jsonrQ   r
   r   r   r   er         ?rE   r   Tr    r&   r(   	fil*.json)r   r!   r#   rP   Fcheck_index)strjoinr/   r0   r1   r-   	DataFramerangeassignr   r*   CategoricalDtyper.   r2   concatr+   r,   r   )rP   r   fil1fil2r)   df2r   r!   
path_dtypesolress              r7   .test_read_json_multiple_files_with_path_columnrk   M   s   {v{;''((00==D{v{;''((00==D	E!HH+D+D+DEE	F	FB
))bdSj)
!
!CFEJJtF%J000KKV5K111$dD\22JD7SWW,J???BvJ)TGc#hh.jAAACK
)RI

C
,KFK$$%%   C c3E******rG   c                ~   t          d          5 }t                              || d           t          j        || d          }t          j        || d          }t          ||           | dk    rt          t          j                  |_        t          |t                     d d d            d S # 1 swxY w Y   d S )Nr   Fr    r   )	r   r)   r*   r+   r,   r-   r   listr   r3   s       r7   test_read_json_basicrn   e   s    	 A


1V5
111ae<<<L6???	&)$$$X!"*--FN&"                 s   BB22B69B6fkeywordpandasr   c                     fd}t          d          5 }t                              |dd           t          j        |dd|          }t          j        |dd          }t          ||           d d d            d S # 1 swxY w Y   d S )Nc                     dk    r+t           j                            t          j        |            S t          j        |  S )Nr   )r-   r`   	from_dictr   loadr,   )argskwargsro   s     r7   _my_json_readerz0test_read_json_fkeyword.<locals>._my_json_readert   s8    v<))$)T*:;;;|T""rG   r   r   Fr    )r   r!   engine)r   r)   r*   r+   r,   r-   r   )ro   rw   r4   r5   r6   s   `    r7   test_read_json_fkeywordry   r   s    # # # # #
 
 %A


1Ye
444a	WWWL9EBBB	&)$$$	% % % % % % % % % % % % % % % % % %s   AB  BBrx   ujsonc                   t          d          5 }t                              |d           t          | t                    rRt
          sKt          j        t          d          5  t          j
        || d           d d d            n# 1 swxY w Y   n,t          j
        || d          }t          |t                     d d d            d S # 1 swxY w Y   d S )Nr   F)r!   zPandas>=2.0 is requiredr:   )rx   r!   )r   r)   r*   
isinstancer^   r   r<   r=   r>   r+   r,   r   )rx   r4   gots      r7   test_read_json_engine_strr~      sI   	 A


1E
"""fc"" 	= 	z1JKKK < <QvU;;;;< < < < < < < < < < < < < < < ,qu===Cc2                 s6   AC$B<CB	CB	0CCCc                   t          j        t          d          g dd          }|                    |j        dz             }| dk    }|                    t           |j        d                    | |           |                    t           |j        d	                    | |           t          j        ||g          }|j	        d d
         }| dk    rd
dgx|_
        |_
        t          j        t           |j        d                    | ||          }t          ||           | dk    rHt          j        t           |j        d                    | |dd          }t          ||d           d S d S )NrQ   rX   r   rZ   rE   r   rV   r    rW   r   r   r   r[   )r   metar!   T2   )r   r   r!   rP   Fr\   )r-   r`   ra   rb   r   r*   r^   r_   rd   ilocr   r+   r,   r   )r   r   r)   rg   r!   ri   r   rj   s           r7   test_read_json_metar      s   	E!HH+D+D+DEE	F	FB
))bdSj)
!
!CiEJJs;6;{++,,V5JIIIKKKFK,,--fEKJJJ
)RI

C8BQB<D&'V+dl
,KFK$$%%f4u  C c3lK(())
 
 
 	#s...... rG   c                n   t                      5 }t          j                            |d          }t                              || d           t          j        || d          }| dk    rt          t          j	                  |_	        t          |t                     d d d            d S # 1 swxY w Y   d S )N1.jsonFr    r   )r   r0   r(   r_   r)   r*   r+   r,   rm   r   r   )r   r(   fnr5   s       r7   test_write_json_basicr      s    	 TW\\$))


2fE
222bu===X!"*--FN&"                 s   BB**B.1B.c                    ddl m dgfd} t          j        g dg dd          }t	          j        |d	          }t                      5 }|                    |d
| i           d         sJ t	          j        t          j
                            |d                    }t          ||d           d d d            d S # 1 swxY w Y   d S )Nr   )getFc                     dd<    | i |S )NTr   rD   )ru   rv   flagmp_gets     r7   my_getz%test_to_json_with_get.<locals>.my_get   s!    Qvt&v&&&rG   r	   r   r   r   r   	scheduler)compute_kwargs*r\   )dask.multiprocessingr   r-   r`   r+   from_pandasr   r*   r,   r0   r(   r_   r   )r   r)   rN   dnresultr   r   s        @@r7   test_to_json_with_getr      s:   2222227D' ' ' ' ' ' 
000|||DD	E	EB
.
+
+
+C	 1RBV'<===Awbgll2s3344&"%0000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   A(CC
C
c                    t          d          5 } t          j        t                    5  t                              | dd           d d d            n# 1 swxY w Y   t                              | dd           t          j        t                    5  t          j        | dd           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r   Tr    Fr   )r   rP   )r   r<   r=   r>   r)   r*   r+   r,   r?   s    r7   test_read_json_errorr      s   	 9A]:&& 	6 	6JJqJ555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6


1WE
222]:&& 	9 	9L7a8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9	9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9sX   CACA	CA	9CB9-C9B=	=C B=	CCCblockc                P   t                      5 }t          j                            |d          }t                              |dd           t          j        || d          }|j        dk    s| dk    sJ t          |t          d	
           d d d            d S # 1 swxY w Y   d S )Nr   r   Tr    
   )rP   sampler      Fr\   )
r   r0   r(   r_   r)   r*   r+   r,   r   r   )r   r(   r   r   s       r7   test_read_chunkedr      s    	 ,TW\\$))


2it
444LuR888!!urzzzz!RU++++, , , , , , , , , , , , , , , , , ,s   A?BB"Bcompression)Ngzipxzc                "   t                      5 }t          j        t          ||            t          j        t
          j                            |d          |           }t          t          |d           d d d            d S # 1 swxY w Y   d S )Nr   r   Fr\   )
r   r+   r*   rN   r,   r0   r(   r_   r   r)   )r   r(   r5   s      r7   test_json_compressedr      s    	 1T

3+6666bgll455;OOO"f%00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1   A(BBBc                 "   t                      5 } t          j                            | d          }t	          j        t          |d           t	          j        |          }t          t          |d           d d d            d S # 1 swxY w Y   d S )Nz	*.json.gzr   r   Fr\   )
r   r0   r(   r_   r+   r*   rN   r,   r   r)   )r(   r   r5   s      r7   #test_read_json_inferred_compressionr      s    	 1TW\\$,,

3////b!!"f%0000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1r   z2023.9.1z)https://github.com/dask/dask/issues/10515)reasonc                    t          d          5 t                                        } | fdt          t          j                  D             k    sJ 	 d d d            n# 1 swxY w Y   t          d          5 t                              d          }t          j        | } | t          fdt          t          j                  D                       k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   c                V    g | ]%}t           j                            | d           &S ).partr0   r(   r_   .0nr4   s     r7   
<listcomp>z(test_to_json_results.<locals>.<listcomp>   s/    VVV!aA55VVVrG   F)computec              3  ^   K   | ]'}t           j                            | d           V  (dS )r   Nr   r   s     r7   	<genexpr>z'test_to_json_results.<locals>.<genexpr>   sJ       
 
-.BGLLqKKK((
 
 
 
 
 
rG   )r   rN   r*   ra   r   daskr   tuple)pathslist_of_delayedr4   s     @r7   test_to_json_resultsr      s   
 
 WAAVVVVuS_?U?UVVVVVVVVW W W W W W W W W W W W W W W 
 
A++a+77o. 
 
 
 
272H2H
 
 
 
 
 
 
 
 
 
	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s%   AA$$A(+A(>A#C//C36C3)/
__future__r   r   r0   fsspecrp   r-   r<   packaging.versionr   r   dask.dataframe	dataframer+   dask.dataframe._compatr   dask.dataframe.utilsr   
dask.utilsr   r   r`   r)   r   rN   markparametrizer8   r@   rI   rL   rO   rk   rn   ry   r,   r~   r   r   r   r   r   r   r   skipif__version__r   rD   rG   r7   <module>r      s   " " " " " "  				       % % % % % %        0 0 0 0 0 0 * * * * * * & & & & & & & &R\,,,<<<@@AAbnRQ''' #U#U#UVV% % WV%T T T% % %,@ @ @
; ; ; &=&=&=>>+ + ?>+. #U#U#UVV	 	 WV	 h%788
% 
% 98
% GR\#:;;  <; #U#U#UVV/ / WV/< #U#U#UVV  WV1 1 1&9 9 9 "9"9"9::, , ;:, (<(<(<==1 1 >=11 1 1 GF77:#6#666   
 
	 
 
 
rG   