o
    vh                    @   sl	  d dl Zd dlZd dlmZ d dlm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 d dlmZ dd Zdd	 Zejd
g dejjddd dd dd dd dd dd dd dd dd dd dd dd dd dd dd dd gg ddd d! Zejd
g dejjdd"d d#d d$d d%d d&d d'd d(d d)d d*d d+d d,d d-d d.d d/d d0d d1d d2d gg d3dd4d5 Zejd
g dd6d7 Zd8d9 Zejd:ed d;e
d<d;ggd=d> Z d?d@ Z!dAdB Z"dCdD Z#dEdF Z$dGdH Z%dIdJ Z&ejjd:dKd dLd dMd dNd gg dOddPdQ Z'dRdS Z(dTdU Z)ejdVdWdXgidYdXidZdXigd[d\ Z*d]d^ Z+d_d` Z,dadb Z-dcdd Z.dedf Z/ejdgdhd did djd gdkdl Z0dmdn Z1dodp Z2dqdr Z3dsdt Z4ejdud:dvgdwdx Z5dydz Z6d{d| Z7ejjd}d~d d fdd d;fdd d fdd d fgg dddd Z8ejded<d;gdXde	dXd<d;gigdd Z9ejded<d;gdXde	dXd<d;gigdd Z:dd Z;dd Z<dd Z=dd Z>ejddd<ej?fgdd Z@ejdddgdd ZAejddd dd dd dd gdd ZBdd ZCdd ZDdd ZEejddXdd<dd d<d dgdd ZFejdddgdd ZGejded<d;ge	dXd<d;gigdd ZHejded<d;ge	dXd<d;gigdd ZIdd ZJdd ZKejdeg ddXdi fe	dXg diddXifgdd ZLejdeg ddXdi fe	dXg diddXifgdd ZMejdg dddÄ ZNddń ZOddǄ ZPejdeg de	dXg digddɄ ZQdd˄ ZRdd̈́ ZSddτ ZTejdddid:digddӄ ZUejdddgdd؄ ZVddڄ ZWdd܄ ZXddބ ZYejdddgdd ZZejdddgdd Z[ejdddgdd Z\ejddde]fdgdd Z^ejdddgejdgdd dd gdd Z_ejdddgejdgdd dd gdd Z`ejdddgejdgdd dd gdd Zaejdgddgd d Zbdd Zcdd Zddd Zedd	 Zfejjdddgd
dgddd Zgdd ZhejddXdXggdd Ziejdddgejjdddgd
dgddd Zjejdd d<gejdddgdd Zkdd Zld d! Zmd"d# Znd$d% Zod&d' Zpejd
dd(gd)d* Zqd+d, Zrd-d. Zsd/d0 Ztd1d2 Zud3d4 Zvd5d6 Zwd7d8 Zxd9d: Zyd;d< Zzd=d> Z{dS (?      N)HAS_PYARROW)SettingWithCopyWarning)		DataFrameIndex
MultiIndexPeriodSeries	Timestamp
date_rangeoption_contextperiod_range)	get_arrayc                 C   s   t g dg dg dd}| }|j|jusJ |j|jus"J |j|js+J |j|js4J tt|dt|drBJ | rZ|jj	d j
 rOJ |jj	d j
 rZJ d|jd< |jd dkshJ d S )	N                  g?g?g333333?abcr   r   r   r   r   )r   copyindexcolumnsis_npshares_memoryr   _mgrblocksrefshas_referenceiloc)using_copy_on_writedfdf_copy r*   a/var/www/html/hyperkenya/venv/lib/python3.10/site-packages/pandas/tests/copy_view/test_methods.py	test_copy   s   
r,   c                 C   s  t g dg dg dd}|jdd}| r9|j|jusJ |j|jus&J |j|js/J |j|js8J n|j|ju sAJ |j|ju sIJ tt|dt|dsWJ | ro|jj	d j
 sdJ |jj	d	 j
 soJ | rd|jd
< |jd
 d	ksJ tt|dt|drJ tt|dt|dsJ d S t| d|jd
