
    OwgH              
          d dl mZmZ d dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZmZmZmZmZ d dlmZ  G d d      Zej,                  j/                  d edd	d	       ed	       ed
       ed	d      g      d        Zy)    )OrderedDictdefaultdict)datetimeN)	NA	DataFrameIndexInterval
MultiIndexPeriodSeries	Timedelta	Timestampc                   
   e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  de
 ee      eg      d        Zej                  j                  deeg g      d	        Zd
 Zej                  j#                  d      ej                  j                  ddddgddgdfddddddddfg      d               Zej                  j                  ddd fdd fdd fdd fdd fg      d        Zd  Zej                  j                  d!e
d"d#d$dd%d$dd&d$d'fe ed(d"d#d$fd"dd%d$fddd&d$fg      f ee
       ee
d"d#d$dd%d$dd&d$d'      fg      d)        Zd* Zd+ Zej                  j                  d,g d-ef ed.d"d"       ed/dd       ed0dd      gegg d1egg d2egg d3egf      d4        Zej                  j                  d5 ej@                  d      eg ejB                  d6      eg ejD                  d7      eg ejF                  d8      eg ejH                  d9      egf      d:        Z%d; Z&ej                  j                  dd< e'd=d>g       e'd=d>gd?@       e(jR                  dAdBg       e(jR                  dAdBgdCdDgE      g      ej                  j                  dFdGdHg e'dGdHg       e'dGdHgdI@       e(jR                  dJdKg       e(jR                  dJdKgdLdMgE      g      dN               Z*ej                  j                  dg dO      ej                  j                  dP ejB                  d"      d" ejB                  d      g ejD                  d#      d% ejD                  d&      g ejD                  d#      d ejB                  d      g ejD                  d#      dQ ejB                  d      g ejD                  d#      dQg ejB                  d      g ejD                  d#      dR ejB                  d      gdSeeegeeegeeegeeegeeegee+egdSfg d2g dTdAeeegeeegdAfg dUg dVdAeeegeeegdAff      dW               Z,ej                  j                  dg dX      dY        Z-ej                  j                  dZdd[d\gd"dgdd]ggd^fd_d[d\gd"dgdd]ggd<gd`fg      da        Z.ej                  j                  dZddQd"d<difddQd"d<gifdd(d"gdQgd"gd<ggdbfd_d(d"gdQgd"gd<ggd<gd<gdcfddQd"idQd<igfddQd"idQd<idfg      dd        Z/de Z0df Z1y<)gTestDataFrameToDictc                    t        d      }t        ||g||gd      }t        ||gddgd      }||d||dg}|dd|ddg}|j                  d      |k(  sJ |j                  d      |k(  sJ t        ||gd      t        ||gd	      d}t        ||gd      t        ddgd	      d}t	        j
                  |j                  d
      |       t	        j
                  |j                  d
      |       ddg||g||ggdd	gd}ddg|dg|dggdd	gd}	t	        j
                  |j                  d      |       t	        j
                  |j                  d      |	       y )N20130101AB      recordsorientr   namer   seriesr   )indexdatacolumnssplit)r   r   to_dictr   tmassert_dict_equal)
selftsmp	test_datatest_data_mixedexpected_recordsexpected_records_mixedexpected_seriesexpected_series_mixedexpected_splitexpected_split_mixeds
             ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_to_dict.pytest_to_dict_timestampz*TestDataFrameToDict.test_to_dict_timestamp   s   
 $T4Ld|DE	#4,aV$DE"&T2$T4JK(,1"5T7J!K  	 26FFFF&&i&8<RRRR t3/t3/

 t3/AS)!

 	Y..h.?Q
##8#46K	

 VD\D$<0Sz
 VAYq	*Sz 
 	Y..g.>O
##7#35I	
    c                     t        ddgddgdddg      }d}t        j                  t        |	      5  |j	                  d
       d d d        y # 1 sw Y   y xY w)Nr   r   g      ?g      ?abr   r   z1DataFrame index must be unique for orient='index'matchr   r   r   pytestraises
