U
    _»{j;  ã                   @   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/bwave/python/venv/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   