< W d    n1 sw   Y  |jd
 dksJ tt|dt|dsJ d S )Nr   r   r   r   Fdeepr   r   r   r   r   )r   r   r   r   r   r    r!   r   r"   r#   r$   r%   r&   tmassert_cow_warning)r'   warn_copy_on_writer(   r)   r*   r*   r+   test_copy_shallow,   s.   
  r2   r   )TNFmethodc                 C   s   | j tj|dS )Nr   r   )renamestrlowerr(   r   r*   r*   r+   <lambda>U       r9   c                 C   s   | j ddg|dS )Nr   r   r4   )reindexr8   r*   r*   r+   r9   V       c                 C      | j | |dS Nr   reindex_liker8   r*   r*   r+   r9   W       c                 C      | j | |dd S Nr?   r   alignr8   r*   r*   r+   r9   X   r<   c                 C      | j g dd|dS Nr   r   )axisr   set_axisr8   r*   r*   r+   r9   Y       c                 C      | j d|dS Ntestr   r   rename_axisr8   r*   r*   r+   r9   Z   rB   c                 C   rM   )NrO   r4   rQ   r8   r*   r*   r+   r9   [   rB   c                 C      | j ddi|dS )Nr   int64r?   astyper8   r*   r*   r+   r9   \   r<   c                 C      | j dd|dS Nr   r?   swapaxesr8   r*   r*   r+   r9   ^   r:   c                 C      | j dd|dS Nr   r   r?   truncater8   r*   r*   r+   r9   _   r:   c                 C      | j |dS r>   infer_objectsr8   r*   r*   r+   r9   `       c                 C   r_   r>   to_timestampr8   r*   r*   r+   r9   a   rb   c                 C   rM   ND)freqr   	to_periodr8   r*   r*   r+   r9   b   rB   c                 C   rM   N
US/Centralr?   tz_localizer8   r*   r*   r+   r9   c   rB   c                 C   rM   rj   
tz_convertr8   r*   r*   r+   r9   d   rB   c                 C   rM   NF)allows_duplicate_labelsr   	set_flagsr8   r*   r*   r+   r9   e   rB   )r5   r;   rA   rF   rK   rename_axis0rename_axis1rV   rZ   r^   ra   rd   ri   rm   ro   rs   )idsc           
      C   sj  d }d| j jjv rtdddd}n-d| j jjv r tdddd}nd| j jjv r/tdddd}nd| j jjv r>tdddd	d
}tg dg dg dd|d}d| j jjv rud}tjt|d |||d}W d    n1 sow   Y  n|||d}|p|du }	| j jj	dr|s|s|du rd}	|	rt
t|dt|dsJ d S t
t|dt|drJ d S )Nrd   
2012-01-01rf   r   rg   periodsri   rm   ro   Europe/Brusselsrg   ry   tzr   r   r   r   r   rZ   "'DataFrame.swapaxes' is deprecatedmatchr?   Fzreindex-r   )nodecallspecidr   r
   r   r/   assert_produces_warningFutureWarning
startswithr    r!   r   )
requestr3   r   r'   using_array_managerr   r(   msgdf2share_memoryr*   r*   r+   test_methods_copy_keywordQ   s0   -   r   c                 C   rS   )Nr   d   rP   r5   serr   r*   r*   r+   r9      r<   c                 C   s   | j d |dS r>   r   r   r*   r*   r+   r9      rB   c                 C   s   | j | j|dS )NrP   )r;   r   r   r*   r*   r+   r9      r:   c                 C   r=   r>   r@   r   r*   r*   r+   r9      rB   c                 C   rC   rD   rE   r   r*   r*   r+   r9      r<   c                 C   rG   rH   rJ   r   r*   r*   r+   r9      rL   c                 C   rM   rN   rQ   r   r*   r*   r+   r9      rB   c                 C   rM   )NrT   r?   rU   r   r*   r*   r+   r9      rB   c                 C   r[   )Nr   r   r?   )	swaplevelr   r*   r*   r+   r9      r:   c                 C   rW   rX   rY   r   r*   r*   r+   r9      r:   c                 C   r[   r\   r]   r   r*   r*   r+   r9      r:   c                 C   r_   r>   r`   r   r*   r*   r+   r9      rb   c                 C   r_   r>   rc   r   r*   r*   r+   r9      rb   c                 C   rM   re   rh   r   r*   r*   r+   r9      rB   c                 C   rM   rj   rl   r   r*   r*   r+   r9      rB   c                 C   rM   rj   rn   r   r*   r*   r+   r9      rB   c                 C   rM   rp   rr   r   r*   r*   r+   r9      rB   )zrename (dict)r5   r;   rA   rF   rK   rt   rV   r   rZ   r^   ra   rd   ri   rm   ro   rs   c           	      C   sT  d }d| j jjv rtdddd}n@d| j jjv r tdddd}n1d| j jjv r/tdddd}n"d| j jjv r?tdddd	d
}nd| j jjv rQtg dg dg}tg d|d}d| j jjv rd}tj	t
|d |||d}W d    n1 szw   Y  n|||d}|p|du }|rtt|t|sJ d S tt|t|rJ d S )Nrd   rw   rf   r   rx   ri   rm   ro   rz   r{   r   r   r   r}   rZ   z'Series.swapaxes' is deprecatedr   r?   F)r   r   r   r   r
   r   from_arraysr   r/   r   r   r    r!   r   )	r   r3   r   r'   r   r   r   ser2r   r*   r*   r+    test_methods_series_copy_keyword   s.   +r   c                 C   s   t g dg dd}|j|d}| p|du p|d u }|o| }|r2tt|dt|ds0J d S tt|dt|dr@J d S )Nr   r   r   r   r?   Fr   r   )r   	transposer    r!   r   )r'   r   r   r(   resultr   r*   r*   r+   test_transpose_copy_keyword   s   
  r   c                 C   s   t g dg dg ddg dd}| }| }|j  | r=tt|dt|ds/J tt|dt|ds=J d	|jd
< tt|dt|drPJ | r`tt|dt|ds`J t	
|| d S )Nr   r   r   r   )
         r}   r   r   r   )r   r   )r   r   reset_indexr"   _verify_integrityr    r!   r   r&   r/   assert_frame_equalr'   r(   df_origr   r*   r*   r+   test_reset_index   s   

r   r   r   r   c                 C   s   t ddg|d}| }|jdd}| r)tt|t|s J |jdr(J ntt|t|r5J d|jd< t	
|| d S )Nr   r   r}   T)dropr   r   )r   r   r   r    r!   r   r"   _has_no_referencer&   r/   assert_series_equalr'   r   r   ser_origr   r*   r*   r+   test_reset_index_series_drop  s   
r   c                  C   sb   t g dg dg dd} | d} | d }| j|dd }| jddd }t|| d S )	Nr   r   r   dr   r   r   r   )r   r   r   r   ABCr   r   T)observed)r   	set_indexgroupbysumr/   r   )r(   keyr   expectedr*   r*   r+   'test_groupby_column_index_in_references  s   
r   c                 C   s   t g dg dg dd}| }|jtjd}| r)tt|dt|ds)J d|jd	< tt|dt|dr<J | rLtt|d
t|dsLJ t g dg dg dd}t	
|| t	
|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r5   r6   upperr    r!   r   r&   r/   r   r'   r(   r   r   r   r*   r*   r+   test_rename_columns'  s   
r   c                 C   s   t g dg dg dd}|jtjd}| }| r*tt|dt|ds)J ntt|dt|dr8J d|jd	< tt|dt|drKJ | r[tt|d
t|ds[J t g dg dg dd}t	
|| t	
|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r   )r   r5   r6   r   r   r    r!   r   r&   r/   r   )r'   r(   r   df2_origr   r*   r*   r+   !test_rename_columns_modify_parent9  s   
r   c                 C   s   t g ddd}| }dd }||}tt|dt|ds$J d|jd< | r@t|| tt|dt|dr?J nt g d	dd}t|| tt|dt|ds]J tt|d
t|d
skJ d S )Nr         ?r   c                 S      | S Nr*   r(   r*   r*   r+   testfuncQ  s   ztest_pipe.<locals>.testfuncr   r   r   r   r   )	r   r   piper    r!   r   r&   r/   r   r'   r(   r   r   r   r   r*   r*   r+   	test_pipeM  s   

 r   c                 C   s   t g ddd}| }dd }||}tt|dt|ds$J | r;t|| tt|dt|dr:J nt g ddd}t|| tt|dt|dsXJ tt|dt|dsfJ d S )	Nr   r   r   c                 S      d| j d< | S )Nr   r   r&   r   r*   r*   r+   r   i     
