
    Mh=                     L    S SK r S SKJr  S SKJr  S SKrS SKJ	r
   " S S5      rg)    N)config)OptionErrorc                       \ rS rSr\R
                  " SS9S 5       rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)
TestConfig
   T)autousec              #     #    UR                  5        nUR                  [        S0 5        UR                  [        S[        R                  " [        R                  5      5        UR                  [        S0 5        UR                  [        S0 5        [        R
                  " SS5        S v   S S S 5        g ! , (       d  f       g = f7f)N_global_configoptions_deprecated_options_registered_optionschained_assignmentraise)contextsetattrcfDictWrapperr
   register_option)selfmonkeypatchms      Q/var/www/html/env/lib/python3.13/site-packages/pandas/tests/config/test_config.pyclean_configTestConfig.clean_config   s       "aIIb*B/IIb)R^^B4E4E%FGIIb/4IIb/4 3W= #""s   CBB6-	C6
C Cc                     [        [        S5      (       d   e[        [        S5      (       d   e[        [        S5      (       d   e[        [        S5      (       d   eg )N
get_option
set_optionreset_optiondescribe_option)hasattrpdr   s    r   test_apiTestConfig.test_api   sO    r<((((r<((((r>****r,----    c                     [         R                  " S S/5      nU" S5        U" S 5        Sn[        R                  " [        US9   U" S5        S S S 5        g ! , (       d  f       g = f)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_factory!TestConfig.test_is_one_of_factory!   sJ      $,	"	$.]]:S1cF 211s   	A
A$c                 (   [         R                  " SSS5        Sn[        R                  " [        US9   [         R                  " SSS5        S S S 5        Sn[        R                  " [        US9   [         R                  " SSS5        S S S 5        [        R                  " [        US9   [         R                  " SSS5        S S S 5        S	n[        R                  " [
        US9   [         R                  " S
S5        S S S 5        [        R                  " [
        US9   [         R                  " SS5        S S S 5        Sn[        R                  " [
        US9   [         R                  " SS5        S S S 5        [         R                  " SSS5        [         R                  " SSS5        g ! , (       d  f       GNe= f! , (       d  f       GN;= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)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   r0   s     r   test_register_optionTestConfig.test_register_option*   sa   
35) 7]];c2sAu- 3 ?]];c2z1e4 3]];c2z1e4 3 (]]:S1ua( 2]]:S1y!, 2 9]]:S1/3 2 	:q%0
:q%05 32
 3222
 2111 21sG   F+0F=*G&G!G2H+
F:=
G
G!
G/2
H 
Hc                     [         R                  " SSS5        [         R                  " SSS5        [         R                  " S5        [         R                  " SSS5        [         R                  " SSS	5        [         R                  " S
S5        [         R                  " SS5        [         R                  " SS5        [         R                  " SSS9  [         R                  " SS5        Sn[        R                  " [
        US9   [         R                  " S5        S S S 5        S[         R                  " SSS9;   d   eS[         R                  " SSS9;   d   eS[         R                  " SSS9;   d   eS[         R                  " SSS9;   d   eS	[         R                  " SSS9;   d   eS[         R                  " S
SS9;   d   eS[         R                  " SSS9;   d   eS[         R                  " SSS9;   d   eS[         R                  " SSS9;   d   eS[         R                  " SSS9;   d   eS[         R                  " SSS9;  d   e[         R                  " SS5        S[         R                  " SSS9;   d   eg ! , (       d  f       GNk= f)Nr4   r5   r6   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   r9   s     r   test_describe_optionTestConfig.test_describe_optionK   s1   
35)
36*
C 
8Q/
8Q/
3"
5!$
3"
E,
3& #]];c2}- 3 **3EBBBB++CUCCCCR//GGGG++H%HHHH++H%HHHH b00%HHHHb00EJJJJR//5IIIIb((EBBBB **3EBBBBB..sFFFF
c5!**3EBBBB- 32s   I>>
Jc                    [         R                  " SSS5        S[         R                  " SSS9;   d   e[         R                  " S5      S:X  d   e[         R                  " SS	5        [         R                  " S
5      S	:X  d   eSn[
        R                  " [        US9   [         R                  " S5        S S S 5        [         R                  " S5        [         R                  " S
5      (       d   eg ! , (       d  f       NB= f)NKanBANr5   r6   kanbaNFrI   kanBaNKanBanrC   kAnBaN#No such keys\(s\): 'no_such_option'r(   no_such_option)
r   r   r   r   r   r,   r-   r   rN   _is_deprecatedr9   s     r   test_case_insensitive TestConfig.test_case_insensitiver   s    
8Q.**8GGGG}}X&!+++
h"}}X&!+++ 5]];c2MM*+ 3
H%  ****	 32s   C11
C?c                    [         R                  " SSS5        [         R                  " SSS5        [         R                  " SS S5        [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R                  " S5      b   eSn[        R                  " [
        US	9   [         R                  " S
5        S S S 5        g ! , (       d  f       g = f)Nr4   r5   r6   b.chullor>   b.brW   r(   rX   )r   r   r   r,   r-   r   r9   s     r   test_get_optionTestConfig.test_get_option   s    
35)
5'62
5$/ }}S!Q&&&}}U#w...}}U#+++ 5]];c2MM*+ 322s   5C
C#c                     [         R                  " SSS5        [         R                  " SSS5        [         R                  " SS S5        [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R                  " S5      b   e[         R                  " SS5        [         R                  " SS	5        [         R                  " SS
5        [         R                  " S5      S:X  d   e[         R                  " S5      S	:X  d   e[         R                  " S5      S
:X  d   eSn[        R
                  " [        US9   [         R                  " SS 5        S S S 5        g ! , (       d  f       g = f)Nr4   r5   r6   r]   r^   r>   r_   rC   wurldr*   z No such keys\(s\): 'no.such.key'r(   rH   )r   r   r   r   r,   r-   r   r9   s     r   test_set_optionTestConfig.test_set_option   s   
35)
5'62
5$/}}S!Q&&&}}U#w...}}U#+++
c1
eW%
eS!}}S!Q&&&}}U#w...}}U#s***1]];c2MM-. 322s   E//
E=c                     Sn[         R                  " [        US9   [        R                  " 5         S S S 5        g ! , (       d  f       g = f)N4Must provide an even number of non-keyword argumentsr(   r,   r-   r.   r   r   r9   s     r   test_set_option_empty_args%TestConfig.test_set_option_empty_args   s*    D]]:S1MMO 211s	   ;
A	c                     Sn[         R                  " [        US9   [        R                  " SSS5        S S S 5        g ! , (       d  f       g = f)Nrg   r(   za.brC   r]   rh   r9   s     r   test_set_option_uneven_args&TestConfig.test_set_option_uneven_args   s1    D]]:S1MM%E* 211s	   >
Ac                     Sn[         R                  " [        US9   [        R                  " S5        S S S 5        g ! , (       d  f       g = f)Nrg   r(   rC   rh   r9   s     r   ,test_set_option_invalid_single_argument_type7TestConfig.test_set_option_invalid_single_argument_type   s-    D]]:S1MM! 211s	   <
A
c                    [         R                  " SSS5        [         R                  " SSS5        [         R                  " SS S5        [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R                  " S5      b   e[         R                  " SSSS SS	5        [         R                  " S5      S:X  d   e[         R                  " S5      b   e[         R                  " S5      S	:X  d   eg )
Nr4   r5   r6   r]   r^   r>   r_   2g      $@)r   r   r   r   r"   s    r   test_set_option_multiple#TestConfig.test_set_option_multiple   s    
35)
5'62
5$/}}S!Q&&&}}U#w...}}U#+++
c3tUD9}}S!S(((}}U#+++}}U#t+++r%   c                    [         R                  " SSS[         R                  S9  [         R                  " SSS[         R                  S9  [         R                  " SSS[         R                  S9  S	n[
        R                  " [        US
9   [         R                  " SSS[         R                  S9  S S S 5        [         R                  " SS5        [         R                  " SS5        [         R                  " SS5        [         R                  " SS 5        [
        R                  " [        US
9   [         R                  " SS 5        S S S 5        [
        R                  " [        US
9   [         R                  " SS5        S S S 5        Sn[
        R                  " [        US
9   [         R                  " SSS[         R                  S9  S S S 5        [
        R                  " [        US
9   [         R                  " SSS[         R                  S9  S S S 5        Sn[
        R                  " [        US
9   [         R                  " SS5        S S S 5        [         R                  " S [         R                  /5      n[         R                  " SS SUS9  [         R                  " SSR                  5        [         R                  " SS 5        [
        R                  " [        SS
9   [         R                  " SS5        S S S 5        g ! , (       d  f       GNX= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNw= f! , (       d  f       GNB= f! , (       d  f       GN= f! , (       d  f       g = f)Nr4   r5   r6   	validatordr]   r^   r>   z$Value must have type '<class 'int'>'r(   r7   NOrC   rc   abz+Value must be a nonnegative integer or Noneza.b.c.d3z;Value must be an instance of <class 'str'>\|<class 'bytes'>r=   c                      g N r~   r%   r   <lambda>,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   r0   rw   s      r   test_validationTestConfig.test_validation   s5   
35BII>
35B4I4IJ
5'6RZZH4]]:S1z4"))L 2 	c1
eW%
c1
c4  ]]:S1MM#t$ 2]]:S1MM#t$ 2 <]]:S1z4"BWBWX 2]]:S1z2u@U@UV 2 M]]:S1MM%# 2 (($)?@	
3eyI
c6==)
c4 ]]:-GHMM#v& IH; 21 2111 2111 21 IHsT   &L.L'L&"&L8)&M
2M!M.
L
L#&
L58
M

M
M+.
M<c                    [         R                  " SSS[         R                  S9  [         R                  " SSS[         R                  S9  [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R
                  " SS5        [         R
                  " SS	5        [         R                  " S5      S:X  d   e[         R                  " S5      S	:X  d   e[         R                  " S5        [         R                  " S5      S:X  d   e[         R                  " S5      S	:X  d   e[         R                  " S5        [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   eg )
Nr4   r5   r6   rv   r]   r^   r>   rC   rc   r   r   r   is_strr   r   r   r"   s    r   test_reset_optionTestConfig.test_reset_option   s   
35BII>
5'6RYYG}}S!Q&&&}}U#w...
c1
eW%}}S!Q&&&}}U#w...
}}S!Q&&&}}U#w...
}}S!Q&&&}}U#w...r%   c                 p   [         R                  " SSS[         R                  S9  [         R                  " SSS[         R                  S9  [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R
                  " SS5        [         R
                  " SS	5        [         R                  " S5      S:X  d   e[         R                  " S5      S	:X  d   e[         R                  " S
5        [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   eg )Nr4   r5   r6   rv   r]   r^   r>   rC   rc   allr   r"   s    r   test_reset_option_all TestConfig.test_reset_option_all   s    
35BII>
5'6RYYG}}S!Q&&&}}U#w...
c1
eW%}}S!Q&&&}}U#w...
}}S!Q&&&}}U#w...r%   c                    [         R                  " S5        [         R                  " S5      (       d   e[        R                  " [
        SS9   [        R                  " [        SS9   [         R                  " S5        S S S 5        S S S 5        [         R                  " SSS[         R                  S9  [         R                  " S	S
S5        [         R                  " SS
S5        [         R                  " SSS9  [        R                  " [
        SS9   [         R                  " S5        Sn[        R                  " [        US9   [         R                  " S5        S S S 5        S S S 5        [         R                  " S	S5        [        R                  " [
        SS9   [         R                  " S	5        S S S 5        [         R                  " SSS5        [         R                  " SSS5        [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R                  " SSS9  [        R                  " [
        SS9   [         R                  " S5      S:X  d   e S S S 5        [        R                  " [
        SS9   [         R                  " SS5        S S S 5        [        R                  " [
        SS9   [         R                  " S5      S:X  d   e S S S 5        g ! , (       d  f       GNw= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrG   
deprecatedr(   zNo such keys.s.: 'foo'r4   r5   r6   rv   r]   r^   r>   	nifty_ver)removal_verzeprecated.*nifty_verz1Option 'a' has already been defined as deprecatedzzounds!d.azd.deprM   rD   	eprecatedbaz)r   rN   rY   tmassert_produces_warningFutureWarningr,   r-   KeyErrorr   r   r   r   r   r9   s     r   test_deprecate_option TestConfig.test_deprecate_option  sb   
E"  ''''''\Jx/GHe$ I K 	35BII>
5'62
5'62
C[9''=STMM#EC{#6##C( 7	 U 	E9-''YGMM%  H 	5%0
7E62}}U#u,,,}}W%...
G%0''[I==)U222 J ''[IMM'5) J ''[I==)U222 JIA IH KJ 76	 UT HG JI JI JIsx   L 'K.>L 2L$LL$L6MMM*.
K=	8L  
L
L!	L$$
L36
M
M
M'*
M8c                 
   [         R                  " S5         [         R                  " SSS5        [         R                  " SSS5        [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e[         R                  " SS5        [         R                  " SS	5        [         R                  " S5      S:X  d   e[         R                  " S5      S	:X  d   e S S S 5        [         R                  " S
5      S:X  d   e[         R                  " S5      S	:X  d   eS[         R
                  " S
SS9;   d   eS[         R
                  " SSS9;   d   e[         R                  " S
5        [         R                  " S5        [         R                  " S5         [         R                  " S5      S:X  d   e[         R                  " S5      S:X  d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       g = f)Nbaser4   r5   doc1r=   rC   r>         zbase.azbase.bFrI   )r   config_prefixr   r   r   r   r   r"   s    r   test_config_prefixTestConfig.test_config_prefix4  s   f%sAv.sAv.==%***==%***MM#q!MM#q!==%***==%*** & }}X&!+++}}X&!+++++H%HHHH++H%HHHH
!
!f%==%***==%*** &%' &%& &%s   CG"9G4"
G14
Hc                   ^^ S /mS /mUU4S jn[         R                  " SSUS9  [         R                  " SSUS9  TS	 TS	 [         R                  " SS5        TS   S:X  d   eTS   S:X  d   eTS	 TS	 [         R                  " SS5        TS   S:X  d   eTS   S:X  d   eTS	 TS	 [         R                  " S5        TS   S:X  d   eg )	Nc                 r   > TR                  U 5        TR                  [        R                  " U 5      5        g r}   )appendr   r   )keyrB   r/   s    r   callback*TestConfig.test_callback.<locals>.callbackP  s#    HHSMHHR]]3'(r%   r   rG   cbzd.bfoozboo)r   r   r   r   )r   r   rB   r/   s     @@r   test_callbackTestConfig.test_callbackL  s    FF	) 	5%H5
5%H5bE1R5
eV$u~~ubE1R5
eU#u~~u~~bE1R5
u~~r%   c                   ^ S m[         R                  " SS5        T" S5        [         R                  " SS5         T" S5        [         R                  " SS5         T" S5        S S S 5        T" S5        S S S 5        T" S5        [         R                  " SS5        T" S5        [         R                  " SS5      U4S j5       nU" 5         g ! , (       d  f       Nm= f! , (       d  f       Nn= f)	Nc                 <    [         R                  " S5      U :X  d   eg )Nr4   )r   r   )vals    r   eq.TestConfig.test_set_ContextManager.<locals>.eqf  s    ==%,,,r%   r4   r            {   c                     > T " S5        g )Nr   r~   )r   s   r   rA   -TestConfig.test_set_ContextManager.<locals>.fv  s
    sGr%   )r   r   option_contextr   )r   rA   r   s     @r   test_set_ContextManager"TestConfig.test_set_ContextManagere  s    	- 	3"
1sB'rF""3+2 ,rF	 (
 	1
c2
2 
		3	$	 
%	 	
 ,+ ('s#    C	C$C
C	C
C*c                   ^ / mU4S jn[         R                  " SS5        [         R                  " SSUS9  [         R                  nUR                  S:X  d   e[         R                  " SS5         UR                  S:X  d   e S S S 5        SUl        [         R
                  " S5      S:X  d   e[         R                  " S5        UR                  [         R
                  " SS5      :X  d   eSn[        R                  " [        US	9   S
Ul
        S S S 5        [        R                  " [        US	9   S
Ul        S S S 5        S
Ul        [        T5      S
:X  d   eg ! , (       d  f       N= f! , (       d  f       Na= f! , (       d  f       NI= f)Nc                 (   > TR                  S5        g )NT)r   )r   holders    r   f3,TestConfig.test_attribute_access.<locals>.f3  s    MM$r%   r4   r   cr   r   i  z.You can only set the value of existing optionsr(   r5   )r   r   r   r4   r   r   r   r,   r-   r   r=   displayr   len)r   r   r   r0   r   s       @r   test_attribute_access TestConfig.test_attribute_access|  s%   	  	3"
3b)**yyA~~sB'99?"? ( 	}}S!S(((
yyBMM#q1111>]];c2GI 3]];c2GO 3 	6{a# (' 3222s$   0EE*0E;
E'*
E8;
F	c                 J   SnSnSn[         R                  " X15        [         R                  " X25      n[         R                  " U5      U:X  d   eU   [         R                  " U5      U:X  d   e S S S 5        [         R                  " U5      U:X  d   eg ! , (       d  f       N+= f)N<   r   r4   )r   r   r   r   )r   original_valuecontext_valueoption_namectxs        r   test_option_context_scope$TestConfig.test_option_context_scope  s    
 
;7 ;}}[)^;;; ==->>>  }}[)^;;;	 Ss   B
B"c                     [         R                  n[        R                  " [        SS9   UR
                    S S S 5        [        US5      (       a   eg ! , (       d  f       N"= f)NzNo such optionr(   bananas)r   r   r,   r-   r   r   r    )r   r   s     r   test_dictwrapper_getattr#TestConfig.test_dictwrapper_getattr  sG    **]];.>?OO @7I..... @?s   A
A!r~   N)__name__
__module____qualname____firstlineno__r,   fixturer   r#   r1   r:   rO   rZ   r`   rd   ri   rl   ro   rs   r   r   r   r   r   r   r   r   r   r   __static_attributes__r~   r%   r   r   r   
   s    ^^D! ".1B%CN+ ,/*
+

,$'L/$/'3R+02. <<,/r%   r   )r,   pandas._configr   r   pandas._config.configr   pandasr!   pandas._testing_testingr   r   r~   r%   r   <module>r      s      ' -  k/ k/r%   