
    .Ph                         d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 d Zd Zd Zdd
Z G d de          Z G d de          ZdS )zE
Helpers for logging.

This module needs much love to become useful.
    )print_functionN   )mkdirpc                 j    t           j                            d          rt          d| dz
            S | S )zRemove .1s to the time under Windows: this is the time it take to
    stat files. This is needed to make results similar to timings under
    Unix, for tests
    winr   g?)sysplatform
startswithmaxts    M/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/joblib/logger.py_squeeze_timer      s3    
 |u%% 1a#g    c                 4    t          |           } d| | dz  fz  S )Nz%.1fs, %.1fmin      N@r   r   s    r   format_timer   "   s"    aAq!d(m++r   c                 F    t          |           } | dk    rd| dz  z  S d| z  S )N<   z%4.1fminr   z %5.1fsr   r   s    r   short_format_timer   '   s1    aA2vvQX&&Ar      c                     dt           j        v r1dd l}|                                }|                    ddd           nd }t          j        | ||          }|r |j        di | |S )	Nnumpyr      @   r   )	precision	threshold	edgeitems)depthindent )r   modulesr   get_printoptionsset_printoptionspprintpformat)objr!   r    npprint_optionsouts         r   r'   r'   /   s    #+++--
a2CCCC
.E&
9
9
9C -,,m,,,Jr   c                   4    e Zd ZdZd
dZd Zd Zd Zdd	ZdS )Loggerz Base class for logging messages.r   Nc                 *    || _         |r|nd| _        dS )z
        Parameters
        ----------
        depth: int, optional
            The depth of objects printed.
        name: str, optional
            The namespace to log to. If None, defaults to joblib.
        joblibN)r    _name)selfr    names      r   __init__zLogger.__init__C   s     
!/TTx


r   c                 j    t          j        | j                                      d| d|           d S N[z]: )logging	getLoggerr0   warningr1   msgs     r   warnzLogger.warnO   s7    $*%%---DDD##.FGGGGGr   c                 :    t          j        d| d|           d S r5   )r7   infor:   s     r   r>   zLogger.infoR   s%    444-.....r   c                 j    t          j        | j                                      d| d|           d S r5   )r7   r8   r0   debugr:   s     r   r@   zLogger.debugU   s7    $*%%+++$$$,DEEEEEr   r   c                 0    t          ||| j                  S )z2Return the formatted representation of the object.)r!   r    )r'   r    )r1   r(   r!   s      r   formatzLogger.formatY   s    s6<<<<r   )r   N)r   )	__name__
__module____qualname____doc__r3   r<   r>   r@   rB   r"   r   r   r-   r-   @   su        **
0 
0 
0 
0H H H/ / /F F F= = = = = =r   r-   c                   "    e Zd ZdZddZddZdS )		PrintTimez3Print and log messages while keeping track of time.Nc                    ||t          d          t          j                    | _        | j        | _        | t          j                            |d          }|| _        |#t          t          j        	                    |                     t          j        
                    |          r`t          dd          D ].}	 t          j        |d|z  z   |d|dz   z  z              (#  Y ,xY w	 t          j        ||dz              n#  Y nxY w	 t          |d          5 }|                    d           |                    d	t          j        | j                  z             d d d            d S # 1 swxY w Y   d S #  Y d S xY wd S )
Nz&Cannot specify both logfile and logdirz
joblib.logr   	   z.%iz.1wz
Logging joblib python script
z

---%s---
)
ValueErrortime	last_time
start_timeospathjoinlogfiler   dirnameexistsrangeshutilmovecopyopenwritectime)r1   rS   logdiris       r   r3   zPrintTime.__init__d   s   6#5EFFF.gll6<88G27??7++,,,w~~g&& -q! 1 1A1Geai$75APQE?9RSSSS100-K48888-,,'3'' O7MM"DEEEMM.4:dn3M3M"MNNNO O O O O O O O O O O O O O O O O O  ) sI   $C''C+/D DE?  AE2%E? 2E66E? 9E6:E? ?F Fc                    |s0t          j                     | j        z
  }|dt          |          }n&t          j                     | j        z
  }d|||dz  fz  }t	          |t
          j                   | j        G	 t          | j        d          5 }t	          ||           ddd           n# 1 swxY w Y   n#  Y nxY wt          j                     | _        dS )zmPrint the time elapsed between the last call and the current
        call, with an optional message.
        z: z%s: %.2fs, %.1f minr   )fileNa)	rM   rN   r   rO   printr   stderrrS   rZ   )r1   r;   total
time_lapsefull_msgfs         r   __call__zPrintTime.__call__   s#     	Rt~5J#&33J(?(?(?@HH t6J,Zb/QQHhSZ((((<#$,,, ,(++++, , , , , , , , , , , , , , ,  s0   <B; B/#B; /B33B; 6B37B; ;B?)NN)r_   F)rC   rD   rE   rF   r3   ri   r"   r   r   rH   rH   a   sC        ==       H% % % % % %r   rH   )r   r   )rF   
__future__r   r7   rP   r&   rW   r   rM   diskr   r   r   r   r'   objectr-   rH   r"   r   r   <module>rm      s    & % % % % %  				   



         , , ,
     "= = = = =V = = =B>% >% >% >% >% >% >% >% >% >%r   