z%test_pipe_modify_df.<locals>.testfuncr   r   r   r   r   )r   r   r   r    r!   r   r/   r   r   r*   r*   r+   test_pipe_modify_dfe  s   
 r   c                 C   s   t g dg dg dd}| }|jddgd}| r+tt|dt|ds*J ntt|dt|dr9J d|jd	< tt|dt|drLJ | r\tt|dt|ds\J t|| d S )
Nr   r   r   r   r   r   r   r   r   )	r   r   r;   r    r!   r   r&   r/   r   r   r*   r*   r+   test_reindex_columns|  s   
r   c                 C   r   r   r*   idxr*   r*   r+   r9     s    c                 C      |   S r   )viewr   r*   r*   r+   r9         c                 C   r   r   r?   r   r*   r*   r+   r9     r   c                 C   s   t | S r   )listr   r*   r*   r+   r9     r   )	identicalr   r   valuesc                 C   s   t g dg dg dd}| }|j| |jd}|r,tt|dt|ds+J ntt|dt|dr:J d|jd< tt|dt|drMJ |r]tt|d	t|d	s]J t	|| d S )
Nr   r   r   r   r}   r   r   r   r   )
r   r   r;   r   r    r!   r   r&   r/   r   )r   r'   r(   r   r   r*   r*   r+   test_reindex_rows  s   
r   c                 C   s  t g dg dg dd}| }|jdd}|j  | r<tt|dt|ds-J tt|dt|ds;J ntt|dt|drJJ tt|dt|drXJ d	|jd
< tt|dt|drkJ | r{tt|dt|ds{J t	
|| d S )Nr   r   r   r   r   r   r   r   r   r   )r   r   r   r"   r   r    r!   r   r&   r/   r   r   r*   r*   r+   test_drop_on_column  s   

r   c                 C   s   t g dg dg dd}| }|d}|j  | r-tt|dt|ds,J ntt|dt|dr;J d|jd< | rPtt|dt|drPJ t	
|| d S )	Nr   r   r   r   rT   r   r   r   )r   r   select_dtypesr"   r   r    r!   r   r&   r/   r   r   r*   r*   r+   test_select_dtypes  s   


r   filter_kwargsitemsr   likeregexc                 C   s   t g dg dg dd}| }|jdi |}| r+tt|dt|ds*J ntt|dt|dr9J | rNd|jd< tt|dt|drNJ t|| d S )	Nr   r   r   r   r   r   r   r*   )	r   r   filterr    r!   r   r&   r/   r   )r'   r   r(   r   r   r*   r*   r+   test_filter  s   
r   c                 C   s   t ddgddgddggtddd	d
gd}| }|jdd}| r0tt|d	t|d	s/J ntt|d	t|d	r>J d|jd< | ratt|d	t|d	rSJ tt|d
t|d
saJ t	|| d S )Nr   r   r   r   r   r   
2020-01-01
2020-01-03r   r   r   r   r   )ry   r   )
r   r
   r   shiftr    r!   r   r&   r/   r   r   r*   r*   r+   test_shift_no_op  s   
r   c                 C   sX   t ddgddgddggtddd	d
gd}|jddd}tt|d	t|d	r*J d S )Nr   r   r   r   r   r   r   r   r   r   r   r   ry   rI   )r   r
   r   r    r!   r   )r'   r(   r   r*   r*   r+   test_shift_index  s    r   c                 C   s   t ddgddgddggtddd	d
gd}| }tdd|_|jddd}| r7tt|d	t|d	s6J ntt|d	t|d	rEJ d|jd< | rZtt|d	t|d	rZJ t	
|| d S )Nr   r   r   r   r   r   r   r   r   r   r   
2020-01-02z
2020-01-041Dry   rg   r   r   )r   r
   r   r   r   r    r!   r   r&   r/   r   r   r*   r*   r+   test_shift_rows_freq
  s   
r   c                 C   s   t ddgddgddggtddd	}|jddd
}tt|dt|ds'J t| d|jd< W d    n1 s<w   Y  | rntt|dt|drQJ t tj	dgtj	dgtj	dggtddd	}t
|| d S d S )Nr   r   r   r   r   r   r   r   r   r   r   r   )r   r
   r   r    r!   r   r/   r0   r&   nanr   )r'   r1   r(   r   r   r*   r*   r+   test_shift_columns  s$   r   c                 C   s$  t g dg dg dd}| }|d d  }|d}t|jt|ds)J tt|dt|ds7J | rJd|jd< t|jt|drJJ t	| d|jd< W d    n1 s_w   Y  | r|tt|dt|drtJ t
|| d S t g dg d	g dd}t
|| d S )
Nr   r   r   r   r   r   r   r   )r   r   r   )r   r   popr    r!   r   r   r&   r/   r0   r   )r'   r1   r(   r   view_originalr   r   r*   r*   r+   test_pop3  s"   

r   funcc                 C   s
   |  |S r   rE   xyr*   r*   r+   r9   L     
 c                 C   s   | j |jddS )Nr   rI   )rF   r   r   r*   r*   r+   r9   M  r:   c                 C   s   | j |jjtdd ddS )Nr   r   r   )rF   r   r&   slicer   r*   r*   r+   r9   N  s    c                 C   s   t g ddd}| }|ddg  }|||\}}| r-tt|dt|ds,J ntt|dt|dr;J d|jd< | rPtt|dt|drPJ t|| d S )Nr   r   r   r   r   r   r   r   r    r!   r   r&   r/   r   )r'   r   r(   r   
df_changedr   _r*   r*   r+   test_align_frameI  s   	
r   c                 C   s   t ddg}| }| }||\}}| r,t|j|js!J t|j|js+J nt|j|jr6J t|j|jr@J d|jd< d|jd< | r`t|j|jrVJ t|j|jr`J t|| t|| d S )Nr   r   r   )	r   r   rF   r    r!   r   r&   r/   r   )r'   r   r   	ser_otherr   ser_other_resultr*   r*   r+   test_align_seriesb  s    

r   c                 C   s   t g dg dd}| }|j|dd\}}tt|dt|ds&J tt|dt|ds4J | rNd|jd	< t|| d|jd	< t|| d S d S )
Nr   r   r   Fr?   r   r   r   r   r   )	r   r   rF   r    r!   r   locr/   r   )r'   r(   r   r   df3r*   r*   r+   test_align_copy_falsex  s   

