
    h'                     >   d Z ddlZddlmZ ddlmZ  edddgd      d$d	       Zd
 Zd Z	d Z
d Zd Zd Zd Zd Z ed      d$d       Zd Zd Zd Zd Z ed      d%d       Zd Zd Zd Zd Z ed      d&dddd       Zd Z G d  d!      Zd" Zd# Zy)'z:
Tests for the `deprecate_nonkeyword_arguments` decorator
    N)deprecate_nonkeyword_argumentsz1.1abf_add_inputs)versionallowed_argsnamec                     | |z   |z   |z   S N r   r   cds       ZD:\jyotish\venv\Lib\site-packages\pandas/tests/util/test_deprecate_nonkeyword_arguments.pyfr      s     q519q=    c                  R    t        t        j                  t                    dk(  sJ y )Nz(a, b=0, *, c=0, d=0))strinspect	signaturer   r   r   r   test_f_signaturer      !    w  #$(????r   c                  z    t        j                  d       5  t        d      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)N   tmassert_produces_warningr   r   r   r   test_one_argumentr      s,    		#	#D	)u{{ 
*	)	)s   1:c                  ~    t        j                  d       5  t        dd      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr      )r      r   r   r   r   test_one_and_one_argumentsr"      s0    		#	#D	)qzR 
*	)	)   3<c                  |    t        j                  d       5  t        dd      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)N      r    r   r   r   r   test_two_argumentsr'   !   s.    		#	#D	)Aw!|| 
*	)	)s   2;c                      t        j                  d       5  t        dddd      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr%      r&   r   r      r   r   r   r   test_two_and_two_argumentsr,   &   s5    		#	#D	)Aa B&&& 
*	)	)   5>c                      t        j                  t              5  t        ddd      dk(  sJ 	 d d d        y # 1 sw Y   y xY wNr    r)   r+   r   r   FutureWarningr   r   r   r   test_three_argumentsr2   +   2    		#	#M	2AqzR 
3	2	2	   7A c                      t        j                  t              5  t        dddd      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr%      r)      
   r0   r   r   r   test_four_argumentsr9   0   s4    		#	#M	2Aq!}""" 
3	2	2s	   8Ac                      d} t        j                  t        |       5  t        ddd      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)NzyStarting with pandas version 1.1 all arguments of f_add_inputs except for the arguments 'a' and 'b' will be keyword-only.matchr    r)   r+   r0   msgs    r   )test_three_arguments_with_name_in_warningr?   5   sA    	E  
	#	#M	=AqzR 
>	=	=	   ;A)r   c                 n    t        j                  d       5  | |z   |z   |z   cd d d        S # 1 sw Y   y xY wr   )r   r   r   s       r   grB   >   s+    		#	#D	)1uqy1} 
*	)	)s   +4c                  R    t        t        j                  t                    dk(  sJ y )Nz(a, *, b=0, c=0, d=0))r   r   r   rB   r   r   r   test_g_signaturerD   D   r   r   c                      t        j                  d       5  t        dddd      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr%   r)   r&   )r   r   r   r+   )r   r   rB   r   r   r   1test_one_and_three_arguments_default_allowed_argsrF   H   s5    		#	#D	)a1"b((( 
*	)	)r-   c                      t        j                  t              5  t        ddd      dk(  sJ 	 d d d        y # 1 sw Y   y xY wr/   r   r   r1   rB   r   r   r   )test_three_arguments_default_allowed_argsrI   M   r3   r4   c                      d} t        j                  t        |       5  t        ddd      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)NzeStarting with pandas version 1.1 all arguments of g except for the argument 'a' will be keyword-only.r;   r    r)   r+   rH   r=   s    r   <test_three_positional_argument_with_warning_message_analysisrK   R   s@    	<  
	#	#M	=AqzR 
>	=	=r@   c                     | |z   |z   |z   S r   r   r   s       r   hrM   [       q519q=r   c                  R    t        t        j                  t                    dk(  sJ y Nz(*, a=0, b=0, c=0, d=0))r   r   r   rM   r   r   r   test_h_signaturerQ   `   !    w  #$(AAAAr   c                  ~    t        j                  d       5  t        dd      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr%   r6   )r   r   r)   )r   r   rM   r   r   r   test_all_keyword_argumentsrT   d   s0    		#	#D	)1{a 
*	)	)r#   c                      t        j                  t              5  t        d      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)N   r   r   r1   rM   r   r   r   test_one_positional_argumentrX   i   s,    		#	#M	2u{{ 
3	2	2s   5>c                      d} t        j                  t        |       5  t        d      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)NzIStarting with pandas version 1.1 all arguments of h will be keyword-only.r;   r   rW   r=   s    r   :test_one_positional_argument_with_warning_message_analysisrZ   n   s3    
UC		#	#M	=u{{ 
>	=	=s	   9Ar*   c                   | |z   |z   |z   S r   r   r   s       r   ir\   t   rN   r   c                  R    t        t        j                  t                    dk(  sJ y rP   )r   r   r   r\   r   r   r   test_i_signaturer^   y   rR   r   c                   2    e Zd Z edddg      dd       Zy)FooNselfbar)r   r   c                      y r   r   )ra   rb   foobars      r   bazzFoo.baz~   s    r   )NN)__name__
__module____qualname__r   re   r   r   r   r`   r`   }   s     #DO Pr   r`   c                  f    t        t        j                  t        j                              dk(  sJ y )Nz (self, bar=None, *, foobar=None))r   r   r   r`   re   r   r   r   test_foo_signaturerj      s%    w  )*.PPPPr   c                      d} t        j                  t        |       5  t               j	                  dd       d d d        y # 1 sw Y   y xY w)NzlIn a future version of pandas all arguments of Foo\.baz except for the argument \'bar\' will be keyword-onlyr;   quxquox)r   r   r1   r`   re   r=   s    r   
test_classrn      s;    	@  
	#	#M	=		%  
>	=	=s   AA)r   r   r   )r   r   r   r   )r   r   )__doc__r   pandas.util._decoratorsr   pandas._testing_testingr   r   r   r   r"   r'   r,   r2   r9   r?   rB   rD   rF   rI   rK   rM   rQ   rT   rX   rZ   r\   r^   r`   rj   rn   r   r   r   <module>rs      s     B   c
@
 

'
 
#
   . /
@)
 
   . /B 

  .Q  /B Q!r   