a
    é´«jò=  ã                   @   sF   d dl Z d dlmZ d dlmZ d dlZd dlm	Z
 G dd„ dƒZdS )é    N)Úconfig)ÚOptionErrorc                   @   sÈ   e Zd Zejdd�dd„ ƒZdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/S )0Ú
TestConfigT)Zautousec                 c   s~   |  ¡ �b}| tdi ¡ | tdt tj¡¡ | tdi ¡ | tdi ¡ t dd¡ d V  W d   ƒ n1 sp0    Y  d S )NÚ_global_configÚoptionsZ_deprecated_optionsZ_registered_optionsZchained_assignmentÚraise)ÚcontextÚsetattrÚcfZDictWrapperr   Úregister_option)ÚselfZmonkeypatchÚm© r   ú^/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/config/test_config.pyÚclean_config   s    
zTestConfig.clean_configc                 C   s<   t tdƒsJ ‚t tdƒsJ ‚t tdƒs*J ‚t tdƒs8J ‚d S )NÚ
get_optionÚ
set_optionÚreset_optionÚdescribe_option)ÚhasattrÚpd©r   r   r   r   Útest_api   s    zTestConfig.test_apic                 C   s\   t  d dg¡}|dƒ |d ƒ d}tjt|d�� |dƒ W d   ƒ n1 sN0    Y  d S )Né   zValue must be one of None\|12©Úmatchçš™™™™™ñ?)r
   Úis_one_of_factoryÚpytestÚraisesÚ
ValueError)r   ÚvÚmsgr   r   r   Útest_is_one_of_factory!   s    z!TestConfig.test_is_one_of_factoryc                 C   s¤  t  ddd¡ d}tjt|d�� t  ddd¡ W d   ƒ n1 sD0    Y  d}tjt|d�� t  ddd¡ W d   ƒ n1 s„0    Y  tjt|d�� t  ddd¡ W d   ƒ n1 sÀ0    Y  d	}tjt|d�� t  d
d¡ W d   ƒ n1 sþ0    Y  tjt|d�� t  dd¡ W d   ƒ n1 �s:0    Y  d}tjt|d�� t  dd¡ W d   ƒ n1 �sz0    Y  t  ddd¡ t  ddd¡ d S )NÚaé   Údocz&Option 'a' has already been registeredr   z.Path prefix to option 'a' is already an optionza.b.c.d1úa.b.c.d2zfor is a python keywordÚforr   za.for.bz(oh my goddess! is not a valid identifierzOh my Goddess!zk.b.c.d1zk.b.c.d2)r
   r   r   r   r   r    ©r   r"   r   r   r   Útest_register_option*   s&    ,,,*,,zTestConfig.test_register_optionc                 C   sæ  t  ddd¡ t  ddd¡ t  d¡ t  ddd¡ t  ddd	¡ t  d
d¡ t  dd¡ t  dd¡ t jddd� t  dd¡ d}tjt|d�� t  d¡ W d   ƒ n1 s²0    Y  dt jddd�v sÒJ ‚dt jddd�v sèJ ‚dt jddd�v sþJ ‚dt jddd�v �sJ ‚d	t jddd�v �s.J ‚dt jd
dd�v �sFJ ‚dt jddd�v �s^J ‚dt jddd�v �svJ ‚dt jddd�v �sŽJ ‚dt jddd�v �s¦J ‚dt jddd�v�s¾J ‚t  dd¡ dt jddd�v �sâJ ‚d S )Nr$   r%   r&   ÚbÚdoc2zc.d.e1Zdoc3zc.d.e2Zdoc4Úfzg.hÚké   ©ZrkeyÚlÚfoozNo such keys\(s\)r   úno.such.keyF©Z_print_descZprecatedÚ	availableÚbar)r
   r   Údeprecate_optionr   r   r   r   r   r)   r   r   r   Útest_describe_optionK   s4    