r   c                 C   s   t g dg dd}tg ddd}| }| }|j|ddd\}}tt|d	t|d	s3J tt|d
t|d
sAJ tt|dt|dsOJ | rid|jd< t	|| d|jd< t
|| d S d S )Nr   r   r   r   nameFr   )r   rI   r   r   r   )r   r   r   rF   r    r!   r   r   r/   r   r   )r'   r(   r   r   r   r   r   r*   r*   r+   !test_align_with_series_copy_false  s   

r  c                 C   s:  t g d}| }|d d   }t|jt|dsJ t| d|j	d< W d    n1 s3w   Y  | rMt|jt|drFJ t
|| n| }d|j	d< t
|| |d d   }t| d|j	d< W d    n1 syw   Y  | rt||  d S |  }d|j	d< t|| d S )Nr   r   r   )r   r   to_framer    r!   r   r   r/   r0   r&   r   r   )r'   r1   r   r   r(   r   r*   r*   r+   test_to_frame  s,   

r  axr   c                 C   s   t g dg dd}| }d}tjt|d |||}W d    n1 s)w   Y  | r?tt|dt|ds>J ntt|dt|drMJ d|j	d< | rbtt|dt|drbJ t
|| d S )	Nr   r   r   r~   r   r   r   r   r   r   r/   r   r   rZ   r    r!   r   r&   r   )r'   r  r(   r   r   r   r*   r*   r+   test_swapaxes_noop  s   
r  c                 C   s   t g dg ddg dd}| }d}tjt|d |dd	}W d    n1 s-w   Y  | rCtt|d
t|dsBJ ntt|d
t|drQJ d|j	d< | rftt|d
t|drfJ t
|| d S )Nr   r   r   )r   r   zr}   r~   r   r   r   r   r   r   r   r  )r'   r(   r   r   r   r*   r*   r+   test_swapaxes_single_block  s   
r  c                  C   s   t ddgdd} d}tjt|d | jddd	} W d    n1 s$w   Y  d
| jd< t d
dgddgdddgd}t| | d S )Nr   r   r   r   r~   r   r   r   )axis1axis2r   r   r   r   r   r   r}   )r   r/   r   r   rZ   r&   r   )r(   r   r   r*   r*   r+   test_swapaxes_read_only_array  s   
r  zmethod, idxc                 C   s   | j ddj ddS )NFr-   r?   r   r*   r*   r+   r9     rL   c                 C   s   |     S r   )r   r   r*   r*   r+   r9     rb   c                 C   s   | j tjdj tjdS )Nr   )r5   r6   r   r7   r   r*   r*   r+   r9     s    c                 C   s   | j ddjddS )NFr-   number)include)r   r   r   r*   r*   r+   r9     rL   )shallow-copyr   r5   r   c           	      C   s   t g dg dg dd}| }| o| jjjdk}||}t|o%| d|jd|f< W d    n1 s9w   Y  |sFt|| ||}t|oO| d|jd< W d    n1 saw   Y  |syt|jd d |d f | d S d S )Nr   r   r   r   r  r   r   )	r   r   r   r   r   r/   r0   r&   r   )	r   r3   r   r'   r1   r(   r   df2_is_viewr   r*   r*   r+   test_chained_methods  s    "r  objr   c                 C   s   t tdddtdddg|_| }| }| r(tt|dt|ds'J ntt|dt|dr6J d|jd< tt|dt|drIJ t	
|| d S )Nz2012-1-1rf   rg   z2012-1-2r   r   )r   r   r   r   rd   r    r!   r   r&   r/   assert_equalr'   r  obj_origobj2r*   r*   r+   test_to_timestamp  s   
r  c                 C   s   t tdtdg|_| }|jdd}| r&tt|dt|ds%J ntt|dt|dr4J d|jd< tt|dt|drGJ t	
|| d S )N
2019-12-31
2020-12-31Yr  r   r   )r   r	   r   r   ri   r    r!   r   r&   r/   r  r  r*   r*   r+   test_to_period"  s   
r  c                 C   s   t g dg dg dd}| }|d}| r(tt|dt|ds'J ntt|dt|dr6J d|jd< tt|d	t|d	rIJ t|| d S )
Nr   r   r   r   r   r   r   r  r   )	r   r   r   r    r!   r   r&   r/   r   r   r*   r*   r+   test_set_index4  s   

r  c                  C   s>   t g ddd} | d}| }d| jd< t|| d S )Nr   r   r   r   r   r   )r   r   r   r&   r/   r   r(   r   r   r*   r*   r+   4test_set_index_mutating_parent_does_not_mutate_indexE  s
   

r  c                 C      t g dg dg dd}| }|d}| r'tt|dt|ds'J d|jd	< tt|dt|dr:J | rJtt|d
t|dsJJ t g dg dg dd}t|| t|| d S )Nr   r   r   r   CoW_CoW_ar   r   r   CoW_cr   r   )r"  CoW_br#  )	r   r   
add_prefixr    r!   r   r&   r/   r   r   r*   r*   r+   test_add_prefixN  s   

r&  c                 C   r   )Nr   r   r   r   _CoWa_CoWr   r   r   c_CoWr   r   )r(  b_CoWr)  )	r   r   
add_suffixr    r!   r   r&   r/   r   r   r*   r*   r+   test_add_suffixc  s   

