U
    9%e;                     @   sN   d dl Z d dlZd dlmZ G dd dZdd Zdd Zd	d
 Zdd ZdS )    N)available_ifc                   @   s.   e Zd ZdZdddZedd dd	 Zd
S )AvailableParameterEstimatorzGThis estimator's `available` parameter toggles the presence of a methodT   c                 C   s   || _ || _d S N	availablereturn_value)selfr   r    r
   f/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sklearn/utils/tests/test_metaestimators.py__init__   s    z$AvailableParameterEstimator.__init__c                 C   s   | j S r   r   estr
   r
   r   <lambda>       z$AvailableParameterEstimator.<lambda>c                 C   s   | j S )$This is a mock available_if function)r   )r	   r
   r
   r   available_func   s    z*AvailableParameterEstimator.available_funcN)Tr   )__name__
__module____qualname____doc__r   r   r   r
   r
   r
   r   r      s   

r   c                   C   sF   dt tjd jkstdt tjjks,tdt t jjksBtd S )Nr   r   )strr   __dict__r   AssertionErrorr   r
   r
   r
   r   test_available_if_docstring   s    


r   c                   C   s(   t t dstt tdddr$td S )Nr   Fr   )hasattrr   r   r
   r
   r
   r   test_available_if!   s    r   c               	   C   sB   t  } t |  t dd} tjtdd t |  W 5 Q R X d S )NFr   zDThis 'AvailableParameterEstimator' has no attribute 'available_func')match)r   r   pytestZraisesAttributeErrorr   r
   r
   r    test_available_if_unbound_method&   s    

r!   c                  C   s8   d} t d| d}t|j}t|}| | ks4tdS )zYCheck that available_if methods can be pickled.

    Non-regression test for #21344.
    
   Tr   N)r   pickledumpsr   loadsr   )r   r   Zpickled_bytesZunpickled_funcr
   r
   r   (test_available_if_methods_can_be_pickled6   s
    
r&   )	r#   r   Zsklearn.utils.metaestimatorsr   r   r   r   r!   r&   r
   r
   r
   r   <module>   s   