(zTestConfig.test_describe_optionc                 C   s¬   t  ddd¡ dt jddd�v s$J ‚t  d¡dks6J ‚t  dd	¡ t  d
¡d	ksTJ ‚d}tjt|d�� t  d¡ W d   ƒ n1 s†0    Y  t  d¡ t  	d
¡s¨J ‚d S )NZKanBANr%   r&   ZkanbaNFr4   ZkanBaNZKanBanr/   ZkAnBaNú#No such keys\(s\): 'no_such_option'r   Úno_such_option)
r
   r   r   r   r   r   r   r   r7   Ú_is_deprecatedr)   r   r   r   Útest_case_insensitiver   s    (
z TestConfig.test_case_insensitivec                 C   s    t  ddd¡ t  ddd¡ t  dd d¡ t  d¡dks<J ‚t  d¡dksNJ ‚t  d¡d u s`J ‚d}tjt|d	�� t  d
¡ W d   ƒ n1 s’0    Y  d S )Nr$   r%   r&   úb.cÚhullor,   úb.br9   r   r:   )r
   r   r   r   r   r   r)   r   r   r   Útest_get_option‚   s    zTestConfig.test_get_optionc                 C   sü   t  ddd¡ t  ddd¡ t  dd d¡ t  d¡dks<J ‚t  d¡dksNJ ‚t  d¡d u s`J ‚t  dd¡ t  dd	¡ t  dd
¡ t  d¡dks–J ‚t  d¡d	ks¨J ‚t  d¡d
ksºJ ‚d}tjt|d�� t  dd ¡ W d   ƒ n1 sî0    Y  d S )Nr$   r%   r&   r=   r>   r,   r?   r/   Úwurldr   z No such keys\(s\): 'no.such.key'r   r3   )r
   r   r   r   r   r   r   r)   r   r   r   Útest_set_option‘   s    zTestConfig.test_set_optionc                 C   s>   d}t jt|d�� t ¡  W d   ƒ n1 s00    Y  d S )Nú4Must provide an even number of non-keyword argumentsr   ©r   r   r    r
   r   r)   r   r   r   Útest_set_option_empty_args¦   s    z%TestConfig.test_set_option_empty_argsc                 C   sD   d}t jt|d�� t ddd¡ W d   ƒ n1 s60    Y  d S )NrC   r   za.br/   r=   rD   r)   r   r   r   Útest_set_option_uneven_args«   s    z&TestConfig.test_set_option_uneven_argsc                 C   s@   d}t jt|d�� t d¡ W d   ƒ n1 s20    Y  d S )NrC   r   r/   rD   r)   r   r   r   Ú,test_set_option_invalid_single_argument_type°   s    z7TestConfig.test_set_option_invalid_single_argument_typec                 C   s®   t  ddd¡ t  ddd¡ t  dd d¡ t  d¡dks<J ‚t  d¡dksNJ ‚t  d¡d u s`J ‚t  dddd dd	¡ t  d¡dks†J ‚t  d¡d u s˜J ‚t  d¡d	ksªJ ‚d S )
Nr$   r%   r&   r=   r>   r,   r?   Ú2g      $@)r
   r   r   r   r   r   r   r   Útest_set_option_multipleµ   s    z#TestConfig.test_set_option_multiplec                 C   st  t jdddt jd� t jdddt jd� t jdddt jd� d	}tjt|d
��$ t jdddt jd� W d   ƒ n1 sx0    Y  t  dd¡ t  dd¡ t  dd¡ t  dd ¡ tjt|d
�� t  dd ¡ W d   ƒ n1 sâ0    Y  tjt|d
�� t  dd¡ W d   ƒ n1 �s0    Y  d}tjt|d
��$ t jdddt jd� W d   ƒ n1 �sf0    Y  tjt|d
��$ t jdddt jd� W d   ƒ n1 �sª0    Y  d}tjt|d
�� t  dd¡ W d   ƒ n1 �sê0    Y  t  	d t j
g¡}t jddd„ d|d� t  ddj¡ t  dd ¡ tjtdd
�� t  dd¡ W d   ƒ n1 �sf0    Y  d S )Nr$   r%   r&   ©Ú	validatorÚdr=   r>   r,   z$Value must have type '<class 'int'>'r   r'   ÚNOr/   rA   Úabz+Value must be a nonnegative integer or Noneza.b.c.d3éþÿÿÿz;Value must be an instance of <class 'str'>\|<class 'bytes'>r+   c                   S   s   d S ©Nr   r   r   r   r   Ú<lambda>ã   ó    z,TestConfig.test_validation.<locals>.<lambda>z%.1fzValue must be a callable)r
   r   Úis_intZis_nonnegative_intZis_textr   r   r    r   r   Zis_callableÚformat)r   r"   rK   r   r   r   Útest_validationÄ   s8    2*,44,zTestConfig.test_validationc                 C   sè   t jdddt jd� t jdddt jd� t  d¡dks:J ‚t  d¡dksLJ ‚t  dd¡ t  dd	¡ t  d¡dksvJ ‚t  d¡d	ksˆJ ‚t  d¡ t  d¡dks¤J ‚t  d¡d	ks¶J ‚t  d¡ t  d¡dksÒJ ‚t  d¡dksäJ ‚d S )
Nr$   r%   r&   rJ   r=   r>   r,   r/   rA   ©r
   r   rS   Zis_strr   r   r   r   r   r   r   Útest_reset_optionê   s    

zTestConfig.test_reset_optionc                 C   sº   t jdddt jd� t jdddt jd� t  d¡dks:J ‚t  d¡dksLJ ‚t  dd¡ t  dd	¡ t  d¡dksvJ ‚t  d¡d	ksˆJ ‚t  d
¡ t  d¡dks¤J ‚t  d¡dks¶J ‚d S )Nr$   r%   r&   rJ   r=   r>   r,   r/   rA   ÚallrV   r   r   r   r   Útest_reset_option_allü   s    
z TestConfig.test_reset_option_allc              	   C   s”  t  d¡ t  d¡sJ ‚tjtdd��H tjtdd�� t  	d¡ W d   ƒ n1 sV0    Y  W d   ƒ n1 st0    Y  t j
dddt jd� t  
d	d
d¡ t  
dd
d¡ t jddd� tjtdd��X t  	d¡ d}tjt|d�� t  d¡ W d   ƒ n1 �s
0    Y  W d   ƒ n1 �s*0    Y  t  d	d¡ tjtdd�� t  	d	¡ W d   ƒ n1 �sp0    Y  t  
ddd¡ t  
ddd¡ t  	d¡dk�sªJ ‚t  	d¡dk�s¾J ‚t jddd� tjtdd��$ t  	d¡dk�sðJ ‚W d   ƒ n1 �s0    Y  tjtdd�� t  dd¡ W d   ƒ n1 �sB0    Y  tjtdd��$ t  	d¡dk�spJ ‚W d   ƒ n1 �s†0    Y  d S )Nr2   Ú
deprecatedr   zNo such keys.s.: 'foo'r$   r%   r&   rJ   r=   r>   r,   Z	nifty_ver)Zremoval_verzeprecated.*nifty_verz1Option 'a' has already been defined as deprecatedzzounds!úd.azd.depr6   r0   Z	eprecatedZbaz)r
   r7   r;   ÚtmZassert_produces_warningÚFutureWarningr   r   ÚKeyErrorr   r   rS   r   r   r)   r   r   r   Útest_deprecate_option  s8    
F
J*4,z TestConfig.test_deprecate_optionc                 C   sb  t  d¡�Œ t  ddd¡ t  ddd¡ t  d¡dks:J ‚t  d¡dksLJ ‚t  dd¡ t  dd	¡ t  d¡dksvJ ‚t  d¡d	ksˆJ ‚W d   ƒ n1 sœ0    Y  t  d
¡dks¸J ‚t  d¡d	ksÊJ ‚dt jd
dd�v sàJ ‚dt jddd�v söJ ‚t  d
¡ t  d¡ t  d¡�8 t  d¡dk�s*J ‚t  d¡dk�s>J ‚W d   ƒ n1 �sT0    Y  d S )NÚbaser$   r%   Zdoc1r+   r/   r,   é   é   zbase.azbase.bFr4   )r
   Zconfig_prefixr   r   r   r   r   r   r   r   r   Útest_config_prefix4  s$    0

zTestConfig.test_config_prefixc                    sÔ   d g‰ d g‰‡ ‡fdd„}t jdd|d� t jdd|d� ˆ d= ˆd= t  dd¡ ˆ d dksbJ ‚ˆd dksrJ ‚ˆ d= ˆd= t  dd	¡ ˆ d dksšJ ‚ˆd d	ksªJ ‚ˆ d= ˆd= t  d¡ ˆ d dksÐJ ‚d S )
Nc                    s   ˆ   | ¡ ˆ  t | ¡¡ d S rP   )Úappendr
   r   ©Úkey©r.   r!   r   r   ÚcallbackP  s    
z*TestConfig.test_callback.<locals>.callbackr[   r2   ©Úcbzd.béÿÿÿÿZfoozÚboo)r
   r   r   r   )r   rh   r   rg   r   Útest_callbackL  s     
zTestConfig.test_callbackc              	      sÊ   dd„ ‰ t  dd¡ ˆ dƒ t  dd¡�T ˆ dƒ t  dd¡� ˆ dƒ W d   ƒ n1 s\0    Y  ˆ dƒ W d   ƒ n1 s‚0    Y  ˆ dƒ t  dd¡ ˆ dƒ t  dd¡‡ fd	d
„ƒ}|ƒ  d S )Nc                 S   s   t  d¡| ksJ ‚d S )Nr$   )r
   r   )Úvalr   r   r   Úeqf  s    z.TestConfig.test_set_ContextManager.<locals>.eqr$   r   é   é   é   é{   c                      s   ˆ dƒ d S )Nrs   r   r   ©ro   r   r   r-   v  s    z-TestConfig.test_set_ContextManager.<locals>.f)r
   r   Úoption_contextr   )r   r-   r   rt   r   Útest_set_ContextManagere  s    &&
z"TestConfig.test_set_ContextManagerc                    s<  g ‰ ‡ fdd„}t  dd¡ t jdd|d� t j}|jdks@J ‚t  dd¡� |jdks\J ‚W d   ƒ n1 sp0    Y  d|_t  d¡dks’J ‚t  d¡ |jt  dd¡ks²J ‚d	}tjt	|d
�� d|_
W d   ƒ n1 sà0    Y  tjt	|d
�� d|_W d   ƒ n1 �s0    Y  d|_tˆ ƒdk�s8J ‚d S )Nc                    s   ˆ   d¡ d S )NT)rd   re   ©Zholderr   r   Úf3  s    z,TestConfig.test_attribute_access.<locals>.f3r$   r   Úcri   rp   iô  z.You can only set the value of existing optionsr   r%   )r
   r   r   r$   ru   r   r   r   r   r   r+   Údisplayry   Úlen)r   rx   r   r"   r   rw   r   Útest_attribute_access|  s&    ,
$&z TestConfig.test_attribute_accessc                 C   s‚   d}d}d}t  ||¡ t  ||¡}t  |¡|ks6J ‚|�" t  |¡|ksNJ ‚W d   ƒ n1 sb0    Y  t  |¡|ks~J ‚d S )Né<   é
   r$   )r
   r   ru   r   )r   Úoriginal_valueZcontext_valueZoption_nameÚctxr   r   r   Útest_option_context_scopeš  s    0z$TestConfig.test_option_context_scopec                 C   sL   t j}tjtdd�� |j W d   ƒ n1 s00    Y  t|dƒrHJ ‚d S )NzNo such optionr   Úbananas)r
   r   r   r   r   r‚   r   )r   r   r   r   r   Útest_dictwrapper_getattr°  s    $z#TestConfig.test_dictwrapper_getattrN)Ú__name__Ú
__module__Ú__qualname__r   Zfixturer   r   r#   r*   r8   r<   r@   rB   rE   rF   rG   rI   rU   rW   rY   r_   rc   rm   rv   r|   r�   rƒ   r   r   r   r   r   
   s.   

	!'&)r   )r   Zpandas._configr   r
   Zpandas._config.configr   Zpandasr   Zpandas._testingZ_testingr\   r   r   r   r   r   Ú<module>   s
   