a
    Pf[                     @   s   d dl mZ d dlZd dlZd dlmZmZ d dlm	  m
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ZdddZG d	d
 d
ZG dd dZdS )    ascii_lettersN)SettingWithCopyErrorSettingWithCopyWarning)	DataFrameIndexSeries	Timestamp
date_rangeoption_contextzAA value is trying to be set on a copy of a slice from a DataFramed   c                 C   sF   t jdjtt| dfd}|jdd dd |D }t|dgdS )	N   )size   )Zaxisc                 S   s    g | ]}t |d  |d  qS )r   r   r   ).0x r   h/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/indexing/test_chaining_and_caching.py
<listcomp>       zrandom_text.<locals>.<listcomp>letterscolumns)nprandomdefault_rngZintegerslenr   sortr   )ZnobsZidxsstringsr   r   r   random_text   s    r   c                   @   s>   e Zd Zdd Zejdddgdd Zdd	 Zd
d Z	dS )TestCachingc              	   C   s   t dd  ttddgd d}d|d< |d  t  d|d jd	< W d    n1 sb0    Y  |  |st|d d	 d nt|d d	 d W d    n1 s0    Y  d S )
Nchained_assignment   皙@Zaabb        ccr%   g(\?r   )	r   r   r   arangetmraises_chained_assignment_errorilocZ_clear_item_cacheZassert_almost_equal)selfusing_copy_on_writedfr   r   r   ,test_slice_consolidate_invalidate_item_cache$   s    
,z8TestCaching.test_slice_consolidate_invalidate_item_cachedo_refTFc                 C   sr   g d}t ||dd  |d d  tdd}|r@|jd  d|jd< |jd dks\J |jd d	ksnJ d S )
N)onetwothreefourfivesixseven      abc)r   r=   r   )r9   r=   r&   g      ?)r   r   r(   loc)r,   r0   contr.   r   r   r   test_setitem_cache_updating:   s    *

z'TestCaching.test_setitem_cache_updatingc              	   C   s  t dg ditddd}t dg ditddd}t g dg dd	}td}td}| D ]8\}}	|j|||	d
 f |	d  |j|||	d
 f< qbt|| t|d |d  t dg ditddd}| }
| D ]t\}}	||	d
  || |	d  }t	|dkp |p |$ |||	d
  ||< W d    q1 sP0    Y  q|st|| t|d |d  n t||
 t|d |
d  t dg ditddd}| D ],\}}	|j|||	d
 f  |	d 7  < qt|| t|d |d  d S )NA)X  rB   rB   z5/7/2014z5/9/2014)index)r   r   r   )rA   rA   rA   )r      i,  )CDrE   rF   r   )
r   r
   r	   Ziterrowsr>   r)   assert_frame_equalassert_series_equalcopyr*   )r,   r-   warn_copy_on_writeexpectedoutr.   r6   ZeixZixrowZout_originalvr   r   r   "test_setitem_cache_updating_slicesK   s:    26&z.TestCaching.test_setitem_cache_updating_slicesc                 C   s   t ddgddggddgddgd	}|d }|s2|rBd|jvsPJ nd|jv sPJ d
|d< t|dkshJ d|jvsvJ |d |usJ t|d dksJ d S )Nr   r   r8      r;   r<   rA   B)rC   r   r"   r=   )r   Z_item_cacher   )r,   r-   rJ   r.   serr   r   r   (test_altering_series_clears_parent_cachex   s    "z4TestCaching.test_altering_series_clears_parent_cacheN)
__name__
__module____qualname__r/   pytestmarkparametrizer@   rO   rS   r   r   r   r   r    #   s
   
-r    c                   @   sp  e Zd Zdd Zejjdd Zejjdd Zejjdd Z	ejjd	d
 Z
ejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd  Zd!d" Zd#d$ Zd%d& Zejd'd(ed)g d*igd+d, Zejd-d. Zd/d0 Zd1d2 Z d3d4 Z!d5d6 Z"d7S )8TestChainingc           
      C   s  g d}g d}t dt|i}|jdk}t  d|j|< W d    n1 sT0    Y  |rxt|t d|i nt|t d|i tjj|gdgd}t |}|jdk}t  d|j|< W d    n1 s0    Y  |rt|t d|i nt|t d|i t ||d}|	 }|jdk}t  d|j|< W d    n1 s\0    Y  |rzt|| nt|t ||d t dtj
d	d
dd	gi}t dtg di}t   tj
|d jd< W d    n1 s0    Y  |rt dg di}nt dtj
d	d
dd	gi}| }	t|	| t dtg di}t  tj
|jjd< W d    n1 s0    Y  | }	t|	| d S )N)rightleftr\   r\   r[   r\   timeout)r[   r\   r\   r\   r[   r\   noneresponser]   r^   )names)r_   Z	response1rA   barbahfoo)rc   ra   rb   rc   ra   r   )r   r   arrayr_   r)   r*   rG   ZrecZ
fromarraysrI   nanr+   headrA   )
r,   r-   dataZmdatar.   maskZrecarraydf_originalrK   resultr   r   r   test_setitem_chained_setfault   sN    

