a
    PfȈ                  
   @   s  d dl m Z  d dlZd dlZd dlZd dlmZ d dlm  m	Z
 d dlZd dlmZmZ d dlmZmZ dd Zdd	 Zd
d Zdd Zejddejfddddejejfgejdddgdd Zdd Zdd Zejdddgejdd d!gejd"dejejgejd#ddgd$d% Zejd#g d&d'd( Zejdddgejdd d!gejd"dejejgejd#ddgd)d* Z ejd#g d&d+d, Z!d-d. Z"d/d0 Z#d1d2 Z$d3d4 Z%ejd5dd6d7d8igejd9g d:g d;gd<d= Z&d>d? Z'ejd5d@dA dBdA ddCdAgdDdE Z(dFdG Z)dHdI Z*dJdK Z+dLdM Z,dNdO Z-dPdQ Z.ejdRddSdSejgfddSdejgfgdTdU Z/dVdW Z0dXdY Z1dZd[ Z2d\d] Z3d^d_ Z4ejdddgd`da Z5dbdc Z6ddde Z7dfdg Z8dhdi Z9djdk Z:dldm Z;dndo Z<dpdq Z=drds Z>dtdu Z?dvdw Z@dxdy ZAdzd{ ZBejd|dejCde
Dd}d~gdd ZEdd ZFdd ZGdS )    )datetimeN)PerformanceWarning)Series_testing)_convert_na_valueobject_pyarrow_numpyc                 C   s   | dv S )N)zstring[pyarrow]string[pyarrow_numpy] dtyper	   r	   _/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/strings/test_find_replace.pyusing_pyarrow   s    r   c                 C   s  t jdt jdddgt jd}t|| d}d}|j|}| tv rDdnd}tt jd	t jd
d
d	gt jd|d}t	|| |jj|d	d}tt jd	t jd	d	d
gt jd|d}t	|| tt jg dt
d| d}|j|}| tv rt jnd}tt g d|d}t	|| tt jg dt
d| d}|jjdd	d}tt g d|d}t	|| |jjdd	d	d}tt g d|d}t	|| tt jdt jddgt jd| d}d}|j|}| tv rdnd}tt jd	t jd
d
gt jd|d}t	|| |jj|d	d}| tv r$t jnd}tt g d|d}t	|| tt jg dt jd| d}|j|}tt g d|d}t	|| d S )Nfoofooommm__foommm_zfoommm[_]+barr
   zmmm[_]+objectbooleanFTregex)r   Zxyzr   r   )FFTT)ZFooZxYzZfOOomMm__fOoZMMM_zFOO|mmmcase)TFTT)r   r   )TFTFna)nparraynanobject_r   strcontainsr   tmassert_series_equalr   bool_)any_string_dtypevaluespatresultexpected_dtypeexpectedr	   r	   r   test_contains   st    r(   c                  C   sv   t tjdtjddt dd ddg	td} | jd}t tjd	tjd	tjtjdd tjtjg	tj	d}t
|| d S )
NabTr             @r
   oF)r   r   r   r   r   todayr   r   r   r   r   r    mixedr%   r'   r	   r	   r   test_contains_object_mixedg   s    r1   c                  C   s   t ddddtjgdd} | jjddd}t g d}t|| | jjdd	d}t g d
}t|| t ddddtjg} | jjddd}t g d}t|| | jjdd	d}t g d
}t|| d S )Nr)   r*   ccategoryr
   Tr   )TFFTTF)TFFTFr   r   r   r   r   r   r    )r#   r%   r'   r	   r	   r   *test_contains_na_kwarg_for_object_categoryx   s    r5   zna, expected)TT)FF)r   F)   Tr   TFc                 C   sP   t ddddtjg| d}|jjd||d}t dddd|gdd}t|| d S )	Nr)   r*   r2   r
   )r   r   TFr   r4   )nullable_string_dtyper   r'   r   r#   r%   r	   r	   r   0test_contains_na_kwarg_for_nullable_string_dtype   s    r8   c                 C   s`  t ddddddtjddd	g
