o
    Z&i
                     @   sN   d dl Z d dlZd dlmZ d dlmZ dd Zdd ZG dd	 d	eeZdS )
    N)UserDict)ReprHTMLMixinc                 C   sF   t  }d|_d|_d|_t||}| |v rdnd}|| |dS )zCategorizes parameters as 'default' or 'user-set' and formats their values.
    Escapes or truncates parameter values for display safety and readability.
          2   zuser-setdefault)
param_type
param_nameZparam_value)reprlibReprmaxlistmaxtuple	maxstringhtmlescaperepr)namevalueZnon_default_paramsrZcleaned_valuer    r   JC:\wamp64\www\opt\env\Lib\site-packages\sklearn/utils/_repr_html/params.py_read_params   s   r   c                    s2   d}d  fdd  D }|jd|dS )a   Generate HTML representation of estimator parameters.

    Creates an HTML table with parameter names and values, wrapped in a
    collapsible details element. Parameters are styled differently based
    on whether they are default or user-set values.
    a/  
        <div class="estimator-table">
            <details>
                <summary>Parameters</summary>
                <table class="parameters-table">
                  <tbody>
                    {rows}
                  </tbody>
                </table>
            </details>
        </div>
    aZ  
        <tr class="{param_type}">
            <td><i class="copy-paste-icon"
                 onclick="copyToClipboard('{param_name}',
                          this.parentElement.nextElementSibling)"
            ></i></td>
            <td class="param">{param_name}&nbsp;</td>
            <td class="value">{param_value}</td>
        </tr>
    c              	      s*   g | ]\}} j d i t||jqS )r   )formatr   non_default).0r   r   ZROW_TEMPLATEparamsr   r   
<listcomp>8   s    z%_params_html_repr.<locals>.<listcomp>
)rows)itemsr   join)r   ZHTML_TEMPLATEr   r   r   r   _params_html_repr   s   r"   c                       s,   e Zd ZdZeZde f fdd	Z  ZS )
ParamsDicta  Dictionary-like class to store and provide an HTML representation.

    It builds an HTML structure to be used with Jupyter notebooks or similar
    environments. It allows storing metadata to track non-default parameters.

    Parameters
    ----------
    params : dict, default=None
        The original dictionary of parameters and their values.

    non_default : tuple
        The list of non-default parameters.
    Nc                    s   t  |pi  || _d S )N)super__init__r   )selfr   r   	__class__r   r   r%   Q   s   
zParamsDict.__init__)	__name__
__module____qualname____doc__r"   Z
_html_reprtupler%   __classcell__r   r   r'   r   r#   @   s    r#   )	r   r
   collectionsr   Zsklearn.utils._repr_html.baser   r   r"   r#   r   r   r   r   <module>   s   &