
    bMh=                     T    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          ZdS )    N)config)OptionErrorc                       e Zd Z ej        d          d             Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )
TestConfigT)autousec              #     K   |                                 5 }|                    t          di            |                    t          dt          j        t          j                             |                    t          di            |                    t          di            t          j        dd           d V  d d d            d S # 1 swxY w Y   d S )N_global_configoptions_deprecated_options_registered_optionschained_assignmentraise)contextsetattrcfDictWrapperr	   register_option)selfmonkeypatchms      _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/config/test_config.pyclean_configzTestConfig.clean_config   s        "" 	aIIb*B///IIb)R^B4E%F%FGGGIIb/444IIb/444 3W===EEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B&C

CCc                     t          t          d          sJ t          t          d          sJ t          t          d          sJ t          t          d          sJ d S )N
get_option
set_optionreset_optiondescribe_option)hasattrpdr   s    r   test_apizTestConfig.test_api   sa    r<(((((r<(((((r>*****r,-------    c                     t          j        d dg          } |d            |d            d}t          j        t          |          5   |d           d d d            d S # 1 swxY w Y   d S )N   zValue must be one of None\|12match皙?)r   is_one_of_factorypytestraises
ValueError)r   vmsgs      r   test_is_one_of_factoryz!TestConfig.test_is_one_of_factory!   s     $,,	"	$.]:S111 	 	AcFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   
A##A'*A'c                     t          j        ddd           d}t          j        t          |          5  t          j        ddd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        ddd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        ddd           d d d            n# 1 swxY w Y   d	}t          j        t
          |          5  t          j        d
d           d d d            n# 1 swxY w Y   t          j        t
          |          5  t          j        dd           d d d            n# 1 swxY w Y   d}t          j        t
          |          5  t          j        dd           d d d            n# 1 swxY w Y   t          j        ddd           t          j        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-   s     r   test_register_optionzTestConfig.test_register_option*   sZ   
35))) 7];c222 	. 	.sAu---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ?];c222 	5 	5z1e444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5];c222 	5 	5z1e444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 (]:S111 	) 	)ua(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)]:S111 	- 	-y!,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 9]:S111 	4 	4/333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	:q%000
:q%00000sk   AAA?B""B&)B&C++C/2C/D55D9<D9E==FF%GGGc                    t          j        ddd           t          j        ddd           t          j        d           t          j        ddd           t          j        ddd	           t          j        d
d           t          j        dd           t          j        dd           t          j        dd           t          j        dd           d}t          j        t
          |          5  t          j        d           d d d            n# 1 swxY w Y   dt          j        dd          v sJ dt          j        dd          v sJ dt          j        dd          v sJ dt          j        dd          v sJ d	t          j        dd          v sJ dt          j        d
d          v sJ dt          j        dd          v sJ dt          j        dd          v sJ dt          j        dd          v sJ dt          j        dd          v sJ dt          j        dd          vsJ t          j        dd           dt          j        dd          v sJ d S )Nr0   r1   r2   bdoc2zc.d.e1doc3zc.d.e2doc4fzg.hk   rkeylfoozNo such keys\(s\)r%   no.such.keyF_print_descprecated	availablebar)r   r   deprecate_optionr)   r*   r   r   r   r5   s     r   test_describe_optionzTestConfig.test_describe_optionK   s   
35)))
36***
C   
8Q///
8Q///
3"""
5!$$$
3"""
E,,,,
3&&& #];c222 	. 	.}---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. *3EBBBBBBB+CUCCCCCCCR/GGGGGGG+H%HHHHHHH+H%HHHHHHH b0%HHHHHHHb0EJJJJJJJR/5IIIIIIIb(EBBBBBBB *3EBBBBBBBB.sFFFFFFF
c5!!!*3EBBBBBBBBBs   4DDDc                    t          j        ddd           dt          j        dd          v sJ t          j        d          dk    sJ t          j        dd	           t          j        d
          d	k    sJ d}t          j        t          |          5  t          j        d           d d d            n# 1 swxY w Y   t          j        d           t          j	        d
          sJ d S )NKanBANr1   r2   kanbaNFrD   kanBaNKanBanr>   kAnBaN#No such keys\(s\): 'no_such_option'r%   no_such_option)