| d
}|jd}| tv r:dnd}t ddddddtjdddg
|d
}t|| |jjddd}t ddddddtjdddg
|d
}t|| |jd}t ddddddtjdddg
|d
}t|| |jd}t ddddddtjdddg
|d
}t|| |jjddd}t ddddddtjdddg
|d
}t|| d S )NABCAabaBaca CABAdogcatr
   r)   r   r   FTr   ZAaba)r   r   r   r   r   r   r   r    r"   sr%   r&   r'   r	   r	   r   test_contains_moar   sF    rE   c                 C   s*  t tjtjtjg| d}|jjddd}| tv r6tjnd}t g d|d}t|| |jjddd}t g d|d}t|| |jjddd}| d	krt g d
tj	d}n,| dkrt g dtjd}nt g ddd}t|| |jd}| tv rd	nd}t tjtjtjg|d}t|| d S )Nr
   r   Fr   r   )FFFT)TTTr   )r   r   r   r   )
r   r   r   r   r   r   r!   r   r    r   rC   r	   r	   r   test_contains_nan   s&    rF   r$   r   )r   Zbazr   r   r3   
null_valuer   c           
   
   C   s$  t d|ddd|dg|d}|j| }t dtjdddtjdg}|d	kr^|tju r^||}n|d	krz|d u rzd || < t	
|| |jj| |d
}t d|ddd|dg}t	
|| tjdtjddt dd ddg	tjd}t |jd}t dtjdtjtjdd tjtjg	}	t	
||	 d S Nomfoo_nomnombar_foor   r
   FTr   r   r)   r*   r+   r,   f)r   r   
startswithr   r   pdNAfillnaisnar   r    r   r   r.   r   
r$   r   rG   r   r#   r%   expr0   rsZxpr	   r	   r   test_startswith   s*    $rV   )NTFc              
   C   s   t g d| d}|jjd|d}t d|ddd|dddg	dd}t|| |jjd|d}t d|ddd|dddg	dd}t|| d S 	N)	rI   NrJ   rK   rL   Nr   r   rege.r
   r   r   FTr   rX   )r   r   rN   r   r    r7   r   r#   r%   rT   r	   r	   r   %test_startswith_nullable_string_dtype  s    rZ   c           
   
   C   s"  t d|ddd|dg|d}|j| }t dtjdddtjdg}|d	kr^|tju r^||}n|d	krz|d u rzd || < t	
|| |jj| |d
}t d|ddd|dg}t	
|| tjdtjddt dd ddg	td}t |jd}t dtjdtjtjdd tjtjg	}	t	
||	 d S rH   )r   r   endswithr   r   rO   rP   rQ   rR   r   r    r   r   r.   r   rS   r	   r	   r   test_endswith.  s*    $r\   c              
   C   s   t g d| d}|jjd|d}t d|ddd|dddg	dd}t|| |jjd|d}t d|ddd|dddg	dd}t|| d S rW   )r   r   r[   r   r    rY   r	   r	   r   #test_endswith_nullable_string_dtypeP  s    r]   c                 C   sF   t dtjg| d}|jjdddd}t dtjg| d}t|| d S )NfooBAD__barBADr
   BAD[_]*r>   Tr   foobarr   r   r   r   replacer   r    r"   serr%   r'   r	   r	   r   test_replaceh  s    re   c                 C   sz   t dtjg| d}t dtjg| d}|jjddddd}t|| t d	tjg| d}|jjd
dddd}t|| d S )Nr^   r
   	foobarBADr_   r>   r+   Tnr   Zfoo__barBADBADFra   r"   rd   r'   r%   r	   r	   r   test_replace_max_replacementsp  s    rk   c               
   C   sn   t dtjddt dd ddg	} t | jjdddd	}t d
tjdtjtjdd tjtjg	td}t	|| d S )NaBADbBADTfooBADr+   r,   r_   r>   r   r)   r*   r   r
   )