(

(

*
0
.z*TestChaining.test_setitem_chained_setfaultc              	   C   s  t dd tddgddggtdd}ttd	d
d
tddd}| }|jd u s^J t	  d|d d< W d    n1 s0    Y  t	  d|d d< W d    n1 s0    Y  |rt
|| nt
|| W d    n1 s0    Y  d S )Nr!   raiser   r8   ABr   rP   r   int64)r   dtyperA   r   )r   r   listr   r(   reshaperI   _is_copyr)   r*   rG   )r,   r-   rK   r.   ri   r   r   r   test_detect_chained_assignment   s    
*
*z+TestChaining.test_detect_chained_assignmentc              	   C   sv  t ttdddtjtddtjdd}| }|jd u sDJ |rt	
  d|d d< W d    n1 sr0    Y  t	
  d	|d d
< W d    n1 s0    Y  t	|| n|r6t	
  d|d d< W d    n1 s0    Y  t	
  tj|d d
< W d    n1 s(0    Y  n<|s tjttdF t	
  d|d d< W d    n1 sx0    Y  W d    n1 s0    Y  tjttdH t	
  tj|d d
< W d    n1 s0    Y  W d    n1 s 0    Y  |d jd u srJ nRd|d d< d	|d d
< t ddgd	dggtdd}|d d|d< t	|| d S )Nr   rp   rq   rP   rA   rQ   rm   rA   r   rn   r   matchr8   ro   r   rQ   float64)r   r   ranger   rd   r(   rz   rI   rt   r)   r*   rG   re   rW   raisesr   msgrr   Zastype)r,   using_array_managerr-   rJ   r.   ri   rK   r   r   r   %test_detect_chained_assignment_raises   s>    
*
*
*
2
L
Nz2TestChaining.test_detect_chained_assignment_raisesc                 C   s   t ttdddtjtddtjdd}|s6|rnt  d|j	d d< W d    q1 sb0    Y  n<t
jttd	 d|j	d d< W d    n1 s0    Y  d S )
Nr   rp   rv   rP   rw   rm   r   rA   rx   )r   r   r{   r   rd   r(   rz   r)   r*   r>   rW   r|   r   r}   r,   r-   rJ   r.   r   r   r   $test_detect_chained_assignment_fails  s    
.z1TestChaining.test_detect_chained_assignment_failsc                 C   s   t g dttdddd}|jd u s,J |jjd}|sB|rxt  d|| d< W d    q1 sl0    Y  n:t	j
ttd	 d|| d< W d    n1 s0    Y  d S )
N)r1   r1   r2   r3   r2   r1   r6   r9   rp   rv   )r;   r=   o*   r=   rx   )r   r   r{   rt   r;   str
startswithr)   r*   rW   r|   r   r}   r,   r-   rJ   r.   indexerr   r   r   *test_detect_chained_assignment_doc_example  s    
,z7TestChaining.test_detect_chained_assignment_doc_examplec              	   C   s  t g dg dd}t tg dtdg dd}| }|s|stjttd d|jd d	< W d    n1 sv0    Y  |rt	
  d|d	 d< W d    n1 s0    Y  t	|| n|rt	
  d|d	 d< W d    n1 s0    Y  t	|| n|stjttdF t	
  d|d	 d< W d    n1 sP0    Y  W d    n1 sp0    Y  d|jd
< t	|| nd|d	 d< t	|| d S )N)o   bbbcccr   r   r8   rw   Zaaar   r   rv   rx   r   r   rA   )r   rA   )r   r   objectrI   rW   r|   r   r}   r>   r)   r*   rG   )r,   r~   r-   rJ   rK   r.   ri   r   r   r   +test_detect_chained_assignment_object_dtype*  s0    ,
*
*
L
z8TestChaining.test_detect_chained_assignment_object_dtypec                 C   sx   t dddgi}|jd u sJ td<}|| t|}|d |d< |d |d< W d    n1 sj0    Y  d S )NrA   r   r   Z__tmp__picklerQ   )r   rt   r)   Zensure_cleanZ	to_picklepdZread_pickle)r,   r.   pathdf2r   r   r   -test_detect_chained_assignment_is_copy_pickleM  s    

