
    .iE                     d    d dl Z d dlm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 Zd Zy)	    N)config)OptionError)Pandas4Warningc                   
   e Zd Z ej                  d      d        Zd Zd Zd Zd Z	ej                  j                  deeg      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 y)
TestConfigT)autousec              #     K   |j                         5 }|j                  t        di        |j                  t        dt        j                  t        j                               |j                  t        di        |j                  t        di        t        j
                  dd       d  d d d        y # 1 sw Y   y xY ww)N_global_configoptions_deprecated_options_registered_optionschained_assignmentraise)contextsetattrcfDictWrapperr
   register_option)selfmonkeypatchms      ]/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/config/test_config.pyclean_configzTestConfig.clean_config   s       " 	aIIb*B/IIb)R^^B4E4E%FGIIb/4IIb/4 3W=	 	 	s   C BB4+	C 4B=9C c                     t        t        d      sJ t        t        d      sJ t        t        d      sJ t        t        d      sJ y )N
get_option
set_optionreset_optiondescribe_option)hasattrpdr   s    r   test_apizTestConfig.test_api   sC    r<(((r<(((r>***r,---    c                     t        j                  d dg      } |d        |d        d}t        j                  t        |      5   |d       d d d        y # 1 sw Y   y xY w)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#   sS      $,	"	$.]]:S1 	cF	 	 	s   	AA c                    t        j                  ddd       d}t        j                  t        |      5  t        j                  ddd       d d d        d}t        j                  t        |      5  t        j                  ddd       d d d        t        j                  t        |      5  t        j                  ddd       d d d        d	}t        j                  t
        |      5  t        j                  d
d       d d d        t        j                  t
        |      5  t        j                  dd       d d d        d}t        j                  t
        |      5  t        j                  dd       d d d        t        j                  ddd       t        j                  ddd       y # 1 sw Y   cxY w# 1 sw Y   3xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w)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,   s   
35) 7]];c2 	.sAu-	. ?]];c2 	5z1e4	5]];c2 	5z1e4	5 (]]:S1 	)ua(	)]]:S1 	-y!,	- 9]]:S1 	4/3	4 	:q%0
:q%05	. 	.
	5 	5	5 	5
	) 	)	- 	-	4 	4sG   F.2F;-G*G$G! G-.F8;GGG!G*-G6c                    t        j                  ddd       t        j                  ddd       t        j                  dt               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t        d       t        j                  dd       d}t	        j
                  t        |      5  t        j                  d       d d d        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 y # 1 sw Y   exY w)Nr1   r2   r3   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_optionFutureWarningr*   r+   r   r   r   r6   s     r   test_describe_optionzTestConfig.test_describe_optionM   s<   
35)
36*
C/
8Q/
8Q/
3"
5!$
3"
E=s;
3& #]];c2 	.}-	. **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-	. 	.s   JJcategoryc                 <   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        t        j                  d|       d}t        j                  ||      5  t        j                  d
       d d d        y # 1 sw Y   WxY w# 1 sw Y   y xY w)NKanBANr2   r3   kanbaNFrE   kanBaNKanBanr?   kAnBaN#No such keys\(s\): 'no_such_option'r&   no_such_optionz5'kanban' is deprecated, please refrain from using it.)r   r   r   r   r   r*   r+   r   rJ   tmassert_produces_warning)r   rM   r.   s      r   test_case_insensitivez TestConfig.test_case_insensitivet   s    
8Q.**8GGGG}}X&!+++
h"}}X&!+++ 5]];c2 	,MM*+	, 	Hh/E''< 	$MM(#	$ 	$	, 	,
	$ 	$s   D'DDD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        y # 1 sw Y   y xY w)Nr1   r2   r3   b.chullor:   b.brT   r&   rU   )r   r   r   r*   r+   r   r6   s     r   test_get_optionzTestConfig.test_get_option   s    