ValueErrorr"   r%   dfmsgs      r/   /test_to_dict_index_not_unique_with_index_orientzCTestDataFrameToDict.test_to_dict_index_not_unique_with_index_orientG   sW     aV3+6sCjIA]]:S1 	'JJgJ&	' 	' 	's   AAc                     t        dddgi      }d}t        j                  t        |      5  |j	                  d       d d d        y # 1 sw Y   y xY w)Nr   r   r   z orient 'xinvalid' not understoodr7   xinvalidr   r9   r=   s      r/   test_to_dict_invalid_orientz/TestDataFrameToDict.test_to_dict_invalid_orientO   sJ    aV}%0]]:S1 	*JJjJ)	* 	* 	*   A		Ar   )dlrspsic                     t        dddgi      }t        j                  t        d      5  |j	                  |       d d d        y # 1 sw Y   y xY w)Nr   r   r   znot understoodr7   r   r9   )r%   r   r>   s      r/    test_to_dict_short_orient_raisesz4TestDataFrameToDict.test_to_dict_short_orient_raisesU   sH     aV}%]]:-=> 	&JJfJ%	& 	& 	&s   AAmappingc                    dddddddd}t        |      j                  |	      }|j                         D ]*  \  }}|j                         D ]  \  }}|||   |   k(  rJ  , t        |      j                  d
|	      }|j                         D ]6  \  }}|j                         D ]  \  }}|||   t        |      dz
     k(  rJ  8 t        |      j                  d|	      }|j                         D ]*  \  }}|j                         D ]  \  }}|||   |   k(  rJ  , t        |      j                  d|	      }ddgg dddgddgt        j
                  dggd}t        j                  ||       t        |      j                  d|	      }ddddddt        j
                  ddg}	t        |t              sJ t        |      dk(  sJ t        ||	      D ]  \  }
}t        j                  |
|        t        |      j                  d      }|j                         D ]*  \  }}|j                         D ]  \  }}|||   |   k(  rJ  , t        |      }||j                  d      |d<   |j                  d      }|j                         }||j                  d      |d<   |j                         D ]*  \  }}|j                         D ]  \  }}|||   |   k(  rJ  , y )Nr   r   )12rO   rP   3)rO   rP   rQ   r   intolistr   r!   r   r         ?       @)r    r   r   r      r   r   duped)r   r"   itemsintnpnanr#   r$   
isinstancerT   lenzipr    copy)r%   rM   r'   recons_datakvk2v2r-   r)   leftrightr>   	comp_datas                 r/   test_to_dictz TestDataFrameToDict.test_to_dict\   s7    !"*s31OP	  	*222@OO% 	0DAq'') 0B[^B////0	0  	*2262HOO% 	9DAq'') 9B[^CGaK88889	9  	*228'2JOO% 	0DAq'') 0B[^B////0	0  	*2272ISz$3Z#sbffc];

 	[.9	*22972KC C &&s#

 +t,,,;1$$${,<= 	.KD%  u-	.  	*227;OO% 	0DAq'') 0B[_Q////0	0 y!A'7jj)NN$	&rzz!}5	'OO% 	0DAq'') 0B[_Q////0	0r1   c                    t        t        j                  j                  d      j	                  d            }dj                  ddg      }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nr   )rW   rW   |z unsupported type: <class 'list'>z1to_dict\(\) only accepts initialized defaultdictsr7   rR   )
r   r[   randomdefault_rngstandard_normaljoinr:   r;   	TypeErrorr"   )r%   rM   r>   r?   s       r/   test_to_dict_errorsz'TestDataFrameToDict.test_to_dict_errors   st     ryy,,Q/??GHhh2D
 ]]9C0 	%JJGJ$	% 	% 	%s   &BBc                     t        g dgg d      }t        j                  t              5  |j	                          d d d        y # 1 sw Y   y xY w)Nr   r   rW   )r4   r4   r5   r    )r   r#   assert_produces_warningUserWarningr"   )r%   r>   s     r/   test_to_dict_not_unique_warningz3TestDataFrameToDict.test_to_dict_not_unique_warning   s>     	{O<''4 	JJL	 	 	s   AAzignore::UserWarningzorient,expectedrT   r      rW      r   dict)r   r   c                 ^    t        g dg dgg d      }|j                  |      }||k(  sJ y )Nrs   )   rx   ry   )r   r   r   rt   r   r"   r%   r   expectedr>   results        r/   test_to_dict_not_uniquez+TestDataFrameToDict.test_to_dict_not_unique   s1     	9-GF#!!!r1   zorient,item_getterc                     | |   |   S N rE   colidxs      r/   <lambda>zTestDataFrameToDict.<lambda>       3 r1   r   c                     | |   |   S r   r   r   s      r/   r   zTestDataFrameToDict.<lambda>   s    AcF3K r1   c                     | |   |   S r   r   r   s      r/   r   zTestDataFrameToDict.<lambda>   r   r1   r!   c                 <    | d   |   | d   j                  |         S )Nr   r    r6   r   s      r/   r   zTestDataFrameToDict.<lambda>   s"    !F)C.99K9KC9P*Q r1   r   c                     | |   |   S r   r   r   s      r/   r   zTestDataFrameToDict.<lambda>   s    !C&+ r1   c                     t        ddgddgd      }|j                  |      }t         ||dd      t              sJ t         ||d	d      t              sJ y )
Nr   r   g?g?r3   r   r4   r   r5   )r   r"   r]   rZ   float)r%   r   item_getterr>   r   s        r/   test_to_dict_box_scalarsz,TestDataFrameToDict.test_to_dict_box_scalars   s]     aV3*566*+fc15s;;;+fc15u===r1   c                    t        dddddddt        j                        ft        dddd	d
ddt        j                        fg}t        t	        |      dg      }|j                  d      }dt        dt        j                        idt        dt        j                        ig}t        j                  |d   |d          t        j                  |d   |d          y )Ni           5   r   iYX )tzinfo   ry      ir  rE   rt   r   r   z2017-11-18 21:53:00.219225+0000)tzz2017-11-18 22:06:30.061810+0000r   )	r   pytzutcr   rT   r"   r   r#   r$   )r%   r   r>   r   r   s        r/   test_to_dict_tzz#TestDataFrameToDict.test_to_dict_tz   s     dBBAvdhhGIdBB2uTXXFH
 tDzC519-)=$((KL)=$((KL
 	VAY4
VAY4r1   zinto, expectedr   rU   int_col	float_colrV         @)r   r   r   r   c                     t        g dg dd      }|j                  d|      }ddg}t        j                  |d      |   }t        j                  |d      |   }t        j                  ||       y )	Nrs   rU   rV   r   r   r   )r   rS   r   r   r   )r   r"   	from_dictr#   assert_frame_equal)r%   rS   r   r>   r   colss         r/   test_to_dict_index_dtypesz-TestDataFrameToDict.test_to_dict_index_dtypes   sn    N 9?KL76;'$$VG<TB&&x@F
fh/r1   c                     t        t        d      D ci c]  }t        |      |g c}      }t        |j	                  d      d   j                               }t        |j                        }||k(  sJ y c c}w )Nrx   r   r   )r   rangestrsetr"   keysr    r%   rJ   r>   r   r   s        r/   test_to_dict_numeric_namesz.TestDataFrameToDict.test_to_dict_numeric_names  sf    U1X6A67RZZ	*1-2245rzz?!!! 7s   A6c                     t        t        d      D ci c]
  }d|d|g c}      }|j                  d      d   }t        d      D ci c]	  }d|d| }}||k(  sJ y c c}w c c}w )N   A_rE   r   r   )r   r   r"   r   s        r/   test_to_dict_widez%TestDataFrameToDict.test_to_dict_wide  sv    5:>a2aUqc)>?I&q)+0:6ab1JM66!!! ?6s   A"
