a
    dޒ                     @   s  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
 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jdddgddgddd Zejjdddgddgdejjdeddeg deddggg ddejjdedd eg ddd ggg ddd!d" Zejjdddgddgdejjdedd#eg deddggg ddejjdedd#eg dddggg ddd$d% Zejjd&ed deg d'ed dggg ddd(d) Zd*d+ Zd,d- Zejjdddgddgdd.d/ Zd0d1 Z ejjdddgddgdd2d3 Z!ejjd&ed4deg d'd4dggg ddd5d6 Z"ejjd7d8d9 d:d9 d;d9 d<d9 d=d9 d>d9 gg d?dejjdddgddgdd@dA Z#ejjdddgddgddBdC Z$ejjd7dDd9 dEd9 dFd9 dGd9 gg dHddIdJ Z%dKdL Z&ejjd7dMd9 dNd9 dOd9 dPd9 dQd9 gg dRddSdT Z'ejjd7dUd9 dVd9 dWd9 gg dXddYdZ Z(d[d\ Z)ejjd&ed deg d'ed dggg ddd]d^ Z*d_d` Z+dadb Z,dcdd Z-dedf Z.ejjd7dgd9 dhd9 did9 gg dXddjdk Z/dldm Z0ejdndod4gejdpej1dqfej2drfej1d gd4ffej2d gd ffej1edd4ffej2edd ffgejjdsg dtg dugddgddvdw Z3dxdy Z4dzd{ Z5d|d} Z6d~d Z7dS )    N)SettingWithCopyWarning)is_float_dtype)	DataFrameSeries)	get_arraynumpynullable)paramsc                 C   sB   | j dkrdd }dd }n| j dkr6dd }dd }| j ||fS )	Nr   c                  _   s   t | i |S N)r   argskwargs r   m/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/copy_view/test_indexing.pymake_dataframe   s    zbackend.<locals>.make_dataframec                  _   s   t | i |S r
   )r   r   r   r   r   make_series   s    zbackend.<locals>.make_seriesr   c                  _   sX   t | i |}| }|jD ]2}t|| jrt|| js|| d||< q| S )NZFloat64)r   convert_dtypescolumnsr   dtypeastypecopy)r   r   dfZdf_nullablecolr   r   r   r      s    
c                  _   s   t | i |}|  S r
   )r   r   r   )r   r   serr   r   r   r   *   s    )param)requestr   r   r   r   r   backend   s    


r   c                 C   s   | \}}}|g dg dg dd}|  }|ddg }|rftt|dt|dsZJ d|jd< n&tt|dt|drJ d|jd< tt|dt|drJ |g d	g dd
}t|| t|| d S )N                  皙?皙?333333?abcr*   r,   r   r   r   r   r   r    r*   r,   )r   npshares_memoryr   iloctmassert_frame_equalr   using_copy_on_write_r   r   df_origsubsetexpectedr   r   r   test_subset_column_selection5   s    

r;   c                 C   s   | \}}}|g dg dg dd}|ddg }|rRt t|dt|dsRJ d|jd< t t|dt|drxJ |rt t|dt|dsJ |g dg dd	}t|| d S )
Nr   r!   r%   r)   r*   r,   r   r-   r/   )r0   r1   r   r2   r3   r4   )r   r6   r7   r   r   r9   r:   r   r   r   *test_subset_column_selection_modify_parentQ   s    