35)
5'62
5$/ }}S!Q&&&}}U#w...}}U#+++ 5]];c2 	,MM*+	, 	, 	,s   .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        y # 1 sw Y   y xY w)Nr1   r2   r3   rZ   r[   r:   r\   r?   wurldr(   z No such keys\(s\): 'no.such.key'r&   rD   )r   r   r   r   r*   r+   r   r6   s     r   test_set_optionz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-.	/ 	/ 	/s   >EE'c                     d}t        j                  t        |      5  t        j                          d d d        y # 1 sw Y   y xY w)N4Must provide an even number of non-keyword argumentsr&   r*   r+   r,   r   r   r6   s     r   test_set_option_empty_argsz%TestConfig.test_set_option_empty_args   s3    D]]:S1 	MMO	 	 	s	   <Ac                     d}t        j                  t        |      5  t        j                  ddd       d d d        y # 1 sw Y   y xY w)Nrb   r&   za.br?   rZ   rc   r6   s     r   test_set_option_uneven_argsz&TestConfig.test_set_option_uneven_args   s:    D]]:S1 	+MM%E*	+ 	+ 	+s	   ?Ac                     d}t        j                  t        |      5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nrb   r&   r?   rc   r6   s     r   ,test_set_option_invalid_single_argument_typez7TestConfig.test_set_option_invalid_single_argument_type   s6    D]]:S1 	MM!	 	 	s	   =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 y )
Nr1   r2   r3   rZ   r[   r:   r\   2      $@r   r   r   r   r!   s    r   test_set_option_multiplez#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                    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d d	d
}t        j                  |       t        j                  d      dk(  sJ t        j                  d      J t        j                  d      d	k(  sJ y )Nr1   r2   r3   rZ   r[   r:   r\   rj   rk   )r1   rZ   r\   rl   )r   options_dicts     r   test_set_option_dictzTestConfig.test_set_option_dict   s     	35)
5'62
5$/}}S!Q&&&}}U#w...}}U#+++ d;
l#}}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        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        t        j                  t        |
      5  t        j                  dd       d d d        d}t        j                  t        |
      5  t        j                  dddt         j                         d d d        t        j                  t        |
      5  t        j                  dddt         j                         d d d        d}t        j                  t        |
      5  t        j                  dd       d d d        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        y # 1 sw Y   ZxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   *xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr1   r2   r3   	validatordrZ   r[   r:   z$Value must have type '<class 'int'>'r&   r4   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'>r9   c                       y N rz   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.   rs   s      r   test_validationzTestConfig.test_validation   sv   
35BII>
35B4I4IJ
5'6RZZH4]]:S1 	Mz4"))L	M 	c1
eW%
c1
c4  ]]:S1 	%MM#t$	%]]:S1 	%MM#t$	% <]]:S1 	Yz4"BWBWX	Y]]:S1 	Wz2u@U@UV	W M]]:S1 	$MM%#	$ (($)?@	
3eyI
c6==)
c4 ]]:-GH 	'MM#v&	' 	'9	M 	M	% 	%	% 	%	Y 	Y	W 	W	$ 	$	' 	'sT   (L6L 0L-,(L:7(MM3M L L*-L7:MM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 y )
Nr1   r2   r3   rr   rZ   r[   r:   r?   r_   r   r   r|   is_strr   r   r   r!   s    r   test_reset_optionz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                 Z   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 y )Nr1   r2   r3   rr   rZ   r[   r:   r?   r_   allr   r!   s    r   test_reset_option_allz 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                    t        j                  dt               t        j                  t        d      5  t        j                  t        d      5  t        j                  d       d d d        d d d        t        j                  dddt         j                         t        j                  d	d
d       t        j                  dd
d       t        j                  dt        d       t        j                  t        d      5  t        j                  d       d}t        j                  t        |      5  t        j                  dt               d d d        d d d        t        j                  d	t        d       t        j                  t        d      5  t        j                  d	       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t        d       t        j                  t        d      5  t        j                  d      dk(  sJ 	 d d d        t        j                  t        d      5  t        j                  dd       d d d        t        j                  t        d      5  t        j                  d      dk(  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrC   
deprecatedr&   zNo such keys.s.: 'foo'r1   r2   r3   rr   rZ   r[   r:   	nifty_ver)removal_verzeprecated.*nifty_verz1Option 'a' has already been defined as deprecatedzzounds!d.azd.deprI   r@   	eprecatedbaz)r   rJ   rK   rV   rW   r*   r+   KeyErrorr   r   r|   r   r   r6   s     r   test_deprecate_optionz TestConfig.test_deprecate_option!  s   
E=1''\J 	%x/GH %e$%	% 	35BII>
5'62
5'62
CKH''=ST 	8MM#EC{#6 8##C78		8 	E=)<''YG 	!MM% 	! 	5%0
7E62}}U#u,,,}}W%...
G]?''[I 	3==)U222	3 ''[I 	*MM'5)	* ''[I 	3==)U222	3 	3A% %	% 	%8 8		8 	8	! 	!	3 	3	* 	*	3 	3sw   K:K-(K:3L7LLL!L.L:M-K7	2K::LL	LL!L+.L7: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        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        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nbaser1   r2   doc1r9   r?   r:         zbase.azbase.bFrE   )r   config_prefixr   r   r   r   r   r!   s    r   test_config_prefixzTestConfig.test_config_prefixI  s   f% 		+sAv.sAv.==%***==%***MM#q!MM#q!==%***==%***		+ }}X&!+++}}X&!+++++H%HHHH++H%HHHH
!
!f% 	+==%***==%***	+ 	+'		+ 		+&	+ 	+s   CG
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 y )	Nc                 p    j                  |        j                  t        j                  |              y ry   )appendr   r   )keyr>   r-   s    r   callbackz*TestConfig.test_callback.<locals>.callbacke  s#    HHSMHHR]]3'(r#   r   rC   cbzd.bfoozboo)r   r   r   r   )r   r   r>   r-   s     @@r   test_callbackzTestConfig.test_callbacka  s    FF	) 	5%H5
5%H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         d       d d d         d       t        j                  dd        d       t        j                  dd      fd       } |        y # 1 sw Y   exY w# 1 sw Y   axY w)	Nc                 8    t        j                  d      | k(  sJ y )Nr1   r   r   vals    r   eqz.TestConfig.test_set_ContextManager.<locals>.eq{  s    ==%,,,r#   r1   r            {   c                        d       y Nr   rz   r   s   r   r=   z-TestConfig.test_set_ContextManager.<locals>.f  
    sGr#   r   r   option_contextr   r   r=   r   s     @r   test_set_ContextManagerz"TestConfig.test_set_ContextManagerz  s    	- 	3"