r   r   r   r   r   r)   r*   r   rI   _is_deprecatedr5   s     r   test_case_insensitivez TestConfig.test_case_insensitiver   s0   
8Q...*8GGGGGGG}X&&!++++
h"""}X&&!++++ 5];c222 	, 	,M*+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,
H%%% *******s   B88B<?B<c                    t          j        ddd           t          j        ddd           t          j        dd d           t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          J d}t          j        t
          |	          5  t          j        d
           d d d            d S # 1 swxY w Y   d S )Nr0   r1   r2   b.chullor9   b.brQ   r%   rR   )r   r   r   r)   r*   r   r5   s     r   test_get_optionzTestConfig.test_get_option   s    
35)))
5'6222
5$/// }S!!Q&&&&}U##w....}U##+++ 5];c222 	, 	,M*+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   *CCCc                    t          j        ddd           t          j        ddd           t          j        dd d           t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          J t          j        dd           t          j        dd	           t          j        dd
           t          j        d          dk    sJ t          j        d          d	k    sJ t          j        d          d
k    sJ d}t	          j        t          |          5  t          j        dd            d d d            d S # 1 swxY w Y   d S )Nr0   r1   r2   rV   rW   r9   rX   r>   wurldr'   z No such keys\(s\): 'no.such.key'r%   rC   )r   r   r   r   r)   r*   r   r5   s     r   test_set_optionzTestConfig.test_set_option   s   
35)))
5'6222
5$///}S!!Q&&&&}U##w....}U##+++
c1
eW%%%
eS!!!}S!!Q&&&&}U##w....}U##s****1];c222 	/ 	/M-...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   7EE!Ec                     d}t          j        t          |          5  t          j                     d d d            d S # 1 swxY w Y   d S )N4Must provide an even number of non-keyword argumentsr%   r)   r*   r+   r   r   r5   s     r   test_set_option_empty_argsz%TestConfig.test_set_option_empty_args   s    D]:S111 	 	MOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ?AAc                     d}t          j        t          |          5  t          j        ddd           d d d            d S # 1 swxY w Y   d S )Nr^   r%   za.br>   rV   r_   r5   s     r   test_set_option_uneven_argsz&TestConfig.test_set_option_uneven_args   s    D]:S111 	+ 	+M%E***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   AA	Ac                     d}t          j        t          |          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nr^   r%   r>   r_   r5   s     r   ,test_set_option_invalid_single_argument_typez7TestConfig.test_set_option_invalid_single_argument_type   s    D]:S111 	 	M!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A  AAc                    t          j        ddd           t          j        ddd           t          j        dd d           t          j        d          dk    sJ t          j        d          dk    sJ t          j        d          J t          j        dddd dd	           t          j        d          dk    sJ t          j        d          J t          j        d          d	k    sJ d S )
Nr0   r1   r2   rV   rW   r9   rX   2g      $@)r   r   r   r   r    s    r   test_set_option_multiplez#TestConfig.test_set_option_multiple   s    
35)))
5'6222
5$///}S!!Q&&&&}U##w....}U##+++
c3tUD999}S!!S((((}U##+++}U##t++++++r"   c                    t          j        dddt           j                   t          j        dddt           j                   t          j        dddt           j                   d	}t          j        t          |
          5  t          j        dddt           j                   d d d            n# 1 swxY w Y   t          j        dd           t          j        dd           t          j        dd           t          j        dd            t          j        t          |
          5  t          j        dd            d d d            n# 1 swxY w Y   t          j        t          |
          5  t          j        dd           d d d            n# 1 swxY w Y   d}t          j        t          |
          5  t          j        dddt           j                   d d d            n# 1 swxY w Y   t          j        t          |
          5  t          j        dddt           j                   d d d            n# 1 swxY w Y   d}t          j        t          |
          5  t          j        dd           d d d            n# 1 swxY w Y   t          j	        d t           j
        g          }t          j        dd d|           t          j        ddj                   t          j        dd            t          j        t          d
          5  t          j        dd           d d d            d S # 1 swxY w Y   d S )Nr0   r1   r2   	validatordrV   rW   r9   z$Value must have type '<class 'int'>'r%   r3   NOr>   r[   abz+Value must be a nonnegative integer or Noneza.b.c.d3z;Value must be an instance of <class 'str'>\|<class 'bytes'>r8   c                      d S N rq   r"   r   <lambda>z,TestConfig.test_validation.<locals>.<lambda>   s     r"   z%.1fzValue must be a callable)r   r   is_intis_nonnegative_intis_textr)   r*   r+   r   r(   is_callableformat)r   r-   rj   s      r   test_validationzTestConfig.test_validation   s   
35BI>>>>
35B4IJJJJ
5'6RZHHHH4]:S111 	M 	Mz4")LLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	c1
eW%%%
c1
c4    ]:S111 	% 	%M#t$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]:S111 	% 	%M#t$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% <]:S111 	Y 	Yz4"BWXXXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y]:S111 	W 	Wz2u@UVVVV	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W M]:S111 	$ 	$M%###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ ($)?@@	
3eyIIII
c6=)))
c4   ]:-GHHH 	' 	'M#v&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's~   #B33B7:B7-EEE5FFF?#G..G25G2#II
I+JJJL>>MMc                    t          j        dddt           j                   t          j        dddt           j                   t          j        d          dk    sJ t          j        d          dk    sJ t          j        dd           t          j        dd	           t          j        d          dk    sJ t          j        d          d	k    sJ t          j        d           t          j        d          dk    sJ t          j        d          d	k    sJ t          j        d           t          j        d          dk    sJ t          j        d          dk    sJ d S )
Nr0   r1   r2   ri   rV   rW   r9   r>   r[   r   r   rs   is_strr   r   r   r    s    r   test_reset_optionzTestConfig.test_reset_option   s\   
35BI>>>>
5'6RYGGGG}S!!Q&&&&}U##w....
c1
eW%%%}S!!Q&&&&}U##w....
}S!!Q&&&&}U##w....
}S!!Q&&&&}U##w......r"   c                 B   t          j        dddt           j                   t          j        dddt           j                   t          j        d          dk    sJ t          j        d          dk    sJ t          j        dd           t          j        dd	           t          j        d          dk    sJ t          j        d          d	k    sJ t          j        d
           t          j        d          dk    sJ t          j        d          dk    sJ d S )Nr0   r1   r2   ri   rV   rW   r9   r>   r[   allrz   r    s    r   test_reset_option_allz TestConfig.test_reset_option_all   s   
35BI>>>>
5'6RYGGGG}S!!Q&&&&}U##w....
c1
eW%%%}S!!Q&&&&}U##w....
}S!!Q&&&&}U##w......r"   c                    t          j        d           t          j        d          sJ t          j        t
          d          5  t          j        t          d          5  t          j	        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j
        dddt           j                   t          j
        d	d
d           t          j
        dd
d           t          j        dd           t          j        t
          d          5  t          j	        d           d}t          j        t          |          5  t          j        d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d	d           t          j        t
          d          5  t          j	        d	           d d d            n# 1 swxY w Y   t          j
        ddd           t          j
        ddd           t          j	        d          dk    sJ t          j	        d          dk    sJ t          j        dd           t          j        t
          d          5  t          j	        d          dk    sJ 	 d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j        dd           d d d            n# 1 swxY w Y   t          j        t
          d          5  t          j	        d          dk    sJ 	 d d d            d S # 1 swxY w Y   d S )NrB   
deprecatedr%   zNo such keys.s.: 'foo'r0   r1   r2   ri   rV   rW   r9   	nifty_ver)removal_verzeprecated.*nifty_verz1Option 'a' has already been defined as deprecatedzzounds!d.azd.deprH   r?   	eprecatedbaz)r   rI   rS   tmassert_produces_warningFutureWarningr)   r*   KeyErrorr   r   rs   r   r   r5   s     r   test_deprecate_optionz TestConfig.test_deprecate_option  s   
E""" ''''''\JJJ 	% 	%x/GHHH % %e$$$% % % % % % % % % % % % % % %	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	35BI>>>>
5'6222
5'6222
C[9999'=STTT 	) 	)M#EC{#666 ) )#C((() ) ) ) ) ) ) ) ) ) ) ) ) ) )		) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	E9---'YGGG 	! 	!M%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	5%000
7E6222}U##u,,,,}W%%....
G%0000'[III 	3 	3=))U22222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 '[III 	* 	*M'5)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* '[III 	3 	3=))U22222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   B"B7BB	B
B	BB!B$2FE7+F7E;	;F>E;	?FFF	G**G.1G.J..J25J2K66K:=K:MM	M	c                    t          j        d          5  t          j        ddd           t          j        ddd           t          j        d          dk    sJ t          j        d          dk    sJ t          j        dd           t          j        dd	           t          j        d          dk    sJ t          j        d          d	k    sJ 	 d d d            n# 1 swxY w Y   t          j        d
          dk    sJ t          j        d          d	k    sJ dt          j        d