z:TestChaining.test_detect_chained_assignment_is_copy_picklec                 C   s   t d}|jg d }|jd us$J |jg d }|jd us@J |jdd }|j|  }|jd u slJ |d tj|d< d S )N順 )r   r   r   )r   r   r   rP   c                 S   s   t | dkS N
   r   r   r   r   r   <lambda>g  r   zSTestChaining.test_detect_chained_assignment_setting_entire_column.<locals>.<lambda>r   )	r   r+   rt   r   applyr>   rI   r   lower)r,   r.   r   r   r   r   r   4test_detect_chained_assignment_setting_entire_columnY  s    zATestChaining.test_detect_chained_assignment_setting_entire_columnc                 C   sH   t d}|jdd }|j| }|jd us0J |d tj|d< d S )Nr   c                 S   s   t | dkS r   r   r   r   r   r   r   q  r   zKTestChaining.test_detect_chained_assignment_implicit_take.<locals>.<lambda>r   )r   r   r   r>   rt   r   r   r,   r.   r   r   r   r   ,test_detect_chained_assignment_implicit_takem  s
    
z9TestChaining.test_detect_chained_assignment_implicit_takec                 C   s   |s|rt d td}|jdd }|j| }|jd usBJ |d tj|jd d df< |jd usnJ |d tj|d< |jd u sJ d S )Nz"_is_copy is not always set for CoWr   c                 S   s   t | dkS r   r   r   r   r   r   r     r   zLTestChaining.test_detect_chained_assignment_implicit_take2.<locals>.<lambda>r   )	rW   skipr   r   r   r>   rt   r   r   r   r   r   r   -test_detect_chained_assignment_implicit_take2w  s    

z:TestChaining.test_detect_chained_assignment_implicit_take2c                 C   s<   t d}|jdd }|j|df tj|j|df< d S )Nr   c                 S   s   t | dkS r   r   r   r   r   r   r     r   zATestChaining.test_detect_chained_assignment_str.<locals>.<lambda>r   )r   r   r   r>   r   r   r   r   r   r   "test_detect_chained_assignment_str  s    z/TestChaining.test_detect_chained_assignment_strc                 C   s4   t ddgi }|jd u s J |d  d7  < d S )Nr;   r   )r   Zdropnart   r,   r.   r   r   r   &test_detect_chained_assignment_is_copy  s    z3TestChaining.test_detect_chained_assignment_is_copyc                 C   sb   t tjdd}|jd d df  }t||jd d df   t||d   d S )Nr   r   rP   r   )	r   r   r   r   standard_normalr+   Zsort_valuesr)   rH   )r,   r.   rR   r   r   r   &test_detect_chained_assignment_sorting  s    z3TestChaining.test_detect_chained_assignment_sortingc                 C   sj   t g dg dd}t| |d d |d< t| ||d dk }t| |d d |d< t| d S )	N)r;   r;   r;   )rP      	   )column1column2r   r<   r   r   r=   )r   r   r   r   r   r   .test_detect_chained_assignment_false_positives  s    z;TestChaining.test_detect_chained_assignment_false_positivesc              	   C   s   t tdddgd}d|d< | }|rrt " d|jdd d< W d    n1 sZ0    Y  t|| n|rt " d|jdd d< W d    n1 s0    Y  njtj	t
td	J t " d|jdd d< W d    n1 s0    Y  W d    n1 s0    Y  d S )
Nr   r   countr   r<   groupr;   r"   rx   )r   r   r(   rI   r)   r*   r+   rG   rW   r|   r   r}   )r,   r-   rJ   r.   ri   r   r   r   /test_detect_chained_assignment_undefined_column  s    
0
2
z<TestChaining.test_detect_chained_assignment_undefined_columnc              	   C   s4  t tdddtjddtjdddg dd}| }|sH|r&t	  d	|j
d d
< W d    n1 st0    Y  t	  d	|j
d d< W d    n1 s0    Y  t|| tj	tfd d	|d d< W d    n1 s0    Y  |rt|| n|j
d d	ks0J n
tjttd d	|j
d d
< W d    n1 sZ0    Y  tjttd d	|j
d d< W d    n1 s0    Y  |stjttdF t	  d	|d d< W d    n1 s0    Y  W d    n1 s0    Y  n d	|d d< |j
d d	ks0J d S )NZ20130101r"   )Zperiodsr   rp   rv   r;   r<   r=   de)rA   rQ   rE   rF   rc   rF   rE   )Zextra_warnings)r   rE   rx   )r   r
   r   r   r   r   r(   rI   r)   r*   r>   rG   FutureWarningrW   r|   r   r}   )r,   r~   r-   rJ   r.   ri   r   r   r   -test_detect_chained_assignment_changing_dtype  s:    


,
,*..
Nz:TestChaining.test_detect_chained_assignment_changing_dtypec                 C   s  t ttdtdddtjdgd}| }t|j}|rt	
 ( |dg | |dg |< W d    n1 st0    Y  t	|| n|rt	
 ( |dg | |dg |< W d    n1 s0    Y  nHtjttd( |dg | |dg |< W d    n1 s0    Y  d S )	NrP   zab..r;   r<   r   r:   r=   rx   )r   rr   r{   r   re   rI   r   Zisnar=   r)   r*   rG   rW   r|   r   r}   )r,   r-   rJ   r.   ri   rh   r   r   r   test_setting_with_copy_bug  s     
