o
    7?e&V                     @   s
  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
 d dlmZ d dlmZ ejddgddd Zd	d
 Zdd Zdd Zejdddgdd Zdd Zejddi d fdddidfdi dfdddidfgdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zejd+d,d,ejgd,d-ejggd.d/ Z d0d1 Z!d2d3 Z"d4d5 Z#ejd6ed7d8 Z$d9d: Z%d;d< Z&ejd=e'd>d? gd@dA Z(dBdC Z)ejdDdEdFgdGdH Z*dIdJ Z+dKdL Z,ejdMdEi fdFddifdFddifgdNdO Z-dPdQ Z.ejdReddge/d dSgdTeej0ddggdd dUdVdWfej1dXdYeej0ddggdXd dUdVdWfgejdZddgd[d\ Z2ejd]dee3dXdVdWfd^gd_d` Z4dadb Z5ejdcej6gddgfej6ej7gdddegfe8ej6gddgfe8ej6ej7gdddegfgejdfdEi gdFddigdFddiggdgdh Z9ejdidjej6iej6ej7dkedjej6ieej6ej7dkgejdfdEi gdFddigdFddiggdldm Z:ejdcej;gdngfej<ej;gdodngfe8ej;gdngfe8ej<ej;gdodngfgdpdq Z=ejdrdsd? ged?g dtifdud? gedvgd?gdTfgdwdx Z>ejdidjej;iej;ej?dkedjej;ieej;ej?dkgdydz Z@ejdrdd{d? ieg dteAdgd| eBd|gdTfdd}d? iedvgdgdTfgd~d ZCdd ZDdd ZEdd ZFdS )    N)	DataFrameIndex
MultiIndexSeriesconcattimedelta_range)series_transform_kernelsFcompat)paramsc                 C   s   | j S N)param)request r   e/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/pandas/tests/apply/test_series_apply.pyby_row   s   r   c                    sb   t tdddd} fdd}|j| d}|dd	 }t|| t g d
}t|| d S )Nz	1 day 1 s   h)periodsfreqc                    s    r|   S | j  S r   )total_secondsdtxr   r   r   f   s   z(test_series_map_box_timedelta.<locals>.fr   c                 S      |   S r   )r   r   r   r   r   <lambda>       z/test_series_map_box_timedelta.<locals>.<lambda>)g    @g    @g    @)r   r   applymaptmassert_series_equal)r   serr   resultexpectedr   r   r   test_series_map_box_timedelta   s   r%   c                 C   s  | j tj|d}tjdd t| }W d    n1 sw   Y  t|| | j tj|d}t| }t|| ttdt	g ddd}|j dd	 |d}t|| ||us\J |j
|j
u sdJ |j|jkslJ |j|jkstJ tg d
tjd}|j dd	 |d}t|| d S )Nr   ignoreallfoobarname)dtyper,   indexc                 S      | S r   r   r   r   r   r   r   3       ztest_apply.<locals>.<lambda>      r   r.   r-   c                 S   r/   r   r   r   r   r   r   r   >   r0   )r   npsqrterrstater    r!   expr   objectr   r.   r-   r,   Zfloat64)datetime_seriesr   r#   r$   srsr   r   r   
test_apply&   s$   
r=   c                  C   s<   t ddg} dd }| j|dd}| |}t|| d S )Nr2   r3   c                 S   s   | | d fS Nr2   r   r   r   r   r   r   E      z3test_apply_map_same_length_inference_bug.<locals>.fr	   r   )r   r   r   r    r!   )r;   r   r#   r$   r   r   r   (test_apply_map_same_length_inference_bugB   s
   
r@   convert_dtypeTc                 C   s^   t tjdd}dd }tt |j|| dd W d    d S 1 s(w   Y  d S )Nr3   
   c                 S   s   | dkr| S t jS )Nr   )r5   nanr   r   r   r   funcQ   s   z1test_apply_convert_dtype_deprecated.<locals>.funcr	   )rA   r   )	r   r5   randomZdefault_rngZstandard_normalr    assert_produces_warningFutureWarningr   )rA   r"   rD   r   r   r   #test_apply_convert_dtype_deprecatedM   s
   "rH   c                  C   sD   t dg} | jtjdd}|d ddgksJ t|d ts J d S )Nzfoo,bar),argsr   r)   r*   )r   r   strsplit