d          v sJ dt          j        dd          v sJ t          j        d
           t          j        d           t          j        d          5  t          j        d          dk    sJ t          j        d          dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nbaser0   r1   doc1r8   r>   r9         zbase.azbase.bFrD   )r   config_prefixr   r   r   r   r   r    s    r   test_config_prefixzTestConfig.test_config_prefix4  sm   f%% 		+ 		+sAv...sAv...=%%****=%%****M#q!!!M#q!!!=%%****=%%*****		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ 		+ }X&&!++++}X&&!+++++H%HHHHHHH+H%HHHHHHH
!!!
!!!f%% 	+ 	+=%%****=%%*****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s$   B?C!!C%(C%5GGGc                    d gd gfd}t          j        dd|           t          j        dd|           d= d= t          j        dd           d         dk    sJ d         dk    sJ d= d= t          j        dd           d         dk    sJ d         dk    sJ d= d= t          j        d           d         dk    sJ d S )	Nc                                          |                                 t          j        |                      d S rp   )appendr   r   )keyr=   r,   s    r   callbackz*TestConfig.test_callback.<locals>.callbackP  s4    HHSMMMHHR]3''(((((r"   r   rB   cbzd.bfoozboo)r   r   r   r   )r   r   r=   r,   s     @@r   test_callbackzTestConfig.test_callbackL  s   FF	) 	) 	) 	) 	) 	) 	5%H5555
5%H5555bE1R5
eV$$$u~~~~ubE1R5
eU###u~~~~u~~~~bE1R5
u~~~~~~r"   c                    d t          j        dd            d           t          j        dd          5   d           t          j        dd          5   d           d d d            n# 1 swxY w Y    d           d d d            n# 1 swxY w Y    d           t          j        dd            d           t          j        dd          fd            } |             d S )	Nc                 :    t          j        d          | k    sJ d S )Nr0   )r   r   )vals    r   eqz.TestConfig.test_set_ContextManager.<locals>.eqf  s#    =%%,,,,,,r"   r0   r            {   c                        d           d S )Nr   rq   )r   s   r   r<   z-TestConfig.test_set_ContextManager.<locals>.fv  s    BsGGGGGr"   )r   r   option_contextr   )r   r<   r   s     @r   test_set_ContextManagerz"TestConfig.test_set_ContextManagere  s   	- 	- 	- 	3"""
1sB'' 	 	BrFFF"3++  2              BrFFF		 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	1
c2
2 
	3	$	$	 	 	 	 
%	$	 	
s5   !BA3'B3A7	7B:A7	;BBBc                    g fd}t          j        dd           t          j        dd|           t           j        }|j        dk    sJ t          j        dd          5  |j        dk    sJ 	 d d d            n# 1 swxY w Y   d|_        t          j        d          dk    sJ t          j        d           |j        t          j        dd          k    sJ d}t          j        t          |	          5  d
|_
        d d d            n# 1 swxY w Y   t          j        t          |	          5  d
|_        d d d            n# 1 swxY w Y   d
|_        t                    d
k    sJ d S )Nc                 2                         d           d S )NT)r   )r   holders    r   f3z,TestConfig.test_attribute_access.<locals>.f3  s    MM$r"   r0   r   cr   r   i  z.You can only set the value of existing optionsr%   r1   )r   r   r
   r0   r   r   r   r)   r*   r   r8   displayr   len)r   r   r
   r-   r   s       @r   test_attribute_accessz TestConfig.test_attribute_access|  s=   	  	  	  	  	  	3"""
3b))))*yA~~~~sB'' 	# 	#9?????	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	}S!!S((((
yBM#q111111>];c222 	 	GI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	];c222 	  	 GO	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	6{{as6   #A>>BB;DDD5E		EEc                 8   d}d}d}t          j        ||           t          j        ||          }t          j        |          |k    sJ |5  t          j        |          |k    sJ 	 d d d            n# 1 swxY w Y   t          j        |          |k    sJ d S )N<   
   r0   )r   r   r   r   )r   original_valuecontext_valueoption_namectxs        r   test_option_context_scopez$TestConfig.test_option_context_scope  s    
 
;777 ];;}[))^;;;;  	? 	?=-->>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? }[))^;;;;;;s   A55A9<A9c                     t           j        }t          j        t          d          5  |j         d d d            n# 1 swxY w Y   t          |d          rJ d S )NzNo such optionr%   bananas)r   r
   r)   r*   r   r   r   )r   r
   s     r   test_dictwrapper_getattrz#TestConfig.test_dictwrapper_getattr  s    *];.>??? 	 	OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	7I.......s   <A A N)__name__
__module____qualname__r)   fixturer   r!   r.   r6   rJ   rT   rY   r\   r`   rb   rd   rg   rx   r|   r   r   r   r   r   r   r   r   rq   r"   r   r   r   
   s       V^D!!!  "!. . .  1 1 1B%C %C %CN+ + + , , ,/ / /*  
+ + +
  
, , ,$' $' $'L/ / /$/ / /'3 '3 '3R+ + +0  2  .     << < <,/ / / / /r"   r   )r)   pandas._configr   r   pandas._config.configr   pandasr   pandas._testing_testingr   r   rq   r"   r   <module>r      s     ' ' ' ' ' ' - - - - - -          k/ k/ k/ k/ k/ k/ k/ k/ k/ k/r"   