r,  z	axis, val)r         @c                 C   s   t g dd|dgdd}| }|j|d}| r(tt|dt|ds'J ntt|dt|dr6J d|jd	< | rKtt|dt|drKJ t|| d S )
Nr   r   r   r   r   r   r   r   r   )	r   r   dropnar    r!   r   r&   r/   r   )r'   rI   valr(   r   r   r*   r*   r+   test_dropnau  s   
r0  r/  r   r-  c                 C   s~   t d|dg}| }| }| rt|j|jsJ n
t|j|jr&J d|jd< | r7t|j|jr7J t|| d S )Nr   r   r   )	r   r   r.  r    r!   r   r&   r/   r   )r'   r/  r   r   r   r*   r*   r+   test_dropna_series  s   
r1  c                 C   r   r   headr   r*   r*   r+   r9     r   c                 C   
   |  dS )Nr   r2  r   r*   r*   r+   r9     r   c                 C   r   r   tailr   r*   r*   r+   r9     r   c                 C   r4  )Nr   r5  r   r*   r*   r+   r9     r   c                 C   s>  t g dg dd}| }| |}|j  |r6tt|dt|dr(J tt|dt|dr6J t| d|j	d< W d    n1 sKw   Y  |rott|dt|dr`J tt|dt|drnJ n(tt|dt|ds}J t| d|j	d< W d    n1 sw   Y  t
|| d S )	Nr   r   r   r   r   r   r   r   )r   r   r"   r   r    r!   r   r/   r0   r&   r   )r3   r'   r1   r(   r   r   r*   r*   r+   test_head_tail  s$   

r7  c                 C   s*  t ddgtddgtdddd}| }| }| rItt|dt|ds)J |r:tt|dt|dr9J n+tt|dt|dsHJ ntt|dt|drWJ tt|dt|dreJ d	|j	d
< d|j	d< | rtt|dt|drJ tt|dt|drJ t
|| d S )Nr   r   r   r   dtyper   r   r   r   r   r   r  )r   r   objectr   ra   r    r!   r   r/   r&   r   )r'   using_infer_stringr(   r   r   r*   r*   r+   test_infer_objects  s$   

r<  c              	   C   s   t ddgtddgtddttdtdgddtd	d
gtdd}| }t|d}t|d}t|d}d|jd< d|jd< td|jd< | rwt|t|dsSJ |rat	|t|ds`J nt|t|drlJ t|t|dsyJ d S d S )Nr   r   r   r   r8  r  r  r:  r  w)r   r   r   r   er   r   r   r   r   r  
2018-12-31r   r   )
r   r   r:  r	   ra   r   r&   r    r!   r/   )r'   r;  r(   arr_aarr_barr_dr*   r*   r+   test_infer_objects_no_reference  s2   





rD  c                 C   s   t ddgtddgtddttdtdgddd	}|d d  }| }t|d
}t|d}t|d}d|jd< d|jd< td|jd< | rlt|t|d
rRJ |rVt	rat|t|draJ t|t|dsnJ d S d S )Nr   r   r   r   r8  r  r  r:  r   r   r   r   r   r   r  r?  r@  )
r   r   r:  r	   ra   r   r&   r    r!   r   )r'   r;  r(   r   rA  rB  rC  r*   r*   r+   test_infer_objects_reference  s0   





rE  kwargsr   )beforeafterrI   c                 C   s   t g dddd}| }|jdi |}|j  | r,tt|dt|ds+J ntt|dt|dr:J d|jd< | rOtt|dt|drOJ t	
|| d S )	Nr   r   r   r   r   r   r   r*   )r   r   r^   r"   r   r    r!   r   r&   r/   r   r'   rF  r(   r   r   r*   r*   r+   test_truncate  s   

rJ  assigndrop_duplicatesc                 C   s   t dg di}| }t|| }|j  | r(tt|dt|ds'J ntt|dt|dr6J d|jd< | rKtt|dt|drKJ t	
|| d S )Nr   r   r   r   )r   r   getattrr"   r   r    r!   r   r&   r/   r   )r'   r3   r(   r   r   r*   r*   r+   test_assign_drop_duplicates*  s   

rN  c                 C   sv   |  }|ddg}| rt|j|jsJ n
t|j|jr"J d|jd< | r3t|j|jr3J t|| d S )Nr   r   )r   taker    r!   r   r&   r/   r  r  r*   r*   r+   	test_take<  s   
rP  c                 C   s   t dddd|_| }|dd}| rt|j|jsJ n
t|j|jr)J d|jd< | r:t|j|jr:J t	|| d S )Nz
2018-04-09r   1D20minr   z0:00z1:00r   )
r
   r   r   between_timer    r!   r   r&   r/   r  r  r*   r*   r+   test_between_timeM  s   
rS  c                 C   s   t ddgdd}t dddgd}| }||}| r,tt|dt|ds+J ntt|dt|dr:J d|jd< | rOtt|dt|drOJ t|| d S )Nr   r   r   r   )r   r   r   r  )	r   r   rA   r    r!   r   r&   r/   r   )r'   r(   otherr   r   r*   r*   r+   test_reindex_like^  s   

rU  c                 C   sx   t g d}| }| }| rt|j|jsJ n
t|j|jr%J d|jd< t|j|jr4J t|| d S )Nr   r   )	r   r   
sort_indexr    r!   r   r&   r/   r   r'   r   r   r   r*   r*   r+   test_sort_indexp  s   
rX  zobj, kwargsr   byc                 C   s   |  }|jdi |}| rtt|dt|dsJ ntt|dt|dr+J d|jd< tt|dt|dr>J t|| d S )Nr   r   r*   )r   sort_valuesr    r!   r   r&   r/   r  )r'   r  rF  r  r  r*   r*   r+   test_sort_values  s   
r[  c                 C   s   |  }|d d  }|jdddi| tt|dt|ds"J t| d|jd< W d    n1 s7w   Y  | rTtt|dt|drLJ t|| d S tt|dt|dsbJ d S )NinplaceTr   r   r*   )	r   rZ  r    r!   r   r/   r0   r&   r  )r'   r  rF  r1   r  r   r*   r*   r+   test_sort_values_inplace  s    r]  decimals)r   r   c                 C   s"  t ddgdd}| }|j|d}| rEtt|dt|ds#J |dkr6tt|dt|ds5J n+tt|dt|drDJ ntt|dt|drSJ tt|dt|draJ d	|jd
< d|jd< | rtt|dt|dr{J tt|dt|drJ t|| d S )Nr   r   r   r   )r^  r   r   r   r   r  r   r   )	r   r   roundr/   r!   r   r    r&   r   )r'   r1   r^  r(   r   r   r*   r*   r+   
test_round  s    

