
    2VhL                         d dl Z d dlmZ d dlmZ d dlmZ  eddg      d        Z edd	g      d
        Z eddg      d        Z	d Z
ddZd Zd Zy)    N)logging)keras_export)global_statez'keras.config.enable_interactive_loggingz&keras.utils.enable_interactive_loggingc                  0    t        j                  dd       y)zTurn on interactive logging.

    When interactive logging is enabled, Keras displays logs via stdout.
    This provides the best experience when using Keras in an interactive
    environment such as a shell or a notebook.
    interactive_loggingTNr   set_global_attribute     H/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/utils/io_utils.pyenable_interactive_loggingr   	   s     %%&;TBr   z(keras.config.disable_interactive_loggingz'keras.utils.disable_interactive_loggingc                  0    t        j                  dd       y)zTurn off interactive logging.

    When interactive logging is disabled, Keras sends logs to `absl.logging`.
    This is the best option when using Keras in a non-interactive
    way, such as running a training or inference job on a server.
    r   FNr   r
   r   r   disable_interactive_loggingr      s     %%&;UCr   z+keras.config.is_interactive_logging_enabledz*keras.utils.is_interactive_logging_enabledc                  .    t        j                  dd      S )aI  Check if interactive logging is enabled.

    To switch between writing logs to stdout and `absl.logging`, you may use
    `keras.config.enable_interactive_logging()` and
    `keras.config.disable_interactive_logging()`.

    Returns:
        Boolean, `True` if interactive logging is enabled,
        and `False` otherwise.
    r   T)r   get_global_attributer
   r   r   is_interactive_logging_enabledr   )   s    " ,,-BDIIr   c                 @   t         j                  t         j                  t         j                  t         j                  t         j
                  d}|j                  |       }|(t        dt        |j                                d|        t        j                  |       y)a  Sets the verbosity level for logging.

    Supported log levels are as follows:

    - `"FATAL"` (least verbose)
    - `"ERROR"`
    - `"WARNING"`
    - `"INFO"`
    - `"DEBUG"` (most verbose)

    Args:
        level: A string corresponding to the level of verbosity for logging.
    )FATALERRORWARNINGINFODEBUGNzBPlease pass a valid level for logging verbosity. Expected one of: z. Received: )r   r   r   r   r   r   get
ValueErrorsetkeysset_verbosity)levelvalid_levels	verbositys      r   set_logging_verbosityr!   =   s     ??L   'I  #L$5$5$7 89 :!
 	

 )$r   c                    t        |       } t               rH|r| dz   n| } 	 t        j                  j	                  |        t        j                  j                          yt        j                  |        y# t
        $ r t        |       } | j                  t        j                  j                  d      }|j                  t        j                  j                        } t        j                  j	                  |        Y w xY w)z,Print the message to absl logging or stdout.
ignore)errorsN)strr   sysstdoutwriteUnicodeEncodeError"_replace_special_unicode_characterencodeencodingdecodeflushr   info)message
line_breakmessage_bytess      r   	print_msgr4   \   s    'lG%'$.'D.G		&JJW% 	

W " 	& 9AG#NN3::+>+>xNPM#**3::+>+>?GJJW%	&s   A4 4BC>=C>c                     t        d|  d      j                         j                         }|dvr,t        d      j                         j                         }|dvr,|dk(  ryt        d       y)	zProduces a prompt asking about overwriting a file.

    Args:
        filepath: the path to the file to be overwritten.

    Returns:
        True if we can proceed with overwrite, False otherwise.
    z
[WARNING] z" already exists - overwrite? [y/n])ynz&Enter "y" (overwrite) or "n" (cancel).r7   Fz'[TIP] Next time specify overwrite=True!T)inputstriplowerr4   )filepath	overwrites     r   ask_to_proceed_with_overwriter=   p   sv     	
8*$FGH		 
 :
%:;AACIIK 	 :
% C78r   c                 <    t        |       j                  dd      } | S )Nu   ━=)r&   replace)r1   s    r   r+   r+      s    'l""5#.GNr   )T)r'   abslr   keras.src.api_exportr   keras.src.backend.commonr   r   r   r   r!   r4   r=   r+   r
   r   r   <module>rD      s    
  - 1 10CC 21DD 54JJ%>(0r   