A'z
data,dtype)TTFi  i    r   rs   )XYZc                 p    t        d|i      }|j                  d      }t        fd|D              sJ y )Nr4   r   r   c              3   >   K   | ]  }t        |d          u   yw)r4   N)type).0recorddtypes     r/   	<genexpr>z@TestDataFrameToDict.test_to_dict_orient_dtype.<locals>.<genexpr>4  s     >&4s$->s   )r   r"   all)r%   r   r   r>   rE   s     `  r/   test_to_dict_orient_dtypez-TestDataFrameToDict.test_to_dict_orient_dtype  s7    ( T{#JJiJ(>A>>>>r1   zdata,expected_dtypei皙?Tz
2005-02-25c                 v    t        d|idg      }|j                  d      }t        |d   d         }||u sJ y )Nr4   r   r6   r   r   )r   r"   r   )r%   r   expected_dtyper>   rE   r   s         r/   ,test_to_dict_scalar_constructor_orient_dtypez@TestDataFrameToDict.test_to_dict_scalar_constructor_orient_dtype6  sE     T{1#.JJiJ(ad3i'''r1   c                 ~    t        dgdgd      }|j                         j                  d      }ddddg}||k(  sJ y )NrU   g      "@r3   r   r   )r   r4   r5   )r   reset_indexr"   )r%   r>   r   r   s       r/    test_to_dict_mixed_numeric_framez4TestDataFrameToDict.test_to_dict_mixed_numeric_frameH  sI    cU#/0!)))4c45!!!r1   Naabbccr   r3   )r4   cn1n2)namesr    xyz)r   r   )r   r   z1z2c                     t        j                  ddgddgg||      }t        j                  |j                  d      d      }t	        j
                  ||       y )Nr   rW   r   r|   )r    r   tightr   )r   from_recordsr   r"   r#   r   )r%   r   r    r>   	roundtrips        r/   test_to_dict_orient_tightz-TestDataFrameToDict.test_to_dict_orient_tightO  sY    * ##VaV

 ''

