o
    Ehp                     @   s  d 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
 ejjddZejjddgddggdd	gd
ZddgifZdg diefZg ejdgfedg fejdgfeddgfejdgfeddfejdgfedfejdgfejdddfejdgfedfejddgfedfejddgfedfejddgfedfejddgfeddd fejddgfeddfejddgfedddgfejddgfedddgfejddgfeddgfejedejgfeddfejddgfedddifejddgfed fejddgfed!ddgfejddgfed"ddfejddgfed#fejddgfed$fejddgfed%fejddgfed&fejdgfed'edgfejdgejd(dd)fed*fejdgejd(dd)fed+fejejeed,ejdgd-fejjd.dd/ejeed0fejeeddfejeeddgfejeededgfejd1dgifeddgfejeed2d3fejeejd4d5d6d7fejeejd8d9d:fejeejd;dd<fejeeddgfejeedddgfejeejddgd=fejeejddgd-fejeejdddid=fejeejdd>d d-fejeeddfejeejdd?d@fejeedAdfejeedfejeed#fejeed$fejeed%fejeed&fejeedBfejeedfejeedfejeejdCddDfejeedEfejeedFddfejeedGddfejeedHfejeed'eje fejeedIeje ejfejeedJeje fejejeedKeje fed/ejeejdLdd=fejdgdgdMfejdNdd=fejdgdgdMfejdNddOdPgdQfejeedRfejeedSdfejeedTfejg dUg dVg dWdXfejdYdgd	gdZfejeed[d\d fejejeed]eddgifed/ejeeddfejeed^fejejeed_fejd`gd/ejeedaeje fejeedbfejeedcfejeeddfejeedefejeedffejdgedffejeedgfejeejdhddifejeejdhdjdkgddlfejdejddmejddmgifejdhdndifejdedoedpgifejdhddifejddgied(dqgfed*fejddgie d(gfejd+dqdrfejeed!dgfejeed!edgfejeed!eddgifejeedsdfejeedtdfejeejdudvdwfejddgfedufejddgfejdxdd-fejeejdxdd=fejeej!fejdgej!fejeej"fejdgej"fejeej#fejdgej#fejee$fejdge$fejee%fejdge%fejeedddgfejeedydfejdefedydfejeedzdfejeed{edg d|ifejeed{eg d}fejeed~dfejeeddfejdddgfed~dfejdddgfeddfejddgfedCfejdgd fedfejddgd ifedfejdgd fedfejddgd ifedfejddgfejddddfejefejddddfejddgfede&fejeede&fejddgfedfejeedfejddgde'fedfejdejddge'difedfejddgfedfejeedfejg dfedfejdg difedfejddgfejdddfejeejdddfejdejd(dd)feddfejdg diejd(dd)feddfejdejd(dd)feddfejdg diejd(dd)feddfejdejd(dd)fedddfejdg diejd(dd)fedddfejdejd(dd)feddfejdg diejd(dd)feddfejddgfedfejeedfejddgfededdngfejeededggfejddgfededdngfejeededggfejddgfejdddfejeejdddfejdejd(dddfeddfejdg diejd(dddfeddfejdejd(dd)feddfejdg diejd(dd)feddfejddgfedfejeedfejddgfedfejeedfejdgfeddd fejeeddd fejdgfeddd fejeeddd fejdgfedfejeedfejdgfedfejeedfejdgfedfejeedfejdgfedfejeedfejeedfejeedfejeedfejeedfejeedPfejeedfejeedOfejeedfejeedfejeedfejeedfZ(dd Z)ej*e(dd ddd Z+ejdddd Z,ej-dedejd(dd)edg diejd(dd)gddń Z.ej-dedejd(dd)edg diejd(dd)gddǄ Z/eddɄ Z0ej-dg dˢejj-ddedgfdeddgifedgdfeddgidfedgedgfeddgieddgifedgeddgifeddgiedgfgdd d΍ddЄ Z1ejj-dg edҡedӡeddgeddedbdeddסeddeddڡejdddndۍeddeddedzdeddedߡeddedededdeddeddeddeddedddeddeddeddeddededdejddddeddedededddiededdeddededededededededed ede)d΍dd Z2ejj-ded+eddededdeddeddeddeded	g	e)d΍d
d Z3ej-dg ddd Z4ej-dg ddd Z5ej-dedgdd Z6ej-deddgededdd eddededdd	dedddged dd	gg	ed!d" Z7ej-d#eddgeddgddgdMgej-dedPd$d d%d d&d d'd gd(d) Z8ej-d#eddgeddgddgdMgej-dѐd*d d+d d,d d-d d.d d/d ged0d1 Z9d2d3 Z:dS (4  zG
An exhaustive list of pandas methods exercising NDFrame.__finalize__.
    Nznot implementedreasonab   AB)names)r            Ztake__getitem__Trepeatr
   Zreset_index)dropZto_frameZdrop_duplicatesZ