isinstancelist)r;   r#   r   r   r   test_apply_argsX   s   
rP   zargs, kwargs, incrementr   ar2   )r3   r       )r2   cr3      c                 C   sz   ddd}t ddg}d}tjt|d |j|dg| R i |}W d    n1 s,w   Y  || }t|| d S )	Nr   c                 S   s   | | d|  d|  S )NrB   d   r   )r   rQ   brS   r   r   r   r   f   s   ztest_agg_args.<locals>.fr2   r3   zhin Series.agg cannot aggregate and has been deprecated. Use Series.transform to keep behavior unchanged.match)r   r   r   )r   r    rF   rG   aggr!   )rK   kwargs	incrementr   r;   msgr#   r$   r   r   r   test_agg_args`   s   
r]   c                  C   s   t g d} ddd}ddd}d	}tjt|d
 | j|dddd W d    n1 s-w   Y  tjt|d
 | j||gdddd W d    n1 sOw   Y  tjt|d
 | j||ddddd W d    d S 1 ssw   Y  d S )Nr1   r2   r   c                 S      | | | S r   r   )r   rQ   rS   r   r   r   foo1x   r?   z.test_agg_mapping_func_deprecated.<locals>.foo1r3   c                 S   r^   r   r   )r   rV   rS   r   r   r   foo2{   r?   z.test_agg_mapping_func_deprecated.<locals>.foo2z+using .+ in Series.agg cannot aggregate andrW   r      )rS   )rQ   rV   )r2   r   )r3   r   )r   r    rF   rG   rY   )r;   r_   r`   r\   r   r   r    test_agg_mapping_func_deprecatedt   s   

"rb   c                 C   s   t tjddd}dd }| s2d}tjt|d |j|| d W d    d S 1 s+w   Y  d S |j|| d}||}t	|| d S )	Nz1/1/2000rB   )r   c                 S   s   | j | j| jfS r   )hourdaymonthr   r   r   r   rD      s   z2test_series_apply_map_box_timestamps.<locals>.funcz&Series' object has no attribute 'hour'rW   r   )
r   pd
date_rangepytestraisesAttributeErrorr   r   r    r!   )r   r"   rD   r\   r#   r$   r   r   r   $test_series_apply_map_box_timestamps   s   

rk   c                  C   sd  t dt dg} t| }|jdksJ |jdd dd}tdd	g}t|| t jdd
dt jdd
dg} t| }|jdksCJ |jdd dd}tddg}t|| t dt dg} t| }|jdksmJ |jdd dd}tddg}t|| t jdddt jdddg} t| }|jdksJ |jdd dd}tddg}t|| d S )N
2011-01-01
2011-01-02zdatetime64[ns]c                 S      t | j d| j d| j S N_type__name__rd   tzr   r   r   r   r          z test_apply_box.<locals>.<lambda>r	   r   ZTimestamp_1_NoneZTimestamp_2_Nonez
US/Eastern)rt   zdatetime64[ns, US/Eastern]c                 S   rn   ro   rq   r   r   r   r   r      ru   zTimestamp_1_US/EasternzTimestamp_2_US/Easternz1 daysz2 daysztimedelta64[ns]c                 S      t | j d| j S ro   )rr   rs   daysr   r   r   r   r          ZTimedelta_1ZTimedelta_2Mr   z	Period[M]c                 S   rv   ro   )rr   rs   Zfreqstrr   r   r   r   r      rx   ZPeriod_M)	rf   	Timestampr   r-   r   r    r!   Z	TimedeltaZPeriod)valsr;   resr8   r   r   r   test_apply_box   s4   r~   c                    s   t jddddd}t|dd}|jdd	  d
}t jddddd}t|dd}t|| |j fdd	 d
}tttddg d rJdndd}t||  fdd}|j| d
} rttdgd dd}t|| d S |dk d S )Nrl   rm   Hrz   z
Asia/TokyoXXr+   c                 S   s   | t j  S r   )rf   offsetsZDayr   r   r   r   r          z'test_apply_datetimetz.<locals>.<lambda>r   z
2011-01-03c                    s    r| j S | jj S r   )rc   r   r   r   r   r   r      s       r   int64Zint32r,   r-   c                    s    rt | jS t | jjS r   )rL   rt   r   r   r   r   r   r      s   z test_apply_datetimetz.<locals>.f   )	rf   rg   tz_localizer   r   r    r!   rO   range)r   valuesr;   r#   Z
exp_valuesr8   r   r   r   r   test_apply_datetimetz   s&   $r   c                 C   s,  t jtdtddd}t|dtdd}| sHd}tjt|d	 |jd
d | d W d    n1 s4w   Y  |jdd | ddksFJ d S |jdd | d}t jtdtddd}t|dtdd}t	|| t
|j|j |dd }tdgd dtdd}t	|| |jtksJ d S )NZABBABCDZDCBAT)
categoriesZorderedr   Zabcdefg)r,   r.   z&Series' object has no attribute 'lowerrW   c                 S   r   r   lowerr   r   r   r   r      r   z(test_apply_categorical.<locals>.<lambda>r   c                 S      dS NAr   r   r   r   r   r      r0   r   c                 S   r   r   r   r   r   r   r   r      r   ZabbabcdZdcbac                 S   r   r   r   r   r   r   r   r      r0      )rf   ZCategoricalrO   r   rh   ri   rj   r   r    r!   Zassert_categorical_equalr   r-   r9   )r   r   r"   r\   r#   r8   r   r   r   test_apply_categorical   s$   r   seriesz1-1z1-2c                 C   s   t | dd}|s-d}tjt|d |jdd |d W d    d S 1 s&w   Y  d S |jdd |d}|t}t d	d	tjgdd}|t}t	
|| d S )
Ncategoryr-   z('Series' object has no attribute 'split'rW   c                 S      |  dd S N-r   rM   r   r   r   r   r      r   z8test_apply_categorical_with_nan_values.<locals>.<lambda>r   c                 S   r   r   r   r   r   r   r   r      r   1)r   rh   ri   rj   r   Zastyper9   r5   rC   r    r!   )r   r   r;   r\   r#   r$   r   r   r   &test_apply_categorical_with_nan_values   s   


r   c                 C   s:   t g tjdddtd}|jdd | d}t|| d S )Nz
2018-01-01r   )startr   r4   c                 S   r/   r   r   r   r   r   r   r   	  r0   zEtest_apply_empty_integer_series_with_datetime_index.<locals>.<lambda>r   )r   rf   rg   intr   r    r!   )r   r;   r#   r   r   r   3test_apply_empty_integer_series_with_datetime_index  s   r   c                  C   sh   t tg ddgd} t g ddgd}dd }|d j|| fd}tg d	dd
d}t|| d S )N)r2   r3   r   ra      Numbers)columns)r3   r   r3   r2   r3   ZIndicesc                 S   s   |d j |  }|S )Nr   )Ziloc)Z	targetRowZtargetDFvalr   r   r   retrieve  s   z+test_apply_dataframe_iloc.<locals>.retrieverJ   )r   ra   r   r3   r   uint64r   )r   r5   r   r   r   r    r!   )ZuintDFZindexDFr   r#   r$   r   r   r   test_apply_dataframe_iloc  s   r   c                 C   sF  t jdd t | }t | }| jt j|d}| }t|| | jt jg|d}|  }dg|_	t
|| | jdg|d}t
|| t||gdd}ddg|_	| jt jt jg|d}t
|| t||gdd}dd	g|_	| d
}| jt jt jd|d}t||| W d    d S 1 sw   Y  d S )Nr&   r'   r   r6   r2   Zaxisabsoluter)   r*   r   )r)   r*   )r5   r7   r6   absr   copyr    r!   Zto_framer   assert_frame_equalr   ZunstackrenameZreindex_like)string_seriesr   Zf_sqrtZf_absr#   r$   r   r   r   test_transform  s,   



"r   opc                 C   s\  | dv r|j tjj|  dd tdtg }| dv r"t}d}n	t}d	dd	g}tj
||d
 || dg W d    n1 sDw   Y  tj
||d
 || dd W d    n1 scw   Y  tj
||d
 || gdgd W d    n1 sw   Y  tj
||d
 || dg| gd W d    d S 1 sw   Y  d S )N)ZffillZbfillpadZbackfillshiftz is successful on any dtype)reasonr   )ZfillnaZngroupTransform function failed|z4not supported between instances of 'type' and 'type'zunsupported operand typerW   r   r   B)nodeZ
add_markerrh   markZxfailr   r9   
ValueError	TypeErrorjoinri   	transform)r   r   r"   errorr\   r   r   r   test_transform_partial_failure@  s4   "r   c                  C   s(  dd } dd }t dtg }d}tjt|d || |g W d    n1 s*w   Y  tjt|d ||| d W d    n1 sIw   Y  tjt|d ||g| gd W d    n1 sjw   Y  tjt|d || |g| gd W d    d S 1 sw   Y  d S )	Nc                 S   r/   r   r   r   r   r   r   noopf     z7test_transform_partial_failure_valueerror.<locals>.noopc                 S   s   t r   )r   )rp   r   r   r   
raising_opi  r   z=test_transform_partial_failure_valueerror.<locals>.raising_opr   r   rW   r   )r   r9   rh   ri   r   r   )r   r   r"   r\   r   r   r   )test_transform_partial_failure_valueerrord  s    "r   c                  C   sr   t tdddd} | ddg}t ddgddgdd	}t|| | d
di}t dgd
gdd	}t|| d S )N   r   r   )r-   r,   minmaxr   r   )r.   r,   r)   )r   r   rY   r    r!   r;   r#   r$   r   r   r   	test_demo|  s   r   rD   c                 C      t | S r   )rL   r   r   r   r   r     r   r   c                 C   s@   | j ||d}|r| |}t|| d S |t| ksJ d S )Nr   )r   r   r    r!   rL   )r   rD   r   r#   r$   r   r   r   (test_apply_map_evaluate_lambdas_the_same  s
   
r   c                 C   s   t t | dd }W d    n1 sw   Y  t|tr)t|t| ks+J t t | t}W d    n1 s@w   Y  t|trRt|t| ksTJ d S )Nc                 S   r   r   )rr   r   r   r   r   r     r   z+test_agg_evaluate_lambdas.<locals>.<lambda>)r    rF   rG   rY   rN   r   lenrr   )r   r#   r   r   r   test_agg_evaluate_lambdas  s   "r   op_namerY   r   c                 C   s   d}|dkrt nd }tj||d t| |dd }W d    n1 s%w   Y  t| | d d}t|| tjt |d | dd }W d    n1 sRw   Y  t|| d S )	Nzcannot aggregaterY   rW   c                 S      t | | d gddgdS Nr3   r   x^2r.   r   r   r   r   r   r         z)test_with_nested_series.<locals>.<lambda>r3   )r   r   c                 S   r   r   r   r   r   r   r   r     r   )rG   r    rF   getattrr   r   rY   )r:   r   r\   warningr#   r$   r   r   r   test_with_nested_series  s   r   c                 C   s<   |   }| dddddd ddd d	d
}t|| d S )Ncountmeanstdr   c                 S   
   |  dS )Ng      ?Zquantiler   r   r   r   r        
 z)test_replicate_describe.<locals>.<lambda>Zmedianc                 S   r   )Ng      ?r   r   r   r   r   r     r   r   )r   r   r   r   z25%z50%z75%r   )Zdescriber   r    r!   )r   r$   r#   r   r   r   test_replicate_describe  s   r   c                 C   s>   |  ddg}t|  |  gddg| jd}t|| d S )Nsumr   r+   )rY   r   r   r   r,   r    r!   )r   r#   r$   r   r   r   test_reduce  s   r   z	how, kwdsc                 C   s   t g d}t|| d	i |}|j}||ksJ t|| g dfi |}t dddd}t|| t|| ddddfi |}t|| d S )
N)r2   r3   Nsize)r   r   r         @       @g      ?r   r   )r   )r   r   r   r    r!   )howkwdsr;   r#   r$   r   r   r   test_non_callable_aggregates  s   r   c                 C   sN   t dgd }|jddd dd g| d}t g dg dd	}t|| d S )
Nra   r   r   c                 S   r   r   r   r   r   r   r   r     r   z3test_series_apply_no_suffix_index.<locals>.<lambda>r   )   r   r   )r   r   r   r   )r   r   r    r!   )r   r;   r#   r$   r   r   r   !test_series_apply_no_suffix_index  s   r   zdti,expl    ,b/ r   r   r   r      Znperawarec                 C   s:   |r	|  dj}n| j}t|dd }t|| d S )NUTCc                 S   s   t ddgS )Nr2   r3   r   r   r   r   r   r     s    zCtest_apply_series_on_date_time_index_aware_series.<locals>.<lambda>)r   r.   r   r   r    r   )Zdtir8   r   r.   r#   r   r   r   1test_apply_series_on_date_time_index_aware_series  s
   r   zby_row, expected)Fr2   c                 C   s:   t jddd}t|jjdd | d}t || d S )Nr   r   r   c                 S   r   r>   r   r   r   r   r   r     r0   zCtest_apply_scalar_on_date_time_index_aware_series.<locals>.<lambda>r   )r    makeTimeSeriesr   r   r.   r   assert_equal)r   r$   r   r#   r   r   r   1test_apply_scalar_on_date_time_index_aware_series  s   r   c                 C   s~   ddg}t |}t|jt j| d}tt|| dtjt jt jg}t |}t|}|jt j| d}tt|| d S )Nz00:00:01z00:00:02r   )	rf   Zto_timedeltar   r   r    r!   r5   rC   ZNaT)r   Zlist_of_valid_stringsrQ   rV   Zlist_of_stringsr"   r   r   r   test_apply_to_timedelta  s   

r   z
ops, namesr   r   zhow, kwargsc           	         s   t  fddt||D }d|_|dkrtnd }dd| d}tj||d t ||fi |}W d    n1 s?w   Y  t|| d S )	Nc                       i | ]	\}}|| qS r   r   .0r,   r   r   r   r   
<dictcomp>4      z/test_apply_listlike_reducer.<locals>.<dictcomp>r   rY   zusing Series.[r   ]rW   )	r   zipr,   rG   r   r    rF   r   r!   )	r   opsnamesr   rZ   r$   warnr\   r#   r   r   r   test_apply_listlike_reducer%  s   r   r   r   r   c           	         s   t  fdd| D } j|_|dkrtnd }d}tj||d t ||fi |}W d    n1 s8w   Y  t|| d S )Nc                    r   r   r   r   r   r   r   r   L  r   z/test_apply_dictlike_reducer.<locals>.<dictcomp>rY   zusing Series.[sum|mean]rW   )r   itemsr,   rG   r    rF   r   r!   )	r   r   r   rZ   r   r$   r   r\   r#   r   r   r   test_apply_dictlike_reducer=  s   r   r6   r   c                    sl   t jdd& t fdd|D dd}||_ j||d}t|| W d    d S 1 s/w   Y  d S )Nr&   r'   c                    s   g | ]}| qS r   r   )r   r   r   r   r   
<listcomp>a  s    z3test_apply_listlike_transformer.<locals>.<listcomp>r2   r   r   )r5   r7   r   r   r   r    r   )r   r   r   r   r$   r#   r   r   r   test_apply_listlike_transformerU  s   "r   zops, expectedc                 C   r/   r   r   r   r   r   r   r   j  r0   r1   c                 C   r   r   r   r   r   r   r   r   k  r   r   c                 C   s*   t g d}|j| |d}t|| d S Nr1   r   r   r   r    r   )r   r$   r   r"   r#   r   r   r   test_apply_listlike_lambdag  s   	r  c                    sn   t jdd' t fdd| D } j|_ j||d}t|| W d    d S 1 s0w   Y  d S )Nr&   r'   c                    r   r   r   r   r   r   r   r     r   z3test_apply_dictlike_transformer.<locals>.<dictcomp>r   )r5   r7   r   r   r,   r   r    r!   )r   r   r   r$   r#   r   r   r   test_apply_dictlike_transformeru  s   "r  c                 C   r/   r   r   r   r   r   r   r     r0   r   c                 C   r   r   r   r   r   r   r   r     r   c                 C   s*   t g d}|j| |d}t|| d S r   r  )r   r   r$   r"   r#   r   r   r   test_apply_dictlike_lambda  s   r  c                 C   s   t dtdittddd}|jdd }t dtjtjgddtjgg dgttdd	dttdddd
}t|| d S )Nr   r   r+   c                 S   s"   t t| d tt| d ddS )Nr2   yr+   )r   r   r   r   r   r   r   r     s   " z0test_apply_retains_column_name.<locals>.<lambda>              ?)r  r  r   r  )r   r.   )	r   r   r   r   r   r5   rC   r    r   )r   Zdfr#   r$   r   r   r   test_apply_retains_column_name  s   r  c                  C   sF   t ddtgg dd} | t}t tttgg dd}t|| d S )Nr   string)rQ   rV   rS   r   )r   floatr   rr   r   rL   r    r!   r   r   r   r   test_apply_type  s   
r  c                  C   sV   t g dg dg} | dd }tddgddgd	d
gtjdgd}t|| d S )Nr1   )ra   r   r   r   c                 S   r   r   r   r   r   r   r   r     r   z6test_series_apply_unpack_nested_data.<locals>.<lambda>r  g      @r   g      @r   g      @r   )r   r2   r3   r   )r   r   r   r5   rC   r    r   )r"   r#   r$   r   r   r   $test_series_apply_unpack_nested_data  s   $r  )Gnumpyr5   rh   Zpandasrf   r   r   r   r   r   r   Zpandas._testingZ_testingr    Zpandas.tests.apply.commonr   Zfixturer   r%   r=   r@   r   ZparametrizerH   rP   r]   rb   rk   r~   r   r   rC   r   r   r   r   r   r   r   rL   r   r   r   r   r   r   r   ZDatetimeIndexrepeatr   r   Zonesr   r   r   r   arrayr   r   r6   r   r   r  r8   r  Zfrom_arraysr   r  r  r  r  r   r   r   r   <module>   s     


*
% 
&
#


	

		
		

		
"

