o
    2hP                     @   s   d dl Z d dlmZ d dlmZ d dlmZ eddgdd Zed	d
gdd Zeddgdd Z	dd Z
dddZdd Zdd ZdS )    N)logging)keras_export)global_statez'keras.config.enable_interactive_loggingz&keras.utils.enable_interactive_loggingc                   C      t dd dS )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 r	   r	   S/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/utils/io_utils.pyenable_interactive_logging	      r   z(keras.config.disable_interactive_loggingz'keras.utils.disable_interactive_loggingc                   C   r   )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	   r
   disable_interactive_logging   r   r   z+keras.config.is_interactive_logging_enabledz*keras.utils.is_interactive_logging_enabledc                   C   s   t 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	   r
   is_interactive_logging_enabled)   s   r   c                 C   sV   t jt jt jt jt jd}|| }|du r$tdt|	  d|  t 
| dS )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	verbosityr	   r	   r
   set_logging_verbosity=   s    

r   Tc                 C   s   t | } t rD|r| d n| } ztj|  W n% ty<   t| } tjjp'd}| j|dd}|	|} tj|  Y nw tj
  dS t|  dS )z,Print the message to absl logging or stdout.
zutf-8ignore)errorsN)strr   sysstdoutwriteUnicodeEncodeError"_replace_special_unicode_characterencodingencodedecodeflushr   info)message
line_breakr'   message_bytesr	   r	   r
   	print_msg\   s   
r/   c                 C   sP   t d|  d  }|dvrt d  }|dvs|dkr"dS td dS )	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).r1   Fz'[TIP] Next time specify overwrite=True!T)inputstriplowerr/   )filepath	overwriter	   r	   r
   ask_to_proceed_with_overwritet   s   
r7   c                 C   s   t | dd} | S )Nu   ━=)r!   replace)r,   r	   r	   r
   r&      s   r&   )T)r"   abslr   keras.src.api_exportr   keras.src.backend.commonr   r   r   r   r   r/   r7   r&   r	   r	   r	   r
   <module>   s4    





