
    ɯei                     L    d dl Z d dlZ e j                  e      Z G d d      Zy)    Nc                   H    e Zd ZdZ	 	 	 	 ddZddZddZdeded	eddfd
Z	y)DataframeProfilerz
    Set up profiler to track query history for dataframe operations. To get profiles, call
    get_execution_profile() on a dataframe.
    returnNc                 .    || _         d| _        d | _        y )NF)_session_enabled_query_history)selfsessions     g/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/snowflake/snowpark/dataframe_profiler.py__init__zDataframeProfiler.__init__   s      "    c                     d| _         | j                  9t        j                  d       | j                  j                  ddd      | _        yy)z.
        Enables dataframe profiling.
        TNzEnabling dataframe profiling)include_thread_idinclude_errorinclude_dataframe_profiling)r   r	   loggerinfor   query_historyr
   s    r   enablezDataframeProfiler.enable   sN     &KK67"&--"="="&",0 #> #D 'r   c                     d| _         | j                  7| j                  j                  j	                  | j                         d| _        yy)z#
        Disable profiler.
        FN)r   r	   r   _connremove_query_listenerr   s    r   disablezDataframeProfiler.disable&   sB     *MM55d6I6IJ"&D +r   dataframe_uuidquerytimec                     | j                   r\|| j                  j                  vrg | j                  j                  |<   | j                  j                  |   j                  ||f       yy)zN
        Add the time taken to describe a dataframe to query history.
        N)r   r	   _describe_queriesappend)r
   r   r   r   s       r   add_describe_query_timez)DataframeProfiler.add_describe_query_time/   s^     ==T%8%8%J%JJHJ##55nE11.AHH%QUW r   )r   zsnowflake.snowpark.Sessionr   N)r   N)
__name__
__module____qualname____doc__r   r   r   strfloatr"    r   r   r   r      sR    
#-# 
#'	X!	X*-	X5:	X		Xr   r   )loggingsnowflake.snowpark	snowflake	getLoggerr#   r   r   r)   r   r   <module>r.      s-      
		8	$-X -Xr   