r   r   r   r   r.   r   rb   r   r   r    rd   r%   r'   r	   r	   r   test_replace_mixed_object|  s     rp   c                 C   s~   t ddg| d}t ddg| d}ttt| & |jjddtj	dd}W d    n1 sd0    Y  t
|| d S )	N   abcd,àutf-8r
      abcd, à(?<=\w),(?=\w), Tflagsr   )r   decoder   maybe_produces_warningr   r   r   rb   reUNICODEr    rj   r	   r	   r   test_replace_unicode  s
    4r|   replr6   r)   r*   data)r)   r*   N)r)   r*   r2   adc                 C   sP   d}||| d}t jt|d |jd| W d    n1 sB0    Y  d S )Nz!repl must be a string or callabler
   matchr)   )pytestraises	TypeErrorr   rb   )r"   index_or_seriesr}   r~   msgobjr	   r	   r   #test_replace_wrong_repl_type_raises  s    r   c                 C   s   t dtjg| d}dd }ttt| $ |jjd|ddd}W d    n1 sT0    Y  t d	tjg| d}t	|| d S )
Nr^   r
   c                 S   s   |  d S Nr   groupswapcasemr	   r	   r   <lambda>      z'test_replace_callable.<locals>.<lambda>[a-z][A-Z]{2}   Trg   foObaD__baRbaD
r   r   r   r   ry   r   r   r   rb   r    )r"   rd   r}   r%   r'   r	   r	   r   test_replace_callable  s    2r   c                   C   s   d S Nr	   r	   r	   r	   r   r     r   r   c                 C   s   d S r   r	   )r   xr	   r	   r   r     r   c                 C   s   d S r   r	   )r   r   yr	   r	   r   r     r   c              	   C   s   t dtjg| d}d}tjt|dR ttt	| " |j
jd|dd W d    n1 s^0    Y  W d    n1 s|0    Y  d S )Nr^   r
   zO((takes)|(missing)) (?(2)from \d+ to )?\d+ (?(3)required )positional arguments?r   r)   Tr   )r   r   r   r   r   r   r   ry   r   r   r   rb   )r"   r}   r#   r   r	   r	   r   test_replace_callable_raises  s    r   c                 C   s   t dtjg| d}d}dd }ttt| " |jj||dd}W d    n1 sV0    Y  t dtjg| d}t	|| d S )	NzFoo Bar Bazr
   z,(?P<first>\w+) (?P<middle>\w+) (?P<last>\w+)c                 S   s   |  d S )Nmiddler   r   r	   r	   r   r     r   z4test_replace_callable_named_groups.<locals>.<lambda>Tr   ZbARr   )r"   rd   r$   r}   r%   r'   r	   r	   r   "test_replace_callable_named_groups  s    0r   c                 C   s   t dtjg| d}td}ttt| " |j	j