duplicatedroundrenamec                 C   s   | d S )Nr    xr   r   Blib/python3.10/site-packages/pandas/tests/generic/test_finalize.py<lambda>+   s    r   nameZset_axisZreindexr   ZfillnareplaceshiftZisinZbetweenZisnaZisnullZnotnaZnotnulladd2000periodsZto_timestampZ	to_perioddot)indexzImplement binary finalize)ZmarksZ	transpose)r   r   ZqueryzA == 1evalA + 1ZpythonZengineZselect_dtypesint)ZincludeZassign)r   )columnsc                 C      | S Nr   r   r   r   r   r   [       Zffill)methodZ	set_indexZdropnaZsort_values)ZbyZ
sort_indexnlargestZ	nsmallestZ	swaplevelZcombineZcombine_firstupdateZpivot)r   r   Zpivot_tablemeansum)r$   ZaggfuncstackZexplodeZunstack)r   r   c)r   r      )r
   r      )r   r   CZmelt)Zid_varsZ
value_varsmapc                 C   r%   r&   r   r   r   r   r   r      r'   ZmergeZcorrZcovzignore::RuntimeWarningZcorrwithcountZnuniqueZidxminZidxmaxmodemedianZquantile)numeric_onlyg      ?g      ?)qr6   )daysFz
2022-01-01z
2022-01-02D)ZfreqZ	droplevelpopZsqueezer$   )axisZrename_axisZxsgetZreindex_like)r   r
   r   )r   r   r
   Z
add_prefix_Z
add_suffixr   
   headtailZsample)nr   ZastypecopyZinfer_objectsZdtypeZconvert_dtypes)r   Nr   ZinterpolateZclip)lowerr   Zasfreqh)r   r   r   r   Zat_timez12:00Zbetween_timez13:00last3DZrankwheremasktruncate)ZbeforeZUTC)r   ZtzZ
tz_convertZCETZtz_localizeZdescribeZ
pct_changeZ	transformc                 C      | |    S r&   minr   r   r   r   r   \      c                 C   rK   r&   rL   r   r   r   r   r   `  rN   applyc                 C   r%   r&   r   r   r   r   r   r   b  r'   c                 C   r%   r&   r   r   r   r   r   r   c  r'   ZcumsumZcumminZcummaxZcumprodanyallrM   maxstdZprodsemZskewZkurtc                 C   s.   t d}|t| }|r|dS t| S )Nz'(.*)?'r   )recompilesearchstrgroup)r   Zxprmr   r   r   idfn|  s
   

r[   c                 C   s   t | d S )N)r[   r   r   r   r   r     rN   )paramsidsc                 C   s   | j S )z1
    An NDFrame method returning an NDFrame.
    )param)requestr   r   r   ndframe_method  s   ra   zAignore:DataFrame.fillna with 'method' is deprecated:FutureWarningz'ignore:last is deprecated:FutureWarningc                 C   s:   | \}}}|| }ddi|_ ||}|j ddiksJ d S )Nr   r   )attrs)ra   clsZ	init_argsr(   Zndframeresultr   r   r   test_finalize_called  s
   

re   datac                 C   ^   d}ddi| _ tjt|d | d}|j ddiksJ W d    d S 1 s(w   Y  d S )Nzfirst is deprecatedr   r   matchrG   )rb   tmassert_produces_warningFutureWarningfirstrf   Zdeprecated_msgrd   r   r   r   test_finalize_first  s   

"ro   c                 C   rg   )Nzlast is deprecatedr   r   rh   rG   )rb   rj   rk   rl   rF   rn   r   r   r   test_finalize_last  s   	

"rp   c                  C   sJ   t d tdddgi} d| jd< | jddd}|jddiks#J d S )NZnumexprr   r   r
   r!   r"   )pytestZimportorskippd	DataFramerb   r    Zdfrd   r   r   r   !test_finalize_called_eval_numexpr  s
   

ru   annotate)leftrightbothargsc                 C   s&   dt | d j dt | d j dS )N(r   ,r   ))type__name__r   r   r   r   r     s   & )r^   c                 C   s  |\}}t |tjtjfri |_t |tjtjfri |_|dkr*t |tr*td |dkr8t |tr8td t |tst |ts|dkr|j	ds|dkrht |t
|rh| tjj| dt
| d t |t
|s|dkrt |tjr| tjj| d	d nj|dkrt |tjr| tjj| d	d nR|dkrt |t
|r| tjj| d
t
| d t |t
|s|dkrt |tjr| tjj| d	d n|dkrt |tjr| tjj| d	d |dv rt |tsddi|_|dv rt |tsddi|_|tjtjtjtjtjtjfv }|r;t |tjr;t |tjr;|j|ddd\}}n|rVt |tjrVt |tjrV|j|ddd\}}|||}|jddikseJ d S )Nrw   z)left is an int and doesn't support .attrsrx   z*right is an int and doesn't support .attrsry   rz0 doesn't work when right has attrs and both are r   z= doesn't work when the objects are different Series has attrsz/ doesn't work when left has attrs and both are >   ry   rw   r   r   >   ry   rx   F)r;   rB   )
isinstancerr   rs   Seriesrb   r#   rq   skipr   
startswithr~   ZapplymarkermarkxfailoperatoreqnegtgeltleZalign)r`   rz   rv   Zall_binary_operatorsrw   rx   Zis_cmprd   r   r   r   test_binops  s   