ra  c                 C   s   t jg dddgd}tdg di|d}| }|jddgd}| r2tt|dt|ds1J ntt|dt|dr@J d	|jd
< | rUtt|dt|drUJ t	
|| d S )Nr   r   r   r   r   r   )r   r   onetwonamesr   r   r}   orderr   r   )r   from_tuplesr   r   reorder_levelsr    r!   r   r&   r/   r   r'   r   r(   r   r   r*   r*   r+   test_reorder_levels  s   
ro  c                 C   s   t jg dddgd}tg d|d}| }|jddgd}| r,t|j|js+J n
t|j|jr6J d|jd< | rGt|j|jrGJ t	
|| d S )	Nrb  rf  rg  rh  r   r}   rj  r   )r   rl  r   r   rm  r    r!   r   r&   r/   r   r   r*   r*   r+   test_series_reorder_levels  s   
rp  c                 C   s   t jg dddgd}||_| }| }| r#t|j|js"J n
t|j|jr-J d|jd< | r>t|j|jr>J t	
|| d S )Nrc  rd  re  rf  rg  rh  r   )r   rl  r   r   r   r    r!   r   r&   r/   r  )r'   r  r   r  r  r*   r*   r+   test_swaplevel  s   
rr  c                 C   s   t g dg dg dd}| }|jg ddd}| r,tt|dt|ds+J ntt|dt|dr:J d|jd	< tt|dt|drMJ t|| d S )
Nr   r   r   r   r   r   r   r   r   )	r   r   rK   r    r!   r   r&   r/   r   r   r*   r*   r+   test_frame_set_axis  s   
rs  c                 C   sv   t g d}| }|jg ddd}| rt||sJ nt||r&J d|jd< t||r3J t|| d S )Nr   r   r   r   r   )r   r   rK   r    r!   r&   r/   r   rW  r*   r*   r+   test_series_set_axis  s   
rt  c                 C   s   t g d}| }|jdd}t||sJ t| d|jd< W d    n1 s-w   Y  | rDt||r<J t|| d S t||sLJ t g d}t|| d S )Nr   F)rq   r   r   )	r   r   rs   r    r!   r/   r0   r&   r   r'   r1   r   r   r   r   r*   r*   r+   test_set_flags  s   rv  mapperrO   c                 C   s   t dg ditg dddd}| }|jdi |}| r-tt|dt|ds,J ntt|dt|dr;J d|jd< | rPtt|dt|drPJ t	|| d S )Nr   r   r   r}   r   r   r*   )
r   r   r   rR   r    r!   r   r&   r/   r   rI  r*   r*   r+   test_rename_axis0  s    
rx  zfunc, tz)ro   zEurope/Berlin)rm   Nc                 C   s   t ddgtddd|dd}| }t||d}| r&t|j|js%J n
t|j|jr0J d|jd< t|j|jr?J t	|| d S )	Nr   r   z2014-08-01 09:00h)startrg   ry   r|   r}   rk   r   )
r   r
   r   rM  r    r!   r   r&   r/   r   )r'   r   r|   r   r   r   r*   r*   r+   test_tz_convert_localizeA  s   
r{  c                 C   s  t jg dddgd}tg dg dg dd|d	}| }|d
}| rCtt|dt|ds4J tt|dt|dsBJ ntt|dt|drQJ tt|dt|dr_J d
|jd< tt|dt|drrJ | rtt|dt|dsJ t	
|| d S )Nrq  rf  rg  rh  r   r         	   r   r}   r   r   r   r   r   )r   rl  r   r   	droplevelr    r!   r   r&   r/   r   rn  r*   r*   r+   test_droplevelW  s    

r  c                 C   s   t dg di}| }| }t|jt|dsJ t| d|j	d< W d    n1 s1w   Y  | rLt|jt|drDJ t
|| d S t|jt|dsXJ |jd dksaJ d S )Nr   r   r   r   )r   r   squeezer    r!   r   r   r/   r0   r&   r   r   )r'   r1   r(   r   seriesr*   r*   r+   test_squeezeo  s   r  c              
   C   s   t g dg dg dd}| }tdD ]U}| D ]N\}}tt||t||s.J t| d|j	d< W d    n1 sCw   Y  | r_tt||t||rXJ t
