
    #j                     l   d dl mZmZ d dlZerddlmZ d Zd Zdede	e
         d	efd
Zdede
d	efdZdde	d	e	e	e
                  fdZde
d	e	e
         fdZde	e	e
                  de	e
         d	dfdZdede	e	e
                  d	efdZddd	e	e	e
                  fdZddde	e	e
                  d	dfdZdS )    )TYPE_CHECKINGAnyN   )FeatureTypec                      	 t          j        j        j        | i |S # t          $ r t          j        j        j        | i |cY S w xY wN)pdiojsonujson_dumpsAttributeErrordumpsargskwargss     ]/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/datasets/utils/json.pyr   r   
   \    1uz%t6v666 1 1 1uz0000001    %AAc                      	 t          j        j        j        | i |S # t          $ r t          j        j        j        | i |cY S w xY wr   )r	   r
   r   ujson_loadsr   loadsr   s     r   r   r      r   r   examplejson_field_pathreturnc                     rE^}| d S |dk    rfd| D             S i | |t          |                     |                    iS 	 t          |            | S # t          $ r t	          |           cY S w xY w)Nr   c                 0    g | ]}t          |          S  json_encode_field.0xr   s     r   
<listcomp>z%json_encode_field.<locals>.<listcomp>    $    KKKa%a99KKK    )r   getr   	Exceptionr   r   r   fields    ` r   r   r      s     "1?4aZZKKKK7KKKK]g]u&7E8J8JO&\&\]]]	    N  	( 	( 	(w'''''	(s   
A A76A7c                     rE^}| d S |dk    rfd| D             S i | |t          |                     |                    iS 	 t          |           S # t          $ r | cY S w xY w)Nr   c                 0    g | ]}t          |          S r   )json_decode_fieldr    s     r   r#   z%json_decode_field.<locals>.<listcomp>2   r$   r%   )r,   r&   r   r'   r(   s    ` r   r,   r,   ,   s     "1?4aZZKKKK7KKKK]g]u&7E8J8JO&\&\]]]	w''' 	 	 	NNN	s   
A A('A(Fexamplesc                 |   g }d | D             } | sg S g | fg}|r|                     d          \  }t          d D                       ry|s|r9t          fdD                       sd         s|                    |           nd D             D ].fdD             } | s|                    |gz   | f           /nrt          d D                       r+d D             } | s|                    |dgz   | f           n.t          d	 D                       r|                    |           ||S )
Nc                     g | ]}||S r   r   r!   r   s     r   r#   z7find_mixed_struct_types_field_paths.<locals>.<listcomp>>   s    GGGG73F3F3F3Fr%   r   c              3   @   K   | ]}t          |t                    V  d S r   )
isinstancedictr!   r"   s     r   	<genexpr>z6find_mixed_struct_types_field_paths.<locals>.<genexpr>D   s,      44qz!T""444444r%   c              3   d   K   | ]*}t          |          t          d                    k    V  +dS )r   N)set)r!   r"   contents     r   r5   z6find_mixed_struct_types_field_paths.<locals>.<genexpr>E   s8      ,X,X1SVVs71:-F,X,X,X,X,X,Xr%   c                     h | ]	}|D ]}|
S r   r   )r!   r"   r)   s      r   	<setcomp>z6find_mixed_struct_types_field_paths.<locals>.<setcomp>H   s%     G G G1Q G GE G G G Gr%   c                 8    g | ]}|v |         |         S r   r   )r!   r"   subfields     r   r#   z7find_mixed_struct_types_field_paths.<locals>.<listcomp>I   s1    jjjARST\R]Ri(RiRiRir%   c              3   @   K   | ]}t          |t                    V  d S r   )r2   listr4   s     r   r5   z6find_mixed_struct_types_field_paths.<locals>.<genexpr>M   s,      66At$$666666r%   c                      g | ]}|D ]}||S r   r   )r!   sublistr"   s      r   r#   z7find_mixed_struct_types_field_paths.<locals>.<listcomp>N   s%    SSSg'SSQQ]]]]]r%   c              3   N   K   | ] }t          |t          t          f          V  !d S r   )r2   r3   r>   r4   s     r   r5   z6find_mixed_struct_types_field_paths.<locals>.<genexpr>R   s0      >>Ad|,,>>>>>>r%   )popallanyappend)r-   
allow_rootmixed_struct_types_field_pathspaths_and_content_to_checkpathr8   r<   s        @@r   #find_mixed_struct_types_field_pathsrJ   <   s   %'"GGxGGGH 	#%x.!1
$ 8266q99g44G44444 	8 Ud U,X,X,X,XPW,X,X,X)X)X U`ghi`j U.55d;;;; G G G G G U UHjjjjWjjjH# ! .55txj7H(6STTTT	U
 66g66666 	8SSSSSH &--tqcz8.DEEEE>>g>>>>> 	8*11$777# % 8$ *)r%   err_strc                     |                      dd          d                             dd          d                             d          }d |                     d          D             }|S )NzColumn(   z) changed fromr   /c                 "    g | ]}|d k    rdn|S )z[]r   r   )r!   segs     r   r#   z?get_json_field_path_from_pyarrow_json_error.<locals>.<listcomp>[   s$    [[[SC4KKqqS[[[r%   )splitrsplitstrip)rK   json_field_path_strr   s      r   +get_json_field_path_from_pyarrow_json_errorrU   W   sk    !--	155a8??@PRSTTUVW]]^abb[[<O<U<UVY<Z<Z[[[Or%   json_field_pathsc                     t          t          |                     D ]+}| |         d t          |                   |k    r|| |<    d S ,|                     |           d S r   )rangelenrE   )rV   r   is      r   insert_json_field_pathr[   _   sy    3'(()) 1 1A5_!5!556/II"1QEE J 	00000r%   original_batchc                     d |                                  D             }|D ]fd|D             }d                    d |D                                                       }|S )Nc                 ,    g | ]}t          |          S r   )r   )r!   lines     r   r#   z4json_encode_fields_in_json_lines.<locals>.<listcomp>j   s     JJJdD!!JJJr%   c                 0    g | ]}t          |          S r   r   )r!   r   r   s     r   r#   z4json_encode_fields_in_json_lines.<locals>.<listcomp>l   s$    XXXG%g??XXXr%   
