
    Eg`x                     "   d dl Z d dlZd dlZd dlmZmZmZmZ d dl	m
Z d dlmZ ej        d             Zej        d             Zej        d             Zej        d             Zej        d             Z G d	 d
          Z G d d          ZdS )    N)	DataFrameIndexSeriesjson_normalizenested_to_recordc                  n    ddddddddgdd	d
dddddgdgddddddgddddddddgdgdgS )NUSA
CaliforniaSan Francisco90  )namepopLos Angeles:0  )r   citiesOhioColumbus  	Cleveland  )countrystatesGermanyBayernMunich;0  Nordrhein-WestfalenDuesseldorf  Koeln   r#       X/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/io/json/test_normalize.pydeep_nestedr&      s    
  )!0??!.u==  #!+D99!,T:: 	
 	
( !!x.N.N-OPP1!.t<<!(66 		
 	
)! !r$   c                  N    dddddddddgdd	id
ddddddddgddidddgS )NDader   r   
populationBroward@  
Palm Beach`  governor
Rick ScottFLFlorida)countiesinfo	shortnamestateSummitr   Cuyahoga9  John KasichOHr   r#   r#   r$   r%   
state_datar<   8   s    
  u55"%88%U;;
  .		
 		
 "66#488  /	
 	
 r$   c                       dd idddddddgS )	Nr4   
11/08/1993
26/05/2012
created_atlast_updatedJaneDoefirst	last_namer4   author_namer#   r#   r$   r%   author_missing_datarJ   Q   s5     
#/NN%+%@@	
 	
 r$   c                  H    dddddddgdd	d
igidddddddgdd	digidgS )NAliceZ%  
Morris St.	Massillonr;   f  )numberstreetcityr6   zipr   	city_nameFoo York City)r   	addressesprevious_residences!  
Spring St.ElizabethtonTN  
Barmingham)rW   rX   r#   r#   r$   r%   missing_metadatar_   \   s      #*'!   %-_/M.N#O	
 	
  #**!   %-\/J.K#L	
 	
 r$   c                  $    ddiddddddd	id
gS )z@
    input data to test json_normalize with max_level param
    NameUser001	Some textID001Name001Idra   	TextField	UserFieldab	CreatedByLookupImager#   r#   r$   r%   max_level_test_input_datarq   {   sA     !),($+Y??  3Z	
 	
	 	r$   c                      e Zd Zd Zd Zd Zd Zej        	                    dddiddigd	d	fdddiddigidd	fd
d	e
fd	d	e
fg          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej        	                    ddddddddiddid ddddddiddid gfddddddiddid!dddddiddid!gfg          d"             Zd# Zd$ Zej        	                    d%g d&          d'             Zd( Zd) Zd* Zd	S )+TestJSONNormalizec                     dddddddddd	d
dddddg}t          |          }t          |          }t          j        ||           d S )N         )rk   rl   c               	   
         r   r   tmassert_frame_equalselfrecsresultexpecteds       r%   test_simple_recordsz%TestJSONNormalize.test_simple_records   sp    !!$$!!$$!!$$2B''	
  %%T??
fh/////r$   c                    t          |d         d          }t          |d         d                   }t          j        ||           t          |d          }g }|D ]}|                    |d                    t          |          }t          j        ||           t          |dd          }t          j        ddg                              ddg          |d<   t          j        ||           d S )	Nr   r3   r6   metar2   r   rw   rv   )r   r   r   r   extendnparrayrepeatr   r<   r   r   recs        r%   test_simple_normalizez'TestJSONNormalize.test_simple_normalize   s    
1z::Z]:677
fh///
J77 	- 	-COOC
O,,,,X&&
fh///
JWEEEHi%899@@!QHH
fh/////r$   c                     g ddddgidg}t          |dgddgg          }t          g dddgddgddggd	          }t          j        ||           d S )
Nru   rv   rw   listdataru   rv   )valuesmetadatar   r   record_pathr   )r   zmetadata.listdatar   )r   parse_metadata_fields_list_typer   r   s       r%   test_fields_list_type_normalizez1TestJSONNormalize.test_fields_list_type_normalize   s     yyzAq6.BCC+
'  +!
z*+
 
 

 		!Q!Q!Q0HII
 
 	fh/////r$   c                 j    t          g           }t                      }t          j        ||           d S )Nr   r   r   r   s      r%   test_empty_arrayz"TestJSONNormalize.test_empty_array   s1    ##;;
