
    Q/Ph	                         d Z ddlmZmZmZmZmZ ddlZddl	m
Z
 dee         defdZ G d d	          Zdeeef         fd
ZdS )z;
    Auxiliary handler methods for data summary extraction
    )AnyCallableDictListSequenceN)VisionsTypeset	functionsreturnc                 8     dt           t                   f fd}|S )z
    Compose a sequence of functions.

    :param functions: sequence of functions
    :return: combined function applying all functions in order.
    r
   c                  `    | }D ]'}t          |t                    r || n
 ||          }(|S N)
isinstancetuple)argsresultfuncr	   s      ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/ydata_profiling/model/handler.pycomposed_functionz"compose.<locals>.composed_function   sF     	R 	RD&0&?&?QTT6]]TT&\\FF    )r   r   )r	   r   s   ` r   composer   
   s4    DI       r   c                   V    e Zd ZdZdeeee         f         defdZ	d
dZ
dedefd	ZdS )HandlerzVA generic handler

    Allows any custom mapping between data types and functions
    mappingtypesetc                 J    || _         || _        |                                  d S r   )r   r   _complete_dag)selfr   r   r   kwargss        r   __init__zHandler.__init__!   s*     r   r
   Nc                    t          j        t          j        | j        j                            D ]O\  }}| j        t          |                   | j        t          |                   z   | j        t          |          <   Pd S r   )nxtopological_sort
line_graphr   
base_graphr   str)r   	from_typeto_types      r   r   zHandler._complete_dag,   sx    "$"5M$,122#
 #
 	 	Iw S^^,t|CLL/II LW&&	 	r   dtypec                 p    | j                             |g           }t          |          } || d         }|S )zz
        Returns:
            object: a tuple containing the config, the dataset series and the summary extracted
        )r   getr   )r   r(   r   r   funcsopsummarys          r   handlezHandler.handle4   s:    
   ++U^^"d)B-r   )r
   N)__name__
__module____qualname____doc__r   r%   r   r   r   r   r   dictr/    r   r   r   r      s         
	c4>)*	  	 	 	 	   C T      r   r   c                      dd l mc mc m}  | j        | j        | j        | j        | j        | j	        | j
        | j        | j        | j        | j        | j        d}|S )Nr   )BooleanNumericComplexTextDateTimeCategoricalURLPathFileImageUnsupported
TimeSeries)*ydata_profiling.report.structure.variablesreport	structure	variablesrender_booleanrender_realrender_complexrender_textrender_daterender_categorical
render_urlrender_pathrender_filerender_imagerender_genericrender_timeseries)render_algorithms
render_maps     r   get_render_maprU   ?   s    JJJJJJJJJJJJ %3$0$3!-%1(; +!-!-"/(7'9 J r   )r3   typingr   r   r   r   r   networkxr!   visionsr   r   r   r%   rU   r5   r   r   <module>rY      s     7 6 6 6 6 6 6 6 6 6 6 6 6 6     " " " " " "x) h    "! ! ! ! ! ! ! !HS(]+      r   