|| q|jd|f dksjJ qqd S )Nr   r   r|  r   r   r   )r   r   ranger   r    r!   r   r/   r0   r&   r   r   )r'   r1   r(   r   ir   r   r*   r*   r+   
test_items  s   r  r9  rT   Int64c                 C   s   t ddgddd|d}|d d  }| }t| d|||k< W d    n1 s,w   Y  | rItt|dt|drAJ t|| d S tt|dt|dsWJ |jd dks`J d S )Nr   r   r   r8  r   r   r   )	r   r   r/   r0   r    r!   r   r   r&   )r'   r9  r1   r(   r   r   r*   r*   r+   test_putmask  s   r  c                 C   sP   t ddgddd|d}t|d}d|||k< | r$t|t|ds&J d S d S )Nr   r   r   r8  r   r   r   r   r    r!   r'   r9  r(   rA  r*   r*   r+   test_putmask_no_reference  s   
r  float64Float64c                 C   sZ   t ddgdd|d}t|d}t dddgi|||k< | r)t|t|ds+J d S d S )Nr   r   r   r8  r   r-  r   r  r  r*   r*   r+   $test_putmask_aligns_rhs_no_reference  s   
r  zval, exp, warnT)r   FNc           	      C   s  t ddgddd}|d d  }| }t g dg dgtdd}|r=t  |||< W d    n1 s7w   Y  ntj|dd	 |||< W d    n1 sSw   Y  | rtt|d
t|d
rhJ tt|dt|d|u sxJ tt|dt|dsJ |j	
d|usJ |j	
drJ t|| d S |dkrtt|d
t|d
sJ tt|dt|dsJ |jd dksJ d S d S )Nr   r   r   r   )TFFabcr   zincompatible dtyper   r   r   r   r   r   )r   r   r   r/   r0   r   r    r!   r   r"   r   r   r&   )	r'   r/  expwarnr1   r(   r   r   indexerr*   r*   r+   "test_putmask_dont_copy_some_blocks  s6   


 r  c                 C   s   |  | dkdS Nr   r   wherer   r*   r*   r+   r9     r:   c                 C   s   |  | dkdS r  maskr  r*   r*   r+   r9     r:   c                 C   s   t g d|d}| }||}| rtt|t|sJ ntt|t|r+J d|jd< | r>tt|t|r>J t|| d S )Nr   r8  r   r   )r   r   r    r!   r   r&   r/   r   r'   r9  r   r   r   r   r*   r*   r+   test_where_mask_noop  s   	
r  c                 C   s   |  | dk dS r  r  r  r*   r*   r+   r9     r:   c                 C   s   |  | dkdS r  r  r  r*   r*   r+   r9     r:   c                 C   sH   t g d|d}| }||}tt|t|rJ t|| d S )Nr   r8  )r   r   r    r!   r   r/   r   r  r*   r*   r+   test_where_mask  s
   	r  z
dtype, val)rT   g      %@)r  r   c                 C   s   |  | dk |S Nr   r  r(   r/  r*   r*   r+   r9     r:   c                 C   s   |  | dk|S r  r  r  r*   r*   r+   r9     r:   c                 C   s   t g dg dd|d}| }|||}| r5tt|dt|ds&J tt|dt|dr4J ntt|dt|drCJ d|jd< | rXtt|dt|drXJ t|| d S )	Nr   )ir   r8  r   r   r   r  r   )r'   r9  r/  r   r(   r   r   r*   r*   r+   %test_where_mask_noop_on_single_column  s   	

r  r  r  c              	   C   s$  t g ddd}| }| rft  t|d ||d dkddd W d    n1 s.w   Y  t|| t  t|dg ||d dkddd W d    n1 sYw   Y  t|| d S tjtd	d
 t|d ||d dkddd W d    n1 sw   Y  td . tdd  t|dg ||d dkddd W d    n1 sw   Y  W d    n1 sw   Y  td : tdd  t||d dk ||d dkddd W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )N)r   r   r   r   r   r   r   r   Tr\  inplace methodr   mode.chained_assignment)	r   r   r/   raises_chained_assignment_errorrM  r   r   r   r   )r'   r   r(   r   r*   r*   r+   test_chained_where_mask%  s6   
"
$"$*$r  c                 C   s   t dg ditddddd}| }|jdd}| r*tt|dt|ds)J ntt|dt|dr8J d	|jd
< tt|dt|drKJ t	|| d S )Nr   )g        N       @      @z1/1/2000r   minr   r}   r  r   r   )
r   r
   r   asfreqr    r!   r   r&   r/   r   r   r*   r*   r+   test_asfreq_noop>  s   

r  c                 C   sR   t dddg dd}| }| D ]	\}}d|jd< q| r't|| d S d S )Nr   r   r   r   r}   r   )r   r   iterrowsr&   r/   r   )r'   r(   r   r   subr*   r*   r+   test_iterrowsR  s   r  c                 C   s   t ddtjdgi}|d d  }| }t| |jdd W d    n1 s*w   Y  t| d|jd< W d    n1 sDw   Y  | rSt|| d S t dg di}t|| d S )	Nr   r   r   Tr        Y@r   )r  r   r   )	r   r    r   r   r/   r0   ffillr&   r   )r'   r1   r(   r   r   r*   r*   r+   test_interpolate_creates_copy\  s   r  c                 C   s  t g dg dg dd}| }|jd d}|dtg d | rBtt|dt|ds3J tt|d	t|d	sAJ ntt|dt|drPJ tt|d	t|d	r^J d
|jd< t	|| | r{tt|dt|dsyJ d S tt|dt|drJ d S )Nr   r   r|  r   r-   r   )r_  r   r   r   r   )
r   r   isetitemr    arrayr!   r   r   r/   r   r   r*   r*   r+   test_isetitemn  s   
  r  zsingle-blockzmixed-blockc                 C   s   t g dtjg d|dd}tg d}| }|d| | r7tt|dt|s/J |j	dr7J d|j
d< t|| t g dtjg d|dd}tg d}|d| d|j
d< t g dtjg d|dd}t|| d S )	Nr   r   r8  r   r|  r   r   r   )r   r    r  r   r   r  r!   r   r"   r   r   r/   r   r   )r'   r9  r(   r   r   r   r*   r*   r+   test_isetitem_series  s    
 
 r  c                 C   s   t g dddd}t g ddd}|ddg| | rBtt|dt|ds+J tt|d	t|d	s9J |jdrAJ ntt|dt|drPJ tt|d	t|d	r^J | }d
|jd< d
|jd< t	
|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r  )r   r  r    r!   r   r"   r   r   r&   r/   r   )r'   r(   rhsr   r*   r*   r+   test_isetitem_frame  s   

r  r   c              	   C   s6  t g dg dd}| }||}| r?tt|dt|ds$J d|jd< tt|dt|dr7J t|| d S |rKt	|t
rHtnd }n	t	|trRtnd }tdd" t| d|jd< W d    n1 sow   Y  W d    n1 s~w   Y  t	|trt|| d S |jd dksJ d S )	Nr   r   r   r   r   chained_assignmentr  r   )r   r   getr    r!   r   r&   r/   r   
isinstancer6   r   r   r   r   r   )r'   r1   r   r(   r   r   r  r*   r*   r+   test_get  s(   


r  z	axis, keyr   )r   r   c              	   C   s  |dko| }|p|o|dk}t g dg dtjg d|dd}| }	|j||d}
|dks3|rAtt|d	t|
s@J n
| rK|
jd
sKJ | sQ|rW|sWd
|
j	d
< nP|rxt
|p`|dk d
|
j	d
< W d    n1 srw   Y  n/tdd" t
t d
|
j	d
< W d    n1 sw   Y  W d    n1 sw   Y  | s|s|d
krt
||	 d S |j	d d
ksJ d S )NrT   r   r   r   r|  r8  r   r   r   r   r  r  r   )r   r    r  r   xsr!   r   r"   r   r&   r/   r0   r   r   r   r   )r'   r1   r   rI   r   r9  single_blockis_viewr(   r   r   r*   r*   r+   test_xs  s6    r  rI   z
key, level)l1r   re  c              	   C   s4  t ddd}tjddgg dgddgd	}t||td
d}|dkr+|  }| }	|j	|||d}
|dkrOt 
t||jd t|
|
jd sOJ |rZ|dkrWtnd }n	| sa|sat}nd }tdd" t| d|
jd< W d    n1 s~w   Y  W d    n1 sw   Y  t||	 d S )N   r   r   r  l2r   lev1lev2rh  r  r   r   )levelrI   r   r  r  r   )r    arangereshaper   from_productr   r   r   r   r  r!   r   r   r   r   r   r/   r   r&   r   )r'   r1   r   r   r  rI   arrr   r(   r   r   r  r*   r*   r+   test_xs_multiindex  s.   r  c                 C   s   t g dg dd}t ddgidgd}| }|d d  }t| || W d    n1 s4w   Y  t g dg dd}t|| | rpt|| tt|d	t|d	s`J tt|dt|drnJ d S t|| d S )
N      ?r  r  )      @g      @      @r   r         Y@r   r}   )r  r  r  r   )	r   r   r/   r0   updater   r    r!   r   )r'   r1   df1r   df1_origr   r   r*   r*   r+   test_update_frame  s    r  c                 C   s   t g d}t dgdgd}| }|d d  }|r4t  || W d    n1 s.w   Y  n|| t g d}t|| | rOt|| d S t|| d S )Nr  r  r   r}   )r  r  r  )r   r   r/   r0   r  r   )r'   r1   ser1r   	ser1_origr   r   r*   r*   r+   test_update_series'  s   

