o
    i                     @   s   d dl Z G dd deZdS )    Nc                       sT   e Zd ZdZ fddZ fddZdd Zdd	 Zd
d Zdd Z	dd Z
  ZS )Buncha  Container object exposing keys as attributes.

    Bunch objects are sometimes used as an output for functions and methods.
    They extend dictionaries by enabling values to be accessed by key,
    `bunch["value_key"]`, or by an attribute, `bunch.value_key`.

    Examples
    --------
    >>> from sklearn.utils import Bunch
    >>> b = Bunch(a=1, b=2)
    >>> b['b']
    2
    >>> b.b
    2
    >>> b.a = 3
    >>> b['a']
    3
    >>> b.c = 6
    >>> b['c']
    6
    c                    s   t  | i | jd< d S N_deprecated_key_to_warnings)super__init____dict__)selfkwargs	__class__ Q/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/sklearn/utils/_bunch.pyr      s   zBunch.__init__c                    s0   || j di v rt| j| t t |S r   )r   getwarningswarnr   FutureWarningr   __getitem__r   keyr
   r   r   r   $   s   zBunch.__getitem__c                C   s"   || j d |< | | |< | |< dS )z@Set key in dictionary to be deprecated with its warning message.r   N)r   )r   valuenew_keydeprecated_keywarning_messager   r   r   _set_deprecated,   s   zBunch._set_deprecatedc                 C   s   || |< d S Nr   )r   r   r   r   r   r   __setattr__1   s   zBunch.__setattr__c                 C   s   |   S r   )keys)r   r   r   r   __dir__4   s   zBunch.__dir__c                 C   s"   z| | W S  t y   t|w r   )KeyErrorAttributeErrorr   r   r   r   __getattr__7   s
   
zBunch.__getattr__c                 C   s   d S r   r   )r   stater   r   r   __setstate__=   s   	zBunch.__setstate__)__name__
__module____qualname____doc__r   r   r   r   r   r    r"   __classcell__r   r   r
   r   r      s    r   )r   dictr   r   r   r   r   <module>   s   