'
(B7S	
b),r1   )rz   rT   r!   r   r   r   zdata,expected_typesr4   )r4   )r4   r5   r   rE   ef)r   g@ffffff
@)r   hellorW   )r   worldr   c                   	 t        |      }|j                  |      	|dk(  rd 	j                         D        }nd|dk(  rd 	j                         D        }nG|dv r	fd	d   D        }n4|dk(  rd	 t        	      D        }n|dk(  rd
 	j                         D        }D ](  \  }}}|||   |   k(  sJ t	        |      ||   |   u r(J  y )Nrz   c              3   \   K   | ]$  \  }}|j                         D ]  \  }}|||f  & y wr   rY   )r   keyindex_value_maprJ   values        r/   r   zHTestDataFrameToDict.test_to_dict_returns_native_types.<locals>.<genexpr>  sD      "(C / 5 5 7" Au C""   *,rT   c              3   R   K   | ]  \  }}t        |      D ]  \  }}|||f  ! y wr   	enumerate)r   r   valuesrJ   r   s        r/   r   zHTestDataFrameToDict.test_to_dict_returns_native_types.<locals>.<genexpr>  s@      "C )& 1" Au C""s   %'>   r!   r   c              3   f   K   | ](  }t        d          D ]  \  }}||d   |   |   f  * yw)r    r   Nr   )r   rJ   jr   r   s       r/   r   zHTestDataFrameToDict.test_to_dict_returns_native_types.<locals>.<genexpr>  sQ      "'y(9:" As C*1-."."s   .1r   r   c              3   \   K   | ]$  \  }}|j                         D ]  \  }}|||f  & y wr   r   r   rJ   r   r   r   s        r/   r   zHTestDataFrameToDict.test_to_dict_returns_native_types.<locals>.<genexpr>  A      "Av"(,,." C C""r   c              3   \   K   | ]$  \  }}|j                         D ]  \  }}|||f  & y wr   r   r   s        r/   r   zHTestDataFrameToDict.test_to_dict_returns_native_types.<locals>.<genexpr>  r   r   )r   r"   rY   r   r   )
r%   r   r   expected_typesr>   assertion_iteratorrJ   r   r   r   s
            @r/   !test_to_dict_returns_native_typesz5TestDataFrameToDict.test_to_dict_returns_native_typesm  s   d t_F#V",2LLN"
 v"#)<<>"
 ))""
 y "!*6!2"
 w"!'" 0 	9MAsEDIaL(((;."5a"8888	9r1   )rz   rT   r   r   r   c                     t        ddgddgdddg      }d	}t        j                  t        |
      5  |j	                  |d       d d d        y # 1 sw Y   y xY w)Nr   r   rW   r|   col1col2row1row2r6   z?'index=False' is only valid when 'orient' is 'split' or 'tight'r7   Fr   r   r9   )r%   r   r>   r?   s       r/   test_to_dict_index_false_errorz2TestDataFrameToDict.test_to_dict_index_false_error  sZ     AA7?OPO]]:S1 	3JJfEJ2	3 	3 	3s   AAzorient, expectedr   r   r|   )r    r   r   )r    r   column_namesc                     t        ddgddgdddg      }|j                  |d	
      }t        j                  ||       y )Nr   r   rW   r|   r   r   r   r6   Fr   )r   r"   r#   r$   r~   s        r/   test_to_dict_index_falsez,TestDataFrameToDict.test_to_dict_index_false  sD      AA7?OP67