|ddd}W d    n1 sT0    Y  t dtjg| d}t|| ttt| $ |j	j
|dddd	}W d    n1 s0    Y  t d
tjg| d}t|| d S )Nr^   r
   BAD_*r>   Tr   r`   r+   rg   rf   r   r   r   rz   compiler   ry   r   r   r   rb   r    )r"   rd   r$   r%   r'   r	   r	   r   test_replace_compiled_regex  s    
02r   c               
   C   sx   t d} tdtjddt dd ddg	}t|jj| ddd	}td
tjdtjtjdd tjtjg	t	d}t
|| d S )Nr   rl   rm   Trn   r+   r,   r>   r   r)   r*   r   r
   )rz   r   r   r   r   r   r.   r   rb   r   r   r    )r$   rd   r%   r'   r	   r	   r   (test_replace_compiled_regex_mixed_object  s    
 r   c                 C   s   t ddg| d}t ddg| d}tjdtjd}ttt| " |j	j
|ddd	}W d    n1 sp0    Y  t|| d S )
Nrq   rr   r
   rs   rt   rw   ru   Tr   )r   rx   rz   r   r{   r   ry   r   r   r   rb   r    )r"   rd   r'   r$   r%   r	   r	   r   #test_replace_compiled_regex_unicode  s    0r   c                 C   s   t dtjg| d}td}d}tjt|d& |jj	|dtj
dd W d    n1 sZ0    Y  tjt|d$ |jj	|dd	dd
 W d    n1 s0    Y  tjt|d$ |jj	|dddd
 W d    n1 s0    Y  d S )NZfooBAD__barBAD__badr
   r   z9case and flags cannot be set when pat is a compiled regexr   r>   Trv   Fr   r   )r   r   r   rz   r   r   r   
ValueErrorr   rb   
IGNORECASEr"   rd   r$   r   r	   r	   r   "test_replace_compiled_regex_raises  s    
42r   c                 C   s   t dtjg| d}dd }td}ttt| $ |j	j
||ddd}W d    n1 s^0    Y  t d	tjg| d}t|| d S )
Nr^   r
   c                 S   s   |  d S r   r   r   r	   r	   r   r     r   z6test_replace_compiled_regex_callable.<locals>.<lambda>r   r   Trg   r   r   )r"   rd   r}   r$   r%   r'   r	   r	   r   $test_replace_compiled_regex_callable  s    
2r   zregex,expectedZbaoc                 C   sB   t ddtjg|d}t ||d}|jjdd| d}t|| d S )Nzf.or   r
   zf.rB   r   ra   )r   r'   r"   rd   r%   r	   r	   r   test_replace_literal  s    r   c                 C   s\   t g | d}dd }d}tjt|d" |jjd|dd W d    n1 sN0    Y  d S )	Nr
   c                 S   s   |  d S r   r   r   r	   r	   r   r     r   z6test_replace_literal_callable_raises.<locals>.<lambda>z2Cannot use a callable replacement when regex=Falser   abcFr   )r   r   r   r   r   rb   )r"   rd   r}   r   r	   r	   r   $test_replace_literal_callable_raises  s
    r   c                 C   s^   t g | d}td}d}tjt|d" |jj|ddd W d    n1 sP0    Y  d S )Nr
   r   zCCannot use a compiled regex as replacement pattern with regex=Falser   r>   Fr   )r   rz   r   r   r   r   r   rb   r   r	   r	   r   $test_replace_literal_compiled_raises  s
    
r   c                 C   sF  t ddddddtjddd	g
| d
}|jdd}t ddddddtjddd	g
| d
}t|| ttt	| " |jjdddd}W d    n1 s0    Y  t ddddddtjdddg
| d
}t|| ttt	| $ |jjddddd}W d    n1 s
0    Y  t ddddddtjdddg
| d
}t|| d S )Nr9   r:   r;   r<   r=   r>   r?   r@   rA   r
   ZYYYZYYYabaZCYYYBYYYFr   Z
YYYYYYbYYYZBYYYcYYYZcYYYtz^.a|dogzXX-XX Tr   zXX-XX bazXX-XX cazXX-XX BAzXX-XX t)
r   r   r   r   rb   r   r    ry   r   r   rc   r	   r	   r   test_replace_moar#  sX    04r   c                 C   s   t ddddtjg| d}ttt| $ |jjddddd	}W d    n1 sR0    Y  t d
d
ddtjg| d}t	|| ttt| $ |jjdd
ddd	}W d    n1 s0    Y  t d
d
ddtjg| d}t	|| d S )NzA.za.ZAbabr
   r)   r2   Fr   zc.cbr   rc   r	   r	   r   )test_replace_not_case_sensitive_not_regexX  s    22r   c                 C   sR   t dddtjdg| d}|jjdddd}t dddtjdg| d}t|| d S )	Nr)   r*   acr>   r
   z^.$Tr   ra   )r"   rD   r%   r'   r	   r	   r   test_replace_regexg  s    r   c                 C   sp   t dddtjdg|d}|jjdd| d}| rHt dddtjdg|d}nt d	ddtjdg|d}t|| d S )
Nza.b.r*   r>   r
   r)   r   ZaaaZaabra   )r   r"   rD   r%   r'   r	   r	   r   #test_replace_regex_single_charactero  s    r   c                 C   s8  | t v rdnd}tdtjdg| d}|jd}tdtjdg|d}t|| tdd	tjdg| d}|jd
}tddtjdg|d}t|| |jd}tddtjdg|d}t|| tddtjdg| d}|jd}tddtjdg|d}t|| |jd}tddtjdg|d}t|| d S )Nr   r   r^   r   r
   .*(BAD[_]+).*(BAD)TFBAD_BADleroybrown.*BAD[_]+.*BADzBAD[_]+.*BADz^BAD_BADleroybrownz^BAD[_]+.*BADz\^BAD[_]+.*BAD)r   r   r   r   r   r   r   r    )r"   r&   r#   r%   r'   r	   r	   r   
test_match  s.    r   c               
   C   sr   t dtjddt dd ddg	} t | jd}t dtjdtjtjdd tjtjg	}t|t sbJ t	|| d S )	NZaBAD_BADZ	BAD_b_BADTr   r+   r,   r   F)
r   r   r   r   r.   r   r   
isinstancer   r    r/   r	   r	   r   test_match_mixed_object  s     $r   c                 C   s   t ddtjg| d}|jjddd}| tv r2tjnd}t g d|d}t|| |jd}| tv rjdnd}t d	dtjg|d}t|| d S )
Nr)   r*   r
   Fr   r   )TFFr   T)	r   r   r   r   r   r   r!   r   r    rC   r	   r	   r   test_match_na_kwarg  s    r   c                 C   sR   t g d| d}|jjddd}| tv r.tjnd}t g d|d}t|| d S )Nr   ZABr   ABCr
   r   Fr   r   )TTTT)r   r   r   r   r   r!   r   r    )r"   r#   r%   r&   r'   r	   r	   r   test_match_case_kwarg  s
    r   c                 C   sX   t ddtjdg| d}|jd}| tv r.dnd}t dd	tjd	g|d}t|| d S )
Nr^   r   r   r
   r   r   r   TFr   r   r   r   	fullmatchr   r   r    r"   rd   r%   r&   r'   r	   r	   r   test_fullmatch  s    r   c                 C   sX   t ddtjdg| d}|jd}| tv r.dnd}t ddtjd	g|d}t|| d S )
Nr   zfoo$foozfoo$r
   zfoo\$r   r   FTr   r   r	   r	   r   test_fullmatch_dollar_literal  s
    r   c                 C   sX   t ddtjdg| d}|jjddd}| tv r4tjnd}t g d	|d}t|| d S )
Nr^   r   r   r
   r   Fr   r   TFFF)	r   r   r   r   r   r   r!   r   r    r   r	   r	   r   test_fullmatch_na_kwarg  s    r   c                 C   s   t g d| d}| tv rtjnd}t g d|d}|jjddd}t|| t g d|d}|jjdd	d}t|| tt	t
| " |jjdtjd
}W d    n1 s0    Y  t|| d S )Nr   r
   r   r   r   Tr   )TTFFFr   )r   r   r   r!   r   r   r   r    ry   r   r   rz   r   )r"   rd   r&   r'   r%   r	   r	   r   test_fullmatch_case_kwarg  s    0r   c                 C   sT   t dtjddg| d}|jd}t ddgtjg dgg}t||}t|| d S )Nr^   r   ri   r
   r_   BAD__)r   r   r   r   findallr   r   r    rc   r	   r	   r   test_findall  s
    
r   c               
   C   sf   t dtjddt dd ddg	} | jd}t ddgtjg tjtjdgd tjtjg	}t|| d S )	Nr^   r   Tri   r+   r,   r_   r   )	r   r   r   r   r.   r   r   r   r    ro   r	   r	   r   test_findall_mixed_object  s4    r   c                 C   sr  t g d| d}| tv rtjnd}|jd}t g d|d}t|| tjdd t|D tjd}t	tj|tjd| |j
d}t g d|d}t|| tjd	d t|D tjd}t	tj|tjd| |jdd
}t g d|d}t|| tjdd t|D tjd}t	tj|tjd| |j
dd
}t g d|d}t|| tjdd t|D tjd}t	tj|tjd| |jdd
d}t g d|d}t|| tjdd t|D tjd}t	tj|tjd| |j
dd
d}t g d|d}t|| tjdd t|D tjd}t	tj|tjd| d S )N)ABCDEFGZBCDEFEF	DEFGHIJEFZEFGHEFXXXXr
   Int64EF)   r6   r+   r   c                 S   s   g | ]}| d qS r   find.0vr	   r	   r   
<listcomp>?  r   ztest_find.<locals>.<listcomp>)r         r   r   c                 S   s   g | ]}| d qS r   rfindr   r	   r	   r   r   E  r   r6   )r   r6   r   r   r   c                 S   s   g | ]}| d dqS r   r6   r   r   r	   r	   r   r   K  r   c                 S   s   g | ]}| d dqS r   r   r   r	   r	   r   r   Q  r      )r   r6   r   r   r   c                 S   s   g | ]}| d ddqS r   r6   r   r   r   r	   r	   r   r   W  r   c                 S   s   g | ]}| d ddqS r   r   r   r	   r	   r   r   ]  r   )r   r   r   Zint64r   r   r   r    r   Zassert_numpy_array_equalr   r"   rd   r&   r%   r'   r	   r	   r   	test_find6  sD          r   c                 C   s   t g | d}tjtdd |jd W d    n1 s<0    Y  tjtdd |jd W d    n1 sv0    Y  d S )Nr
   z!expected a string object, not intr   r   )r   r   r   r   r   r   r   )r"   rd   r	   r	   r   test_find_bad_arg_raisesa  s
    *r   c                 C   sh  t dtjdtjdg| d}| tv r(tjnd}|jd}t dtjdtjd	g|d}t|| |j	d}t dtjd
tjd	g|d}t|| |jdd}t dtjd
tjd	g|d}t|| |j	dd}t dtjd
tjd	g|d}t|| |jddd}t dtjd	tjd	g|d}t|| |j	ddd}t dtjd	tjd	g|d}t|| d S )Nr   r   r   r
   r   r   r   r+   r   r   r6   r   )
r   r   r   r   Zfloat64r   r   r   r    r   r   r	   r	   r   test_find_nanj  s,    r   infer_stringZpyarrow)Zmarksc                 C   sH   | g d|d}t dd}|j |}| g d|d}t|| d S )N)ZabcdefgZabccZcdddfgZcdefgggr
   r   cde)ZcdedefgZcdeeZedddfgZedefggg)r   	maketrans	translater   Zassert_equal)r   r"   r   r   tabler%   r'   r	   r	   r   test_translate  s    r   c                  C   sJ   t g d} tdd}t dddtjgtd}| j|}t|| d S )N)r)   r*   r2   g333333?r   r   r2   der
   )	r   r   r   r   r   r   r   r   r    )rD   r   r'   r%   r	   r	   r   test_translate_mixed_object  s
    r   c                 C   s  dddt jd}t|| d}d}t| }|jj|tjdd}|jd	 	 g d
ksVJ t
t|" |jj|tjd}W d    n1 s0    Y  |jd	 sJ t
t|" |jj|tjd}W d    n1 s0    Y  |jd	 sJ |jj|tjd}|jd	 d	 d
ksJ |jj|tjd}|jd	 dks>J d}t
jt|| d" |jj|tjd}W d    n1 s~0    Y  |jd	 sJ d S )Nzdave@google.comzsteve@gmail.comzrob@gmail.com)ZDaveZSteveZRobZWesr
   z,([A-Z0-9._%+-]+)@([A-Z0-9.-]+)\.([A-Z]{2,4})T)rw   expandr   )ZdaveZgooglecomr   r+   zhas match groups)r   Zraise_on_extra_warnings)r   r   r   r   r   extractrz   r   Ziloctolistr   ry   r   r   r   r   countZassert_produces_warningUserWarningr   )r"   r~   r$   Zuse_pyarrowr%   r   r	   r	   r   test_flags_kwarg  s4    002r   )N)Hr   rz   numpyr   r   Zpandas.errorsr   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasrO   r   r   r   Zpandas.tests.stringsr   r   r   r(   r1   r5   markZparametrizerP   r   r8   rE   rF   rV   rZ   r\   r]   re   rk   rp   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   paramZ
skip_if_nor   r   r   r	   r	   r	   r   <module>   s   
J
,!


	 
		5
 	
&+	$