r  c              	   C   s  t dg di}tdgdgd}| }| r]t  |d | W d    n1 s,w   Y  t|| t  |dg |  W d    n1 sPw   Y  t|| d S tjt	dd |d | W d    n1 svw   Y  td ' t
dd  |dg |  W d    n1 sw   Y  W d    n1 sw   Y  td 3 t
dd  ||d dk |  W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )	Nr   r   r  r   r}   r  r   r  )r   r   r   r/   r  r  r   r  r   r   r   )r'   r(   r   r   r*   r*   r+   test_update_chained_assignment<  s8   

"r  c                 C   sx   t g d}| }t|}|d9 }| r(tt||rJ t|t| d S tt||s2J t|t| d S Nr   r   )r   r   r   r    r!   r/   assert_numpy_array_equal)r'   r   r   datar*   r*   r+   test_inplace_arithmetic_seriesU  s   r  c                 C   s   t g d}| }|d d  }t| |d9 }W d    n1 s$w   Y  | r?tt|t|r7J t|| d S tt|t|sKJ d S r  )r   r   r/   r0   r    r!   r   r   )r'   r1   r   r   r   r*   r*   r+   -test_inplace_arithmetic_series_with_referenceg  s   
r  Fc                 C   s   t g ddd}| }|j|d}|s|r| r(tt|dt|ds'J ntt|dt|dr6J d|jd< | rEt|| d S d S )	Nr   r   r   r?   r   r   r   r   )	r   r   r   r    r!   r   r&   r/   r   )r'   r   r   r(   r   r   r*   r*   r+   test_transposev  s   
r  c                 C   s^   t g ddd}| }|j}tt|dt|drJ d|jd< | r-t|| d S d S )Nr   r   r   r   r   r   r   )	r   r   Tr    r!   r   r&   r/   r   r'   r(   r   r   r*   r*   r+   test_transpose_different_dtypes  s   
r  c                 C   s:   t dg didd}|j}tt|dt|drJ d S )Nr   r   r  r8  r   )r   r  r    r!   r   )r'   r(   r   r*   r*   r+   test_transpose_ea_single_column  s    r  c                 C   sn   t g ddd}| }dd }t| || W d    n1 s&w   Y  | r5t|| d S d S )Nr   r   r   c                 S   r   Nr   r   r   r  r*   r*   r+   r     r   z"test_transform_frame.<locals>.func)r   r   r/   r0   	transformr   )r'   r1   r(   r   r   r*   r*   r+   test_transform_frame  s   r  c                 C   sh   t g d}| }dd }t| || W d    n1 s#w   Y  | r2t|| d S d S )Nr   c                 S   r   r  r   r  r*   r*   r+   r     r   z#test_transform_series.<locals>.func)r   r   r/   r0   r  r   )r'   r1   r   r   r   r*   r*   r+   test_transform_series  s   r  c                  C   sH   t ddgdd} |  }d|jd< tddgddgd	}t|| d S )
Nr   r   r   r   r   r   r   r   r}   )r   countr&   r   r/   r   r  r*   r*   r+   test_count_read_only_array  s
   
r  c                 C   s   t g d}| }tjtdd | }W d    n1 s w   Y  tt|t|s1J | r;|j	
dr;J t| d|jd< W d    n1 sPw   Y  | r_t|| d S t g d}t|| d S )Nr   zis deprecatedr   r   r   r   )r   r   r/   r   r   r   r    r!   r   r"   r   r0   r&   r   ru  r*   r*   r+   test_series_view  s   
r  c                 C   s   t dg di}tg d}| }|jd|dd | r2tt|t|ds)J |jdr1J ntt|t|dr?J d|j	d< t
|| d S )Nr   r   r   r   )r   valuecolumnr   r  )r   r   r   insertr    r!   r   r"   r   r&   r/   r   )r'   r(   r   r   r*   r*   r+   test_insert_series  s   
r  c                 C   s|   t g ddd}| }|d}| r#tt|dt|ds"J ntt|dt|dr1J d|jd< t|| d S )Nr   r   r   c = a+br   r   r   )	r   r   evalr    r!   r   r&   r/   r   r  r*   r*   r+   	test_eval  s   

r  c                 C   s   t g ddd}| }|d d  }|jddd tt|dt|ds(J t| d|jd	< W d    n1 s=w   Y  | rLt	|| d S d S )
Nr   r   r   r  Tr  r   r   r   )
r   r   r  r    r!   r   r/   r0   r&   r   )r'   r1   r(   r   df_viewr*   r*   r+   test_eval_inplace  s   r  c                 C   s   t ddgddgd}| }dd }t| |j|dd W d    n1 s*w   Y  | r8t|| n	|jd	 d
ksAJ t ddgddgd}| }td  |j|dd W d    n1 sgw   Y  t|| d S )Nr   r   r   r   )r   r   c                 S   s   d| d< | S )Nr   r   r*   )rowr*   r*   r+   r    s   z(test_apply_modify_row.<locals>.transformr   )r   r   r   r   r   )r   r   r/   r0   applyr   r   r   )r'   r1   r(   r   r  r*   r*   r+   test_apply_modify_row  s   r  )|numpyr    pytestpandas.compatr   pandas.errorsr   pandaspdr   r   r   r   r   r	   r
   r   r   pandas._testing_testingr/   pandas.tests.copy_view.utilr   r,   r2   markparametrizer   r   r   r   
RangeIndexr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r&  r,  r   r0  r1  r7  r<  rD  rE  rJ  rN  rP  rS  rU  rX  r[  r]  ra  ro  rp  rr  rs  rt  rv  rx  r{  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*   r*   r*   r+   <module>   s   ,%)#)
 




$







(
(
	


	"



$
$
*
*

$




	
	


!