r<   c                 C   s   | \}}}|g dg dg dd}|  }|dd }|j  tt|dt|ds`J |rd|jd	< tt|dt|drJ n
d|jd	< |j  |ddgd
dgddgdtddd}t	|| |rt	|| nd|jd< t	|| d S )Nr   r!   r%   r)   r   r    r*   r   r-   r#   r$   r'   r(   index)r   r   )
r   _mgr_verify_integrityr0   r1   r   r2   ranger3   r4   r5   r   r   r   test_subset_row_sliceh   s"    




&
rB   r   int64float64zsingle-blockzmixed-block)idsc              	   C   s  | \}}}|dko|dko| }|g dg dt jg d|dd}| }	|jd d dd f }
|
j  |rt t|
d	t|d	sJ d
|
jd< t t|
d	t|d	rJ nn|rtnd }t	
ddD t| d
|
jd< W d    n1 s0    Y  W d    n1 s0    Y  |g dt jg d|dd}t|
| |sz|sb|rzd
|	jd< t||	 nt||	 d S )NrC   r   r   r!         	   r   r)   r   r+   r   r-   chained_assignmentwarn)r   r#   r$   r+   r,   r   r   )r0   arrayr   r2   r?   r@   r1   r   r   pdoption_contextr3   assert_produces_warningr4   )r   r6   using_array_managerr   dtype_backendr   r7   Zsingle_blockr   r8   r9   rL   r:   r   r   r   test_subset_column_slice   s2    
 

H 
rU   row_indexerr   r   )FTT)slicemaskrO   column_indexerr+   r,   c                 C   s   | \}}}|g dg dt jg d|dd}	|	 }
|	j||f }d|jd< |ddgt jd	d
g|ddtddd}t|| t|t	rt|t	r|s|dkr|dkr|sd|
jd< t|	|
 d S Nr   r!   rF   rJ   r)   r   r-   r$   rH   rI   rM   r   r    r=   rC   r   )r   r   )
r0   rO   r   locr2   rA   r3   r4   
isinstancerW   r   r   rV   rY   rS   r6   rT   r   r7   r   r8   r9   r:   r   r   r   test_subset_loc_rows_columns   s2    
 
"
r^   r    c                 C   s   | \}}}|g dg dt jg d|dd}	|	 }
|	j||f }d|jd< |ddgt jd	d
g|ddtddd}t|| t|trt|tr|s|dkr|dkr|sd|
jd< t|	|
 d S rZ   )	r0   rO   r   r2   rA   r3   r4   r\   rW   r]   r   r   r   test_subset_iloc_rows_columns   s2    
 
"
r_   indexer)TTFc              	   C   sL  | \}}}|g dg dg dd}|  }|dd }|tju rdt|tjrd|jdkrdtd |rvd	|||< nt|tju rt	nd }	t
d
dF t|	 d	|||< W d    n1 s0    Y  W d    n1 s0    Y  |g dg dg ddtddd}
t||
 |r0t|| nd	|dd< t|| d S )Nr   r   r    r"   r"   r#   r$   rG   r&   r'   r(   皙?r)   r   r"   intz&setitem with labels selects on columnsr   rK   rL   )r   r   r"   )r   r   rG   )        rf   rd   r=   r    )r   r3   setitemr\   r0   ndarrayr   pytestskipr   rP   rQ   rR   rA   r4   )r   
indexer_sir`   r6   r7   r   r   r8   r9   rL   r:   r   r   r    test_subset_set_with_row_indexer-  s2    


Hrl   c           	   	   C   s  | \}}}|g dg dg dd}|  }|dd }|dk}|rPd||< n^td	d
B tt d||< W d    n1 s0    Y  W d    n1 s0    Y  |g dg dg ddtddd}t|| |rt|| n(d|jd< d|jdddf< t|| d S )Nra   rb   rc   r)   r   r"   r    r   rK   rL   )r   r    r   )r   r   r   )r'   r(   rd   r=   )r    r*   r+   )	r   rP   rQ   r3   rR   r   rA   r4   r[   )	r   r6   r7   r   r   r8   r9   rX   r:   r   r   r   test_subset_set_with_maskW  s&    

D
rm   c           
   	   C   s   | \}}}|g dg dg dd}|  }|dd }|dkrVtjdd	gd