fh/////r$   z!data, record_path, exception_typerk   r   ru   Nz{"a": [{"a": 0}, {"a": 1}]}c                    |Bt          j        |d          5  t          ||           d d d            d S # 1 swxY w Y   d S t          ||          }t          ddgdg          }t	          j        ||           d S )N matchr   r   ru   rk   columns)pytestraisesr   r   r   r   )r   datar   exception_typer   r   s         r%   test_accepted_inputz%TestJSONNormalize.test_accepted_input   s     %~R888 > >t====> > > > > > > > > > > > > > > > > > $DkBBBF !Q#777H!&(33333s   8<<c                    t          ddddi          }t          ddggddg          }t          j        |                    |          |           t          ddddid	          }t          ddggd
dg          }t          j        |                    |          |           t          ddddid	          }t          ddggddg          }t          j        |                    |          |           t          |ddgdddggd          }t          g d                                          }|j                                                            |          sJ d S )NAru   rv   )r   BzA.AzA.Br   _sepA_AA_Bu   σu   AσAu   AσBr   r   r   r   )r   r   )r   r   r   states_name)	r   r   r   r   reindex_liker   sort_valuesr   equals)r   r&   r   r   s       r%   $test_simple_normalize_with_separatorz6TestJSONNormalize.test_simple_normalize_with_separator   s   AA&6&6 788q!fXu~>>>
f11(;;XFFFAA&6&6 7SAAAq!fXu~>>>
f11(;;XFFFAA&6&6 7XFFFq!fX
J/GHHH
f11(;;XFFFx h/0	
 
 
 BBBCCOOQQ~))++228<<<<<<<r$   c                     ddgdddd}t          |d          }t          ddgddggg d	          }t          j        ||           d S )