""
r   r(   
capitalizecasefoldcatcontainsencodezutf-8endswithextractz(\w)(\d))expandfindfindallr   lenljustrD   lstripri   z\w	normalizeZNFCZpad	partitionrfindrindexrjust
rpartitionrstripsliceZslice_replace)replr   stripswapcase	translateupperwrapzfillisalnumisalphaisdigitisspaceislowerisupperistitle	isnumeric	isdecimalZget_dummiesc                 C   s6   t dg}ddi|_| |j}|jddiksJ d S )NZa1r   r   )rr   r   rb   rX   r(   srd   r   r   r   test_string_method/  s   6

r   strftimez%YZfloorZceilZ
month_nameZday_namec                 C   >   t t jddd}ddi|_| |j}|jddiksJ d S Nr   r   r   r   r   )rr   r   
date_rangerb   dtr   r   r   r   test_datetime_methodk  s   

r   attr)datetimeZtimetzZyearZmonthZdayZhourZminutesecondZmicrosecondZ
nanosecondZ	dayofweekZday_of_weekZ	dayofyearZday_of_yearZquarterZis_month_startZis_month_endZis_quarter_startZis_quarter_endZis_year_startZis_year_endZis_leap_yearZdaysinmonthZdays_in_monthc                 C   @   t t jddd}ddi|_t|j| }|jddiksJ d S r   )rr   r   r   rb   getattrr   r   r   rd   r   r   r   test_datetime_property  s   
r   )r8   ZsecondsZmicrosecondsZnanosecondsZ
componentsc                 C   r   r   )rr   r   timedelta_rangerb   r   r   r   r   r   r   test_timedelta_property  s   
r   Ztotal_secondsc                 C   r   r   )rr   r   r   rb   r   r   r   r   r   test_timedelta_methods  s   

r   Zadd_categoriesr.   Z
as_orderedZas_unorderedc                 C   s
   t | dS )NZcodes)r   r   r   r   r   r        
 Zremove_categoriesZremove_unused_categoriesZrename_categories)r   r   Zreorder_categoriesZset_categoriesc                 C   s<   t jddgdd}ddi|_| |j}|jddiksJ d S )Nr   r   categoryrC   r   )rr   r   rb   r   r   r   r   r   test_categorical_accessor  s   

r   objc                 C   s   |  dd S )Nc                 S   r%   r&   r   )yr   r   r   r     r'   z<lambda>.<locals>.<lambda>)rO   r   r   r   r   r         c                 C   
   |  dS )Nr,   Zaggr   r   r   r   r     r   c                 C   r   )Nr+   r   r   r   r   r   r     r   c                 C   r   )Nr5   r   r   r   r   r   r     r   c                 C   s6   ddi| _ || jddgdd}|j ddiksJ d S )Nr   r   r   F)Z
group_keysrb   groupbyr   r(   rd   r   r   r   test_groupby_finalize  s   
r   c                 C   s   |  ddgS )Nr,   r3   r   r   r   r   r   r     r   c                 C   r   )NrS   r   r   r   r   r   r     r   c                 C   r   )Nvarr   r   r   r   r   r     r   c                 C   r   )NrT   r   r   r   r   r   r     r   c                 C   r   )Nsizer   r   r   r   r   r     r   c                 C   r   )NZohlcr   r   r   r   r   r     r   c                 C   s2   ddi| _ || ddg}|j ddiksJ d S )Nr   r   r   r   r   r   r   r   %test_groupby_finalize_not_implemented  s   
r   c                  C   s8   t dddgi} t ddg| }|jd u sJ d S )Nr   r   r
   )rr   rs   r   Z__finalize__r   rt   r   r   r   test_finalize_frame_series_name  s   r   );__doc__r   rU   ZnumpyZnprq   Zpandasrr   Zpandas._testingZ_testingrj   r   r   Znot_implemented_markZ
MultiIndexZfrom_productmiZ
frame_dataZframe_mi_datar   methodcallerZarrayZNAZperiod_ranger   r_   rs   r   filterwarningsZ	TimedeltaZ
datetime64ZPeriodZ	Timestampnegposinvabsr   floatobjectZ_all_methodsr[   Zfixturera   re   Zparametrizero   rp   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s   	 	
  $,-./0123456789:;<=>?@ABCDEFGHIJLRW[cejnoprvw   
  	                      $  )  .  2  3  5  9  :  <  =  >  ?  A  B  C  D  E  F  
G  H  
I  J  K  L  M  N  P  U  Y  Z  [  \  ]  ^  _  `  a  b  c  d  e  f  g  h  j  n  o  p  q  r  s  u
  z
  
   
    
        
    
            "         "!    "    #    $    &
    +
    0
    5
    9    :    ;    <    =    ?    C    D    F    G    H    I    J    K    L    M    O    P    Q    R    S    T    U    V    W    X    Y    ]	



	



W




	
















 !"#
$
%&'()*+,-
.
/15






(
(