d}ntjdd	gdd}|rv||d< n^tddB tt ||d< W d    n1 s0    Y  W d    n1 s0    Y  |j	  |dd	gddgddgdt
ddd}	t||	 t|| d S )Nr   r!   r%   r)   r   r    r   
      rC   rJ   ZInt64r*   rK   rL   r#   r$   r'   r(   r=   )r   r0   rO   rP   rQ   r3   rR   r   r?   r@   rA   r4   )
r   r6   rT   r   r7   r   r8   r9   Zarrr:   r   r   r   test_subset_set_columnu  s$    

D
rp   c           
   	   C   sp  | \}}}|g dg dt jg d|dd}| }|dd }|rjt jdd	gd
d|jd d df< n|tdd` tjd | d0 t jdd	gd
d|jd d df< W d    n1 s0    Y  W d    n1 s0    Y  |j	  |dd	gddgt jddg|ddt
ddd}	t||	 |r@t|| n,t jdd	gd
d|jdddf< t|| d S )Nr   r!   rF   rJ   r)   r   r    rn   ro   rC   r*   rK   rL   Zraise_on_extra_warningsr#   r$   rH   rI   r=   )r0   rO   r   r[   rP   rQ   r3   rR   r?   r@   rA   r4   )
r   r6   rS   r   r7   r   r   r8   r9   r:   r   r   r   test_subset_set_column_with_loc  s0    
 "\
  rr   c           	   	   C   s  | \}}}|dg di}|  }|dd }|rFd|jd d df< nntddR tjd | d" d|jd d df< W d    n1 s0    Y  W d    n1 s0    Y  |j  |dddgitddd	}t	|| |rt	|| nd|jdddf< t	|| d S )
Nr*   r   r   r    r   rK   rL   rq   r=   )
r   r[   rP   rQ   r3   rR   r?   r@   rA   r4   )	r   r6   rS   r7   r   r   r8   r9   r:   r   r   r    test_subset_set_column_with_loc2  s&    
N
rs   c           	   	      sP  | \}}}|g dg dt jg d|dd}| }|dd  |rVd d	d
g< nbtddF tt d d	d
g< W d    n1 s0    Y  W d    n1 s0    Y   j	  |rt
 fdddD sJ |ddgddgddgdtddd}|dkr4|d	 d|d	< |d
 d|d
< t | t|| d S )Nr   r!   rF   rJ   r)   r   r    r   r*   r,   rK   rL   c                 3   s   | ]} j |V  qd S r
   )r?   _has_no_reference).0ir9   r   r   	<genexpr>      z*test_subset_set_columns.<locals>.<genexpr>)r   r   r#   r$   r=   r   rC   )r0   rO   r   rP   rQ   r3   rR   r   r?   r@   allrA   r   r4   )	r   r6   r   rT   r   r7   r   r8   r:   r   rw   r   test_subset_set_columns  s(    
 H
&
r{   r*   c           	      C   s  | \}}}|g dg dg dd}|  }|dd }|rRd|jd d |f< n>tdd	" d|jd d |f< W d    n1 s0    Y  |j  |ddgd
d
gddgdtddd}t|| |rt|| n"d|jddddgf< t|| d S )Nr   r%   r!   r)   r   r    r   rK   rL   rf   r#   r$   r=   r   r*   r+   )	r   r[   rP   rQ   r?   r@   rA   r3   r4   )	r   r`   r6   r7   r   r   r8   r9   r:   r   r   r   #test_subset_set_with_column_indexer  s    
0
&r|   methodc                 C   s   | ddg dd S Nr*   r+   r   r   r   r   r   r   r   <lambda>   ry   r   c                 C   s   | dd ddg S Nr   r   r*   r+   r   r   r   r   r   r   !  ry   c                 C   s   | ddg j dd S r~   r2   r   r   r   r   r   "  ry   c                 C   s   | ddg j dd S )Nr*   r+   r   r   r[   r   r   r   r   r   #  ry   c                 C   s   | dd j d d ddf S )Nr   r   r   r   r   r   r   r   $  ry   c                 C   s   | dd j d d ddf S r   r   r   r   r   r   r   %  ry   )zrow-getitem-slicezcolumn-getitemzrow-iloc-slicezrow-loc-slicecolumn-iloc-slicecolumn-loc-slicec                 C   s   |\}}}|g dg dt jg d|dd}| }	| jjj}
|sP|
dv }n
|
d}||}d|jd	< |st|st	||	 n|jd	 dksJ ||}d|jd	< |d
dgddgd}|s|st	|| n|jd	 dksJ d S )Nr   r!   rF   rJ   r)   )z$numpy-single-block-column-iloc-slicez#numpy-single-block-column-loc-slice)r   r   r   r-   r   r   r"   r#   r*   r+   )
r0   rO   r   nodeZcallspecidendswithr2   r3   r4   )r   r   r}   r   r6   rS   r7   r   r   r8   Ztest_callspecZsubset_is_viewr9   r:   r   r   r   test_subset_chained_getitem  s,    
 