Nru   rv   )rw   ry   )b_1b_2)rk   rl   __r   )rk   b__b_1b__b_2r   r   r   r   r   r   s       r%   'test_normalize_with_multichar_separatorz9TestJSONNormalize.test_normalize_with_multichar_separator   sm    V!F";";<<$///1vq&12<U<U<UVVV
fh/////r$   c                     t          dddgidd          }t          dgdggdg          }t          j        ||           d S )Nr   ru   rv   zPrefix.)record_prefixzPrefix.0r   r   r   s      r%   test_value_array_record_prefixz0TestJSONNormalize.test_value_array_record_prefix   sS    q!fs)LLLqcA3Z*>>>
fh/////r$   c                     dddddddddd	dgd
d}t          |ddg          }t          ddgddgdd	ggddg          }t          j        ||           d S )Nr2   r0   r(   r   r)   r+   r,   r-   r.   )r/   r3   r6   r4   r4   r3   r   r   r*   r   r   r   s       r%   test_nested_object_record_pathz0TestJSONNormalize.test_nested_object_record_path   s     (#599&e<<)?? 

 

  6:2FGGGe_y%0<2GH\*
 
 
 	fh/////r$   c                     t          |ddgdddgg          }dgdz  dgd	z  z   g d
g dg dd}t          ||j                  }t          j        ||           d S )Nr   r   r   r   r   r
   ry   r   rw   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r!   )r   r   r   r   r   r    r"   )r   zstates.namer   r   r   r   r   r   r   r   )r   r&   r   ex_datar   s        r%   test_more_deeply_nestedz)TestJSONNormalize.test_more_deeply_nested
  s    (H-Y6@R4S
 
 
 w{i[1_4     A@@)
 
. Wfn===
fh/////r$   c                    ddddiddddd	dd
ddgdddddiddddddgdg}t          |dddddgg          }g ddgdz  dgdz  z   g ddgdz  dgdz  z   g dd}t          ||j                  }t          j        ||           d S )Nr2   r1   r/   r0   r(   r   r)   r+   r,   r-   r.   )r6   r5   r4   r3   r   r;   r:   r7   r   r8   r9   r3   r6   r5   r4   r(   r+   r-   r7   r8   rw   rv   )r1   r1   r1   r;   r;   r   r,   r.   r   r9   )r   r6   r5   info.governorr*   r   r   )r   r   r   r   r   s        r%   test_shallow_nestedz%TestJSONNormalize.test_shallow_nested(  s%    #!#\2#599&e<<)??		 	  !#]3%T::'t<<	 
,  *wfj5IJ
 
 LKK[1_x!|3777*^a/=/A2EE;;;
 
 Wfn===
fh/////r$   c                     t          |dgddddggd          }g dg d	d
gdz  dgdz  z   dgdz  dgdz  z   dgdz  dgdz  z   d}t          |          }t          j        ||           d S )Nr3   r6   r5   r4   r/   ignorer   r   r   errorsr   r   r2   rw   r   rv   r1   r;   r0   r:   )r   r*   r6   r5   r   r   )r   r<   r   r   r   s        r%   -test_nested_meta_path_with_nested_record_pathz?TestJSONNormalize.test_nested_meta_path_with_nested_record_pathL  s    #;(<=	
 
 
 LKK;;;[1_x!|3!tfqj0*^a/=/A2EE
 
 W%%
fh/////r$   c                     ddddddddgdg}d	}t          j        t          |
          5  t          |dddg           d d d            n# 1 swxY w Y   t          |dddgd          }dD ]}||v sJ 	d S )Nhellothere	somethingelsefoobar
something2else2r   r   r   z?Conflicting metadata name (foo|bar), need distinguishing prefixr   r   r   r   r   r   r   meta_prefixmetafoometabarr   r   )r   r   
ValueErrorr   )r   r   msgr   vals        r%   test_meta_name_conflictz)TestJSONNormalize.test_meta_name_conflict`  s    '77(99 	
 Q]:S111 	> 	>4uen====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>  fE5>vVVV7 	! 	!C&=====	! 	!s   AAAc                 |    ddddddddgdg}d	d
g}t          |d|d          }|d	d
gk    sJ dD ]}||v sJ 	d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   )r   r   COLUMNSr   r   s        r%    test_meta_parameter_not_modifiedz2TestJSONNormalize.test_meta_parameter_not_modifiedu  s     '77(99 	
 %.f7OOO5%.((((7 	! 	!C&=====	! 	!r$   c                    t          |d         d          }t          |d         d                   }t          j        ||           t          |ddd          }g }|D ]}|                    |d                    t          |          }|                    d           }t          j        dd	g                              d
dg          |d<   t          j        ||           d S )Nr   r3   r6   county_)r   r   c                     d| z   S )Nr   r#   )xs    r%   <lambda>z6TestJSONNormalize.test_record_prefix.<locals>.<lambda>  s
    Y] r$   r   r2   r   rw   rv   )	r   r   r   r   r   renamer   r   r   r   s        r%   test_record_prefixz$TestJSONNormalize.test_record_prefix  s    
1z::Z]:677
fh///
	
 
 
  	- 	-COOC
O,,,,X&&??+B+B?CCHi%899@@!QHH
fh/////r$   c                     d                     d          }d                     d          ddgdddgdd	d
gi}t          |          }t          t          j        |                    }t          j        ||           d S )NsK   [{"Ünicøde":0,"sub":{"A":1, "B":2}},{"Ünicøde":1,"sub":{"A":3, "B":4}}]utf8s	   Ünicøder   ru   zsub.Arw   zsub.Brv   ry   )decoder   r   jsonloadsr   r   )r   testjsontestdatar   r   s        r%   test_non_ascii_keyz$TestJSONNormalize.test_non_ascii_key  s    A
&.. 	 %++F33aVaVaV

 X&&
8 4 455
fh/////r$   c                     t          |          }t          j        t          j        t          j        t          j        t          j        dd dddddg}t          |          }t	          j        ||           d S )N)r4   info.created_atinfo.last_updatedauthor_name.firstauthor_name.last_namer>   r?   rC   rD   r   r   nanr   r   r   )r   rJ   r   r   r   s        r%   test_missing_fieldz$TestJSONNormalize.test_missing_field  s     344 #%6%'V%'V)+  #/%1%+). 
  W%%
fh/////r$   zmax_level,expectedrc   rd   re   rf   ra   rb   rl   )ri   rj   rn   rp   )ri   zUserField.IdzUserField.Namern   rp   c                     ddiddddddddddgdd	id
dddddgdg}t          |dgdgdgg|          }t          ||j        j                  }t	          j        ||           d S )Nra   rb   rc   rd   re   rf   rh   rk   rl   r   r   r   r   r   )rn   ro   rp   tagsro   rn   rp   )r   r   	max_level)r   r   )r   r   r   r   r   assert_equal)r   r  r   
test_inputr   expected_dfs         r%    test_max_level_with_records_pathz2TestJSONNormalize.test_max_level_with_records_path  s    Z %i0 &1,3Y%G%G 
 &1,3Y%G%G 	 s'77(99 

*  !
-'+	
 
 
  Xv~7LMMM
V,,,,,r$   c                     t          dddiig          }t          ddddiigid          }t          j        ||           d S )Nr   r   ru   dummy)r   r   r   )r   df1df2s      r%   !test_nested_flattening_consistentz3TestJSONNormalize.test_nested_flattening_consistent
  sT    sS!Ho.//gsAh'897CC 	c3'''''r$   c                     t          d|ddddigdgdg          }t          ddidg	          }t          j        ||           d S )
NTexasr   r2   irv   r4   r   r   )index)r   r   r   r  )r   nulls_fixturer   r   s       r%   test_nonetype_record_pathz+TestJSONNormalize.test_nonetype_record_path  sr      !=99#sAhZ88  
 
 
 c1XaS111
)))))r$   value)falsetruez{}1z"text"c                     t          j        |          }d|d}d}| d| d| d}t          j        t          |          5  t          |g|g           d d d            d S # 1 swxY w Y   d S )	Nr  r   r4   z has non list value z
 for path z. Must be list or null.r   r   )r   r   r   r   	TypeErrorr   )r   r  parsed_valuer  	test_pathr   s         r%    test_non_list_record_path_errorsz2TestJSONNormalize.test_non_list_record_path_errors  s     z%((&==
	 $ $| $ $y $ $ $ 	 ]9C000 	B 	BJ<i[AAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   A##A'*A'c                     d}t          t          j        |          dgdg          }t          dgdgt	          j        dgt                    d	          }t          j        ||           d S )
Nz,[{"id": 99, "data": [{"one": 1, "two": 2}]}]r   idr   ru   rv   c   )dtype)onetwor   )	r   r   r   r   r   r   objectr   r   r   s       r%   test_meta_non_iterablez(TestJSONNormalize.test_meta_non_iterable,  su    A
4 0 0vhdVTTTC28RD+G+G+GHH
 
 	fh/////r$   c                     fd}t           |                      }t          d         d                   }t          j        ||           d S )Nc               3   4   K    d         d         E d {V  d S )Nr   r3   r#   )r<   s   r%   generator_dataz8TestJSONNormalize.test_generator.<locals>.generator_data9  s.      !!}Z0000000000r$   r   r3   r   )r   r<   r)  r   r   s    `   r%   test_generatorz TestJSONNormalize.test_generator6  sb    	1 	1 	1 	1 	1   0 011Z]:677