1sB' 	rF""3+ 2rF		
 	1
c2
2 
		3	$	 
%	 	
 	 	s#   C	C!CC	
CCc                    d t        j                  dd       t        j                  dd        d       t        j                  ddd      5   d       t        j                  ddd      5   d       d d d         d       d d d         d       t        j                  dd       t        j                  dd        d       t        j                  d	d	d      fd
       } |        y # 1 sw Y   }xY w# 1 sw Y   yxY w)Nc                 l    t        j                  d      | k(  sJ t        j                  d      | k(  sJ y )Nr1   rZ   r   r   s    r   r   z3TestConfig.test_set_ContextManager_dict.<locals>.eq  s0    ==%,,,=='3...r#   r1   r   rZ   r   )r1   rZ   r   r   r   c                        d       y r   rz   r   s   r   r=   z2TestConfig.test_set_ContextManager_dict.<locals>.f  r   r#   r   r   s     @r   test_set_ContextManager_dictz'TestConfig.test_set_ContextManager_dict  s    	/ 	3"
5!$
1R34 	rF""B#78 2rF		
 	1
c2
eR 
2 
		S1	2	 
3	 	
 	 	s$   !D2	C7;D7D 	<DD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        d|_        t        j
                  d      dk(  sJ t        j                  d       |j                  t        j
                  d      k(  sJ d}t        j                  t        |	      5  d
|_
        d d d        t        j                  t        |	      5  d
|_        d d d        d
|_        t              d
k(  sJ y # 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   9xY w)Nc                 (    j                  d       y )NT)r   )r   holders    r   f3z,TestConfig.test_attribute_access.<locals>.f3  s    MM$r#   r1   r   cr   r   i  z.You can only set the value of existing optionsr&   r2   )r   r   r   r1   r   r   r   r*   r+   r   r9   displayr   len)r   r   r   r.   r   s       @r   test_attribute_accessz TestConfig.test_attribute_access  s:   	  	3"
3b)**yyA~~sB' 	#99?"?	# 	}}S!S(((
yyBMM#....>]];c2 	GI	]];c2 	 GO	  	6{a#	# 	#	 		  	 s$   .E E+E+EE(+E4c                 4   d}d}d}t        j                  ||       t        j                  ||      }t        j                  |      |k(  sJ |5  t        j                  |      |k(  sJ 	 d d d        t        j                  |      |k(  sJ y # 1 sw Y   $xY w)N<   
   r1   )r   r   r   r   )r   original_valuecontext_valueoption_namectxs        r   test_option_context_scopez$TestConfig.test_option_context_scope  s    
 
;7 ];}}[)^;;;  	?==->>>	? }}[)^;;;		? 	?s   BBc                     t         j                  }t        j                  t        d      5  |j
                   d d d        t        |d      rJ y # 1 sw Y   xY w)NzNo such optionr&   bananas)r   r   r*   r+   r   r   r   )r   r   s     r   test_dictwrapper_getattrz#TestConfig.test_dictwrapper_getattr  sI    **]];.>? 	OO	7I....	 	s   AAN)!__name__
__module____qualname__r*   fixturer   r"   r/   r7   rL   markparametrizeDeprecationWarningrK   rX   r]   r`   rd   rf   rh   rm   rp   r   r   r   r   r   r   r   r   r   r   r   rz   r#   r   r   r      s    V^^D! ".1B%CN [[Z*<m)LM$ N$$,/*
+

,,$#'J/$/&3P+02.6 <<,/r#   r   c                     t        j                  t        d      5  t        j                  d       d d d        t        j                  t        d      5  t        j
                  dd       d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)Nzis deprecatedr&   zfuture.no_silent_downcastingT)rV   rW   r   r   r   r   rz   r#   r   %test_no_silent_downcasting_deprecatedr     sm    		#	#N/	J 6
456		#	#N/	J <
4d;< <6 6< <s   A5B5A>B
c                      t        j                  t        d      5  t        j                  dd      5  	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NzNo such keysr&   invalidT)r*   r+   r   r   r   rz   r#   r   "test_option_context_invalid_optionr     sR    	{.	9 y$/ 		 	 	 s!   AAAA	AA)r*   pandas._configr   r   pandas._config.configr   pandas.errorsr   pandasr    pandas._testing_testingrV   r   r   r   rz   r#   r   <module>r      s.     ' - (  Y/ Y/x<r#   