r   c           
      C   s   | \}}}|g dg dt jg d|dd}| }|d d  d dd }|  d|jd< |rtt|| n|jd	 dksJ |d d  d dd }|  d|jd	< |d
dgdd}	|rt||	 n|jd dksJ d S )Nr   r!   rF   rJ   r)   r*   r   r   r-   r   name)r0   rO   r   Z_clear_item_cacher2   r3   r4   assert_series_equal)
r   r   r6   r7   r   r   r   r8   r9   r:   r   r   r   "test_subset_chained_getitem_column_  s$    
 

r   c                 C   s   | dd dd S Nr*   r,   r+   r   sr   r   r   r     ry   c                 C   s   | j dd j dd S )Nr   r    r   r   r   r   r   r   r     ry   c                 C   s   | j dd j dd S r   r   r   r   r   r   r     ry   c                 C   s6   | j dd jdd jdd j dd jdd S )Nr*   r,   r   r    r   r+   r   )r[   r2   r   r   r   r   r     s   )getitemr2   r[   z
long-chainc           	      C   s   | \}}}|g dg dd}|  }||}d|jd< |rJt|| n|jd dks\J |jdd jdd }d|jd< |ddgdd	gd}|rt|| n|jd dksJ d S )
Nr   r)   r=   r   r    r   r   r*   r+   r   r2   r3   r   )	r   r}   r6   r7   r   r   s_origr9   r:   r   r   r   "test_subset_chained_getitem_series  s    