c                 ,    g | ]}t          |          S r   )r   r0   s     r   r#   z4json_encode_fields_in_json_lines.<locals>.<listcomp>m   s     DDD{7++DDDr%   )
splitlinesjoinencode)r\   rV   r-   batchr   s       @r    json_encode_fields_in_json_linesrg   i   s    JJn.G.G.I.IJJJH+ Y YXXXXxXXXIIDD8DDDEELLNNELr%   featurer   c                 B    ddl mm} g fd} || |           S )Nr   Json_visit_with_pathc                 R    t          |           r                    |           | S r   )r2   rE   )_featurefeature_pathrk   rV   s     r   get_json_type_pathz=get_json_field_paths_from_feature.<locals>.get_json_type_pathv   s.    h%% 	2##L111r%   datasets.features.featuresrk   rl   )rh   rl   rp   rk   rV   s      @@r   !get_json_field_paths_from_featurers   q   s\    AAAAAAAA     
 W0111r%   c                 >    ddl mm} fd} || |          } | S )Nr   rj   c                 $    |v r
             n| S r   r   )rh   ro   rk   rV   s     r   set_json_typez0set_json_types_in_feature.<locals>.set_json_type   s    %)999ttvvvwFr%   rq   )rh   rV   rl   rv   rk   s    `  @r   set_json_types_in_featurerw      sY    AAAAAAAAG G G G G G w66GNr%   )F)typingr   r   pandasr	   features.featuresr   r   r   r>   strr   r,   rJ   rU   r[   bytesrg   rs   rw   r   r%   r   <module>r}      s   % % % % % % % %      0//////1 1 11 1 1s T#Y 3    $s S S     * *$ *TRVWZR[_ * * * *6 c    1T$s)_ 1tTWy 1]a 1 1 1 1U dSWX[S\o bg    } d3i    } TRUY \`      r%   