6
8z'TestChaining.test_setting_with_copy_bugc                 C   s8   t tg dtg dd}|dg }g d|d< d S )Nr:   )r   r   f)r   yr   )ghir   )r   r   )r,   Zdf1r   r   r   r   %test_setting_with_copy_bug_no_warning  s    
z2TestChaining.test_setting_with_copy_bug_no_warningc              	   C   s&  t g dg dd}|s|rXt  d|jd d< W d    n1 sJ0    Y  d S tddH tt d|jd d< W d    n1 s0    Y  W d    n1 s0    Y  tdd	L tjt	t
d
 d|jd d< W d    n1 s0    Y  W d    n1 s0    Y  d S )Nr   r   rw   r   r   rA   r!   warnrl   rx   )r   r)   r*   r>   r   assert_produces_warningr   rW   r|   r   r}   r   r   r   r   .test_detect_chained_assignment_warnings_errors  s    
,Jz;TestChaining.test_detect_chained_assignment_warnings_errorsrhsr8   r   )r   r   r8   rP   c              	   C   s   t tddd}| }|jd d }tddr |s|stt	*}||d< |d j
tksfJ W d    q1 sz0    Y  n||d< t|| W d    n1 s0    Y  d S )N   r"   r8   r!   r   r   r   )r   r   r(   rs   rI   r>   r   r)   r   r   filename__file__rG   )r,   r   r-   rJ   r.   ri   Zchainedtr   r   r   1test_detect_chained_assignment_warning_stacklevel  s    2z>TestChaining.test_detect_chained_assignment_warning_stacklevelc                 C   s   t dtdg dtdg d}|d jd }|jd }t|| |jd d }t|| |d jd }t|| |d jd }t|| d S )Nr"   r8   rw   rA   r   )r   rA   )r   r   zerosZonesr+   r>   r)   Zassert_numpy_array_equal)r,   r.   rK   rj   Zresult2Zresult3Zresult4r   r   r   test_chained_getitem_with_lists2  s    &
z,TestChaining.test_chained_getitem_with_listsc                 C   s^   t tdttdtdd}|d  |jd |jd< d|d jv sHJ d|d jv sZJ d S )	Nr   ZABCDrv   r   rA   r   zHello FriendrQ   )	r   r   r   r   rr   r   r+   r>   rC   r   r   r   r   test_cache_updatingC  s    z TestChaining.test_cache_updatingc                 C   s   t tjdddg dtdd}d|d< | }|r~tjtd	d
 d|jj	d< W d    n1 sd0    Y  t
|| d S d|jj	d< d|jj	d< t tjdddg dtdd}d|jd< t
|| tg ddd}t
|j| d S )N)r"   r"   rp   rv   r   r"   )r   rC   r   r   z	read-onlyrx   r   r8   r   )r"      )r;   r<   r=   r   r   r   )r8   r   )r   r   r   r   r   name)r   r   r   r{   rI   rW   r|   
ValueErrorr   valuesr)   rG   atr   rH   )r,   r-   r.   Zdf_origrK   r   r   r   test_cache_updating2O  s.    *
z!TestChaining.test_cache_updating2c              	   C   s  t dd  ttddgd d}d|d< dgt| }t  d|d	 jd
< W d    n1 sf0    Y  |j|  t  d|d	 jd
< W d    n1 s0    Y  |s|d	 jd
 dksJ n|d	 jd
 dksJ W d    n1 s0    Y  d S )Nr!   r"   r#   r$   r&   r'   Tgp=
ף?r%   r   g333333?)r   r   r{   r   r)   r*   r+   )r,   r-   r.   Zckr   r   r   $test_iloc_setitem_chained_assignmentk  s    
,

,z1TestChaining.test_iloc_setitem_chained_assignmentc                 C   s~   t dg di}t  d|d jd< W d    n1 s<0    Y  t|t dg di t|d tg ddd d S )Nr;   )r         (   rP   r   )r   r)   r*   r>   rG   rH   r   r   r   r   r   'test_getitem_loc_assignment_slice_state  s
    
,z4TestChaining.test_getitem_loc_assignment_slice_stateN)#rT   rU   rV   rk   rW   rX   Zarm_slowru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rY   r   r   tdZ&skip_array_manager_not_yet_implementedr   r   r   r   r   r   r   r   r   rZ      sT   4

+


"


	






+	

rZ   )r   )stringr   numpyr   rW   Zpandas.errorsr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandasr   r   r   r   r	   r
   r   Zpandas._testingZ_testingr)   r}   r   r    rZ   r   r   r   r   <module>   s    
	j