r   c                 C   s   t g dg dg dd}| }|d d  jd jdd }d|jd< | sR|r`t|| n|jd dksrJ |d d  jd jdd }d|jd< tdd	gd
dgdd}| s|rt|| n|jd dksJ d S )Nr   r!   rF   r)   r   r   r-   r   r"   r*   r+   )r>   r   )r   r   r2   r3   r4   r   r   )r6   rS   r   r8   r9   r:   r   r   r   $test_subset_chained_single_block_row  s    

r   c                 C   s   | d d  S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d d d f S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d  S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d d d f S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d  S r
   r   r   r   r   r   r     ry   )r   r[   zloc-rowsr2   z	iloc-rowsc                 C   st   | \}}}|g dg dg dd}|  }||}||usBJ d|jd< |r^t|| n|jd dkspJ d S )Nr   r!   rF   r)   r   r-   )r   r2   r3   r4   )r   r}   r6   r7   r   r   r8   df2r   r   r   test_null_slice  s    

r   c                 C   s   | d d  S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d  S r
   r   r   r   r   r   r     ry   c                 C   s   | j d d  S r
   r   r   r   r   r   r     ry   )r   r[   r2   c                 C   sl   | \}}}|g dg dd}|  }||}||us:J d|jd< |rVt|| n|jd dkshJ d S )Nr   r)   r=   r   r   )r   r}   r6   r7   r   r   r   s2r   r   r   test_null_slice_series  s    


r   c                 C   s   | \}}}|g dg dd}|  }|d d  }tt|t|sJJ d|jd< |rptt|t|rpJ |g dg dd}t|| |rt|| n|jd dksJ d S )Nr   r)   r=   r   r.   )r   r0   r1   r   r2   r3   r   )r   r6   r7   r   r   r   r9   r:   r   r   r   test_series_getitem_slice  s    

r   c                 C   s   | \}}}|g dg dd}|  }|d d  }d }	d}
|tju r`t|tjr`|jjdkr`t}	tj	|	|
d d|||< W d    n1 s0    Y  |g dg dd}t
|| |rt
|| nt
|| d S )	Nr   r)   r=   z;Series.__setitem__ treating keys as positions is deprecatedrv   matchr   )r   r   r    )r   r3   rg   r\   r0   rh   r   kindFutureWarningrR   r   )r   rk   r`   r6   r7   r   r   r   r9   rL   msgr:   r   r   r   #test_series_subset_set_with_indexer  s(    	


*r   c                 C   s  | \}}}|g dg dg dd}|  }|d d  }tt|dt|dsVJ |d= tt|dt|dsxJ t|| t||ddg  |j  d|jd	< tt|dt|dsJ |  }d
|jd< |rt|| n|jd d
ksJ d S )Nr   r!   r%   r)   r*   r+   r,      )r   r+   d   r   r*   )	r   r0   r1   r   r3   r4   r?   r@   r[   )r   r6   r7   r   r   r8   r   r   r   r   test_del_frame=  s"    



r   c                 C   s   | \}}}|g dg dd}|  }|d d  }tt|t|sJJ |d= tt|t|rhJ t|| t||ddg  |j}d|jd< |d dksJ d S )	Nr   r)   r=   r*   r+   r,   r   r   )r   r0   r1   r   r3   r   valuesr[   )r   r7   r   r   r   r   r   r   r   r   test_del_seriesZ  s    

r   c              	   C   s0  | \}}}|g dg dg dd}|  }|d }tt|dt|dsRJ |sZ|rdd|d< nn|dkrptnd }	tdd	B t|	 d|d< W d    n1 s0    Y  W d    n1 s0    Y  |g d
dd}
t	||
 |rt
|| t	|d |d  nd|jd< t
|| d S )Nr   r!   r%   r)   r*   r   r   rK   rL   r.   r   r-   )r   r0   r1   r   r   rP   rQ   r3   rR   r   r4   r2   )r   r6   rS   rT   r   r   r   r8   r   rL   r:   r   r   r   test_column_as_seriesr  s$    

D
r   c              	   C   s  | \}}}|g dg dg dd}|  }|d }|dkrtjtdd d	|d
< W d    n1 sj0    Y  |g ddd}	n|s|rtjtdd d	|d
< W d    n1 s0    Y  |g dtdd}	nt	ddZ d
ddg}
tjttf|
d d	|d
< W d    n1 s&0    Y  W d    n1 sF0    Y  |g dtdd}	t||	 |rt|| t|d |d  n|	|d< t|| d S )Nr   r!   r%   r)   r*   r   zInvalid valuer   foor   r   zincompatible dtype)r   r   r    )r   r   rK   rL   |zAA value is trying to be set on a copy of a slice from a DataFrame3Setting an item of incompatible dtype is deprecated)r   ri   Zraises	TypeErrorr3   rR   r   objectrP   rQ   joinr   r   r4   )r   r6   rS   rT   r   r   r   r8   r   r:   r   r   r   r   %test_column_as_series_set_with_upcast  s:    
&&Hr   c                 C   s   | d S Nr*   r   r   r   r   r   r     ry   c                 C   s   | j d d df S r   r   r   r   r   r   r     ry   c                 C   s   | j d d df S )Nr   r   r   r   r   r   r     ry   c              	   C   s,  |\}}}|g dg dg dd}|  }	||}
||}d| jjv }|sR|r`|
|uslJ n|
|u slJ |st|rd|
jd< np|dkrtnd }tdd	D t| d|
jd< W d    n1 s0    Y  W d    n1 s0    Y  |rt	||	d
  t
