
    h;                     L    S SK r S SKrS SKJr   " S S5      rS rS rS rS rg)	    N)available_ifc                   @    \ rS rSrSrSS jr\" S 5      S 5       rSrg)	AvailableParameterEstimator   zGThis estimator's `available` parameter toggles the presence of a methodc                     Xl         X l        g N	availablereturn_value)selfr
   r   s      _/var/www/html/shao/venv/lib/python3.13/site-packages/sklearn/utils/tests/test_metaestimators.py__init__$AvailableParameterEstimator.__init__   s    "(    c                     U R                   $ r   r
   ests    r   <lambda>$AvailableParameterEstimator.<lambda>   s    cmmr   c                     U R                   $ )$This is a mock available_if function)r   )r   s    r   available_func*AvailableParameterEstimator.available_func   s        r   r	   N)T   )	__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes__ r   r   r   r      s$    Q) +,! -!r   r   c                     S[        [        R                  S   R                  5      ;   d   eS[        [        R                  R                  5      ;   d   eS[        [        5       R                  R                  5      ;   d   eg )Nr   r   )strr   __dict__r    r   r"   r   r   test_available_if_docstringr&      s    1S#,,-=>FF6    2S#22::6    2S#%44<<6   r   c                  n    [        [        5       S5      (       d   e[        [        SS9S5      (       a   eg )Nr   Fr   )hasattrr   r"   r   r   test_available_ifr)   !   s7    .02BCCCC2UCEUVVVVVr   c                      [        5       n [         R                  U 5        [        SS9n [        R                  " [        SS9   [         R                  U 5        S S S 5        g ! , (       d  f       g = f)NFr   zDThis 'AvailableParameterEstimator' has no attribute 'available_func')match)r   r   pytestraisesAttributeErrorr   s    r    test_available_if_unbound_methodr/   &   sV    
 &
'C..s3
%
6C	T
 	$2237	
 
 
s   A!!
A/c                      Sn [        SU S9n[        R                  " UR                  5      n[        R                  " U5      nU" 5       U :X  d   eg)zQCheck that available_if methods can be pickled.

Non-regression test for #21344.

   Tr	   N)r   pickledumpsr   loads)r   r   pickled_bytesunpickled_funcs       r   (test_available_if_methods_can_be_pickledr7   6   sH    
 L
%<
PCLL!3!34M\\-0N|+++r   )	r2   r,   sklearn.utils.metaestimatorsr   r   r&   r)   r/   r7   r"   r   r   <module>r9      s-      5
! 
!	W
8 	,r   