VX.r1   )r   r    r   )r   r    r   index_namesr   c                 `    t        ddt        gid      }|j                  |      }||k(  sJ y )Nr4   r   Int64r   r   )r   r   r"   r~   s        r/   test_to_dict_na_to_nonez+TestDataFrameToDict.test_to_dict_na_to_none  s6    , aW~W56*!!!r1   c                     t        t        ddgd      dd      }|j                  d      }t        |d   d	   t              sJ t        t        dt
        gd      dd      }|j                  d      }t        |d   d	   t              sJ y )
Nr   r   r   r   )r4   r   r   r   r   r4   )r   r   r"   r]   rZ   r   )r%   r>   r   s      r/   !test_to_dict_masked_native_pythonz5TestDataFrameToDict.test_to_dict_masked_native_python  s    VQF':CD9-&)C.#...VQG7;!DE9-&)C.#...r1   c                     t        dg di      }d}t        j                  t        |      5  |j	                  di        d d d        y # 1 sw Y   y xY w)Nr4   rs   zpStarting with pandas version 3.0 all arguments of to_dict except for the argument 'orient' will be keyword-only.r7   r   )r   r#   ru   FutureWarningr"   r=   s      r/   !test_to_dict_pos_args_deprecationz5TestDataFrameToDict.test_to_dict_pos_args_deprecation  sP    Y'(7 	 ''SA 	&JJy"%	& 	& 	&rD   )2__name__
__module____qualname__r0   r@   rC   r:   markparametrizerL   rz   r   rT   r   ri   rq   rw   filterwarningsr   r   r   r   r   r   boolr   r   r   rZ   r   r   r[   uint64int64float64bool_
datetime64r   r   r   r
   from_tuplesr   tupler   r   r   r   r  r  r   r1   r/   r   r      sF   +
Z'* [[X'FG& H& [[Y{4/@+(NO90 P90v [[Y{B(?@
% A
% [[ 56[[Aq6A/0qQ<!l;<	
" 7" [[457845QR56	
	>	>5" [[ #$37#$37#$37 <=<=<=	 D!'(s;'(s;'(s;
'	
!D0E!D0"" [[ $' T1a(T1a(T1a(
  e$c"	
"?#"? [[RYYq\3RXXb\3RZZ_e$RXXd^T"R]]<()4	
	(	(" [[4,4,T*"J""J
#;<"J""J
#;D$<P	
	 [[#J3*3*3'"J""Hh#78"J""Hh#7d|L	
	-		(- [[> [[ #"((1+q("((1+6$"**S/3


3@$"**S/1hbhhqk:$"**S/3<$"**S/C5("((1+>$"**S/68288A;? sC..c*s+,( #(
 sC.	 ),
 sCe,	;'	
*V&9W*	^&9P [[X'UV3 W3 [[66"2aVaV<LMN &/VaV,%)F
	
// [[cqT?+,cAt9%&AC5A3-PQV #uS4&M$(6%)F	 #qC;/03(T{34	
(")("/&r1   r   valr   r   2020r   c                 \    t        d| gi      }|j                  d      }d| gi}||k(  sJ y )Nr4   rT   r   r}   )r  r>   r   r   s       r/   test_to_dict_list_pd_scalarsr    s=    
 
C#<	 BZZvZ&FcU|HXr1   )collectionsr   r   r   numpyr[   r:   r   pandasr   r   r   r	   r
   r   r   r   r   pandas._testing_testingr#   r   r	  r
  r  r   r1   r/   <module>r     s       
 
 
 s& s&l 	IdAq!9Q<!QPr1   