||	 n|jd dks(J d S )Nr   r!   r%   r)   r2   r   r   rK   rL   r*   )r   r   r   r2   r   rP   rQ   r3   rR   r   r4   )r   r   r}   r6   rS   rT   r   r7   r   r8   s1r   Zis_ilocrL   r   r   r   #test_column_as_series_no_item_cache  s&    
Fr   c                 C   s   | \}}}|g dg dd}|g d}||d< |rTt t|dt|snJ nt t|dt|rnJ d|d< |g dg dg dd}t|| d S )Nr   r%   r   )rn   ro      newr   )r*   r+   r   )r0   r1   r   r3   r4   )r   r6   r7   r   r   r   r   r:   r   r   r   %test_dataframe_add_column_from_series  s    
r   valr   zindexer_func, indexerr   r-   r   r%   rF   c                 C   s>  t g dg d|d}| }|d d  }|dkr|d td krtjtdd ||||< W d    q1 st0    Y  n||||< | rtt|dt|dsJ tt|dt|drJ t	|| ndtt|d	t|d	sJ |dkrtt|dt|dr:J ntt|dt|ds:J d S )
Nr   r!   r)   r*   r   r   r   r+   r,   )
r   r   rW   r3   rR   r   r0   r1   r   r4   )r6   Zindexer_funcr`   r   r   r   r8   viewr   r   r   )test_set_value_copy_only_necessary_column  s"    ,
 r   c                 C   s   t g dtjg dg dgd}|d }tt|t|sDJ d|jd< | rt g dtjg dg dgd}t	|| d S )Nr   )r   r   r   )r    r"   r#   r=   r   r   r   )
r   rP   
MultiIndexZfrom_arraysr0   r1   r   r2   r3   r   r6   r   resultr:   r   r   r   test_series_midx_slice'  s    $
r   c                 C   sv   t ddgddd}| }|d }| r8|jdr8J |sXtt|dt|dsXJ | rrd|jd	< t	|| d S )
Nr   r   )r*   x)r*   y)r+   r   )r*   r   r   r   r   r-   )
r   r   r?   rt   r0   r1   r   r2   r3   r4   )r6   rS   r   r8   Znew_dfr   r   r   test_getitem_midx_slice3  s    
r   c                 C   sv   t g dtjg dd}|d }tt|t|s<J d|jd< | rrt g dtjg dd}t	|| d S )Nr   ))r   r   r    )r   r"   ))r   r    r"   r=   r   r   r   )
r   rP   r   from_tuplesr0   r1   r   r2   r3   r   r   r   r   r   test_series_midx_tuples_sliceB  s    
r   c                 C   s   t dg di}t g dg dd}| }||jd d ddgf< | rtt|dt|dsdJ tt|dt|dsJ |jdrJ ntt|dt|drJ d|jd	< t	
|| d S )
Nr*   r   r!   rM   r+   r,   r   r   rN   )r   r   r[   r0   r1   r   r?   rt   r2   r3   r4   )r6   r   rhsZrhs_origr   r   r   !test_loc_enlarging_with_dataframeR  s    
r   )8r   r0   ri   Zpandas.errorsr   Zpandas.core.dtypes.commonr   ZpandasrP   r   r   Zpandas._testingZ_testingr3   Zpandas.tests.copy_view.utilr   Zfixturer   r;   r<   rB   markZparametrizerU   rW   rO   r^   r_   rl   rm   rp   rr   rs   r{   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r[   r2   r   r   r   r   r   r   r   r   r   <module>   s:  
##
'"/"/"
%
% 
 
,



	
"
!+	
$