fh/////r$   c                     dddiddd}t          |d          }t          g d	gg d
          }t          j        ||           d S )Nr   l3r   )a1l2ry   )_idggr   r   )ry   r   r   )r0  _id_a1	_id_l2_l3r   r   r   s       r%   'test_top_column_with_leading_underscorez9TestJSONNormalize.test_top_column_with_leading_underscoreA  se     q	22!<<#...jjj\3P3P3PQQQ
fh/////r$   )__name__
__module____qualname__r   r   r   r   r   markparametrizeNotImplementedErrorr   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  r  r  r&  r*  r3  r#   r$   r%   rs   rs      s       0 0 00 0 0&0 0 00 0 0
 [+Aha!4.S!HsAh'(#t4*D2EF4,-		
 4 4 4= = =.0 0 00 0 00 0 0(0 0 0<"0 "0 "0H0 0 0(! ! !*! ! !(0 0 0$0 0 0 0 0 0, [  &1,3Y%G%G&,i%8"%s	  &1,3Y%G%G&,i%8"%s	 $  &1(/*3&,i%8"%s  &1(/*3&,i%8"%s %%	
( (R- -S( (R-@( ( (* * * [W&L&L&LMM
B 
B NM
B0 0 0	0 	0 	00 0 0 0 0r$   rs   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                            ddddddddgfdddidddddddidgfddddddddgfg          d             Zd Zd ZdS )TestNestedToRecordc                 L    ddddddg}t          |          }|}||k    sJ d S )Nru   rv   )flat1flat2rw   ry   )flat3r>  r   r   s       r%   test_flat_stays_flatz'TestNestedToRecord.test_flat_stays_flatK  sE    a((A*B*BC!$''!!!!!!r$   c                 P    ddddd}t          |          }dddd}||k    sJ d S )Nru   rv   rx   d)r=  dict1)dict1.cdict1.dr=  r   r   s       r%   test_one_level_deep_flattensz/TestNestedToRecord.test_one_level_deep_flattensQ  sJ    11%5%566!$'' Q;;!!!!!!r$   c                 d    dddddddddd}t          |          }ddddddd}||k    sJ d S )Nru   rv   rB  )erC  )r=  rD  nested)rE  rF  r=  znested.dz
nested.e.cz
nested.e.dr   r   s       r%   test_nested_flattensz'TestNestedToRecord.test_nested_flattensY  su    1%%"#!,,155
 
 "$''
 
 !!!!!!r$   c                     d}t          j        t          |          5  t          |ddd           d d d            d S # 1 swxY w Y   d S )N^Key 'name' not found. To replace missing values of 'name' with np.nan, pass in errors='ignore'r   rW   r   raiser   r   r   KeyErrorr   r   r_   r   s      r%   test_json_normalize_errorsz-TestNestedToRecord.test_json_normalize_errorsl  s    : 	 ]83/// 	 	%'	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ?AAc                     t          |ddd          }g ddddd	d
t          j        gg}g d}t          ||          }t	          j        ||           d S )NrW   r   r   r   )rM   rN   rO   r;   rP   rL   rY   rZ   r[   r\   r]   )rQ   rR   rS   r6   rT   r   r   r  r   r_   r   r   r   r   s         r%   test_missing_metaz$TestNestedToRecord.test_missing_meta}  s      !{PX
 
 
 DCC<ubfE
 GFFWg666
fh/////r$   c                    dd ddiddigd}t          |dddd	ggd
          }ddt          j        gddt          j        gg}g d}t          ||                              dt
          i          }t          j        ||           t          j	        t          d          5  t          |dddd	ggd           d d d            d S # 1 swxY w Y   d S )Nr   r   ru   rv   )r   nested_metar  r  r   rW  leafr   )r   r   r   )r   r   nested_meta.leafr   rY  z'leaf' not foundr   rN  )r   r   r  r   astyper%  r   r   r   r   rP  )r   r   r   r   r   r   s         r%   test_missing_nested_metaz+TestNestedToRecord.test_missing_nested_meta  s\    duaj5RS*=UVV=&12	
 
 
 ubf%5"&'9:555Wg666==(
 
 	fh/// ]8+=>>> 	 	#}f56	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   !CC
C
c                     d}t          j        t          |          5  t          |ddgdd           d d d            d S # 1 swxY w Y   d S )NrM  r   rX   r   r   rN  r   rO  rQ  s      r%   5test_missing_meta_multilevel_record_path_errors_raisezHTestNestedToRecord.test_missing_meta_multilevel_record_path_errors_raise  s    
: 	 ]83/// 	 	%2H=	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     t          |ddgdd          }ddgdt          j        gg}d	dg}t          ||
          }t	          j        ||           d S )NrX   r   r   r   r   rV   rL   r^   rU   r   r  rT  s         r%   6test_missing_meta_multilevel_record_path_errors_ignorezITestNestedToRecord.test_missing_meta_multilevel_record_path_errors_ignore  s{      !.9	
 
 
 g&26"
 'Wg666
fh/////r$   c                 t    d ddddddddd	ddg}t          |          }d ddd
dd	dddg}||k    sJ d S )NSmith	AppleseedrE   rH   r>   r?   r@   rC   rD   )r4   r   r   )r   r   r   r   r   r   s       r%   test_donot_drop_nonevaluesz-TestNestedToRecord.test_donot_drop_nonevalues  s     G+*V*VWW'3\RR)/eDD 
 "$'' %,)4  &,).#/%1	 
 !!!!!!r$   c           
      l    d ddd d d dddddiid}t          |          }d d d d dddd	}||k    sJ d S )
Nr   r6       gH@   @   ;@)r   regionr   yzr   z	town.infor   location)r   location.country.state.idz#location.country.state.town.info.id'location.country.state.town.info.region"location.country.state.town.info.x"location.country.state.town.info.y"location.country.state.town.info.zr   r   s       r%   $test_nonetype_top_level_bottom_levelz7TestNestedToRecord.test_nonetype_top_level_bottom_level  s     ""&&*!3!4!3& &	 	
 
" "$'')-377;2D2E2D
 
 !!!!!!r$   c           	      p    d d d d d dddddddd}t          |          }d d d d d dddd	}||k    sJ d S )
Nre  rf  rg  )rh  r   ri  rj  rk  )r   r6   )r   r   rl  )r   zlocation.idzlocation.country.idrn  ro  rp  rq  rr  r   r   s       r%   test_nonetype_multiple_levelsz0TestNestedToRecord.test_nonetype_multiple_levels  s     "&*!3!4!3	& &   
 
$ "$''#')-7;2D2E2D	
 	
 !!!!!!r$   zmax_level, expectedNrb   rc   rd   re   rl   )CreatedBy.NameLookup.TextFieldzLookup.UserField.IdzLookup.UserField.NameImage.ar   ra   rf   rh   rk   rm   ru   )rv  rw  zLookup.UserFieldrx  c                 8    t          ||          }||k    sJ d S )Nr  r   )r   r  r   rq   outputs        r%   test_with_max_levelz&TestNestedToRecord.test_with_max_level%  s/    V "";yQQQ!!!!!!r$   c           	          d}dddddddd	d
ddidddidiig}dddd	d
ddg}t          ||          }||k    sJ d S )Nd   rn   userLeoThomson)	firstnameLastNamefather	Father001	Father002	Father003ra   	Father004)r   r  )ra   r  )r   family_tree)zCreatedBy.user.name.firstnamezCreatedBy.user.name.LastNamez&CreatedBy.user.family_tree.father.namez-CreatedBy.user.family_tree.father.father.Namez4CreatedBy.user.family_tree.father.father.father.namez;CreatedBy.user.family_tree.father.father.father.father.Namerz  r   )r   r  
input_datar   r{  s        r%   test_with_large_max_levelz,TestNestedToRecord.test_with_large_max_levelS  s    	 .3 K K$(3,70;39;2G/& /&+" +"	' 	'( 

. 2709:EALHSOZ 	
 "*	BBB!!!!!!r$   c           	      j   ddddidddddiddd	d
didd}t          |          }g d|_        t          |          }t          g dg ddt          j        t          j        gt          j        dt          j        gt          j        t          j        dgd          }t          j        ||           d S )Nru   Foork   )r   r   elementsrv   Barrl   rw   Bazrx   )r   ru   rv   r   )r  r  r  g      ?g       @g      @)r   r   z
elements.az
elements.bz
elements.c)r   r  r   r   r   r  r   r   )r   r   sr   r   s        r%   test_series_non_zero_indexz-TestNestedToRecord.test_series_non_zero_indexx  s     S!H==S!H==S!H==
 

 4LL))""ii---"BFBF3!vsBF3!vrvs3 
 
 	fh/////r$   )r4  r5  r6  r@  rG  rK  rR  rU  r[  r]  r_  rc  rs  ru  r   r7  r8  r|  r  r  r#   r$   r%   r;  r;  J  s       " " "" " "" " "&  "0 0 0  6   0 0 0$" " "4" " "@ "  "  "D [  +4,7/61:#&   '-i%8)407)K)K# # #&s 	  +4,73:I,N,N#&	 
5%	
( (R" "S( (R"
#" #" #"J0 0 0 0 0r$   r;  )r   numpyr   r   pandasr   r   r   r   pandas._testing_testingr   pandas.io.json._normalizer   fixturer&   r<   rJ   r_   rq   rs   r;  r#   r$   r%   <module>r     s                          6 6 6 6 6 6 # # #L   0      <    {0 {0 {0 {0 {0 {0 {0 {0|A0 A0 A0 A0 A0 A0 A0 A0 A0 A0r$   