o
    pi%                     @   s  U d Z ddlZddlZddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZ ddlmZmZ ddlmZ e Zdaeej ed< ejej	ejejejdZejZdad	efd
dZd	efddZd	ejfddZ dCddZ!dCddZ"d	eeef fddZ#dDdee d	ejfddZ$d	efddZ%ded	dfddZ&dCddZ'dCd d!Z(dCd"d#Z)dCd$d%Z*dCd&d'Z+dCd(d)Z,d*ejd	dfd+d,Z-d*ejd	dfd-d.Z.dCd/d0Z/dCd1d2Z0dCd3d4Z1dCd5d6Z2dCd7d8Z3e3ej_3G d9d: d:Z4G d;d< d<Z5e5 Zd	e6fd=d>Z7dCd?d@Z8dCdAdBZ9dS )EzLogging utilities.    N)CRITICALDEBUGERRORFATALINFONOTSETWARNWARNING)DictOptional)auto_default_handler)debuginfowarningerrorcriticalTreturnc               	   C   sH   t dd} | r"| tv rt|  S t d|  ddt   tS )z
    If DIFFUSERS_VERBOSITY env var is set to one of the valid choices return that as the new default level. If it is
    not - fall back to `_default_log_level`
    DIFFUSERS_VERBOSITYNz#Unknown option DIFFUSERS_VERBOSITY=z, has to be one of: z, )	osgetenv
log_levelslogging	getLoggerr   joinkeys_default_log_level)env_level_str r   U/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/diffusers/utils/logging.py_get_default_logging_level4   s   r    c                   C   s   t dd S )N.r   )__name__splitr   r   r   r   _get_library_nameE   s   r$   c                   C   s   t t S N)r   r   r$   r   r   r   r   _get_library_root_loggerI   s   r&   c                  C   sz   t 1 tr	 W d    d S t atjrtjjt_t } | t | 	t
  d| _W d    d S 1 s6w   Y  d S )NF)_lockr   r   StreamHandlersysstderrflushr&   
addHandlersetLevelr    	propagatelibrary_root_loggerr   r   r   _configure_library_root_loggerM   s   

"r1   c                  C   s`   t $ ts	 W d    d S t } | t | tj d aW d    d S 1 s)w   Y  d S r%   )r'   r   r&   removeHandlerr-   r   r   r/   r   r   r   _reset_library_root_logger`   s   
"r3   c                   C   s   t S r%   )r   r   r   r   r   get_log_levels_dictm      r4   namec                 C   s   | du rt  } t  t| S )z
    Return a logger with the specified name.

    This function is not supposed to be directly accessed unless you are writing a custom diffusers module.
    N)r$   r1   r   r   )r6   r   r   r   
get_loggerq   s   
r7   c                   C   s   t   t  S )u  
    Return the current level for the 🤗 Diffusers' root logger as an `int`.

    Returns:
        `int`:
            Logging level integers which can be one of:

            - `50`: `diffusers.logging.CRITICAL` or `diffusers.logging.FATAL`
            - `40`: `diffusers.logging.ERROR`
            - `30`: `diffusers.logging.WARNING` or `diffusers.logging.WARN`
            - `20`: `diffusers.logging.INFO`
            - `10`: `diffusers.logging.DEBUG`

    )r1   r&   getEffectiveLevelr   r   r   r   get_verbosity   s   
r9   	verbosityc                 C   s   t   t |  dS )u  
    Set the verbosity level for the 🤗 Diffusers' root logger.

    Args:
        verbosity (`int`):
            Logging level which can be one of:

            - `diffusers.logging.CRITICAL` or `diffusers.logging.FATAL`
            - `diffusers.logging.ERROR`
            - `diffusers.logging.WARNING` or `diffusers.logging.WARN`
            - `diffusers.logging.INFO`
            - `diffusers.logging.DEBUG`
    N)r1   r&   r-   )r:   r   r   r   set_verbosity   s   r;   c                   C      t tS )z&Set the verbosity to the `INFO` level.)r;   r   r   r   r   r   set_verbosity_info      r=   c                   C   r<   )z)Set the verbosity to the `WARNING` level.)r;   r	   r   r   r   r   set_verbosity_warning   r>   r?   c                   C   r<   )z'Set the verbosity to the `DEBUG` level.)r;   r   r   r   r   r   set_verbosity_debug   r>   r@   c                   C   r<   )z'Set the verbosity to the `ERROR` level.)r;   r   r   r   r   r   set_verbosity_error   r>   rA   c                   C   "   t   tdus	J t t dS )u?   Disable the default handler of the 🤗 Diffusers' root logger.N)r1   r   r&   r2   r   r   r   r   disable_default_handler      rC   c                   C   rB   )u>   Enable the default handler of the 🤗 Diffusers' root logger.N)r1   r   r&   r,   r   r   r   r   enable_default_handler   rD   rE   handlerc                 C   s"   t   | dus	J t |  dS )z9adds a handler to the HuggingFace Diffusers' root logger.N)r1   r&   r,   rF   r   r   r   add_handler   rD   rH   c                 C   s.   t   | dur| t jv sJ t |  dS )zBremoves given handler from the HuggingFace Diffusers' root logger.N)r1   r&   handlersr2   rG   r   r   r   remove_handler   s   rJ   c                   C      t   dt _dS )zk
    Disable propagation of the library log outputs. Note that log propagation is disabled by default.
    FNr1   r&   r.   r   r   r   r   disable_propagation   s   rM   c                   C   rK   )z
    Enable propagation of the library log outputs. Please disable the HuggingFace Diffusers' default handler to prevent
    double logging if the root logger has been configured.
    TNrL   r   r   r   r   enable_propagation   s   rN   c                  C   s*   t  j} | D ]}td}|| qdS )u  
    Enable explicit formatting for every 🤗 Diffusers' logger. The explicit formatter is as follows:
    ```
    [LEVELNAME|FILENAME|LINE NUMBER] TIME >> MESSAGE
    ```
    All handlers currently bound to the root logger are affected by this method.
    zB[%(levelname)s|%(filename)s:%(lineno)s] %(asctime)s >> %(message)sN)r&   rI   r   	FormattersetFormatter)rI   rF   	formatterr   r   r   enable_explicit_format   s
   
rR   c                  C   s    t  j} | D ]}|d qdS )u   
    Resets the formatting for 🤗 Diffusers' loggers.

    All handlers currently bound to the root logger are affected by this method.
    N)r&   rI   rP   )rI   rF   r   r   r   reset_format   s   rS   c                 O   s(   t dd}|r
dS | j|i | dS )z
    This method is identical to `logger.warning()`, but if env var DIFFUSERS_NO_ADVISORY_WARNINGS=1 is set, this
    warning will not be printed
    DIFFUSERS_NO_ADVISORY_WARNINGSFN)r   r   r   )selfargskwargsno_advisory_warningsr   r   r   warning_advice  s   rY   c                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )	EmptyTqdmz%Dummy tqdm which doesn't do anything.c                 O   s   |r	|d | _ d S d | _ d S )Nr   )	_iteratorrU   rV   rW   r   r   r   __init__  s   zEmptyTqdm.__init__c                 C   s
   t | jS r%   )iterr[   rU   r   r   r   __iter__   s   
zEmptyTqdm.__iter__c                 C   s   dd }|S )zReturn empty function.c                  _      d S r%   r   )rV   rW   r   r   r   empty_fn&  r5   z'EmptyTqdm.__getattr__.<locals>.empty_fnr   )rU   _rb   r   r   r   __getattr__#  s   zEmptyTqdm.__getattr__c                 C   s   | S r%   r   r_   r   r   r   	__enter__+  r5   zEmptyTqdm.__enter__c                 C   ra   r%   r   )rU   type_value	tracebackr   r   r   __exit__.  r5   zEmptyTqdm.__exit__N)	r"   
__module____qualname____doc__r]   r`   rd   re   ri   r   r   r   r   rZ     s    rZ   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )	_tqdm_clsc                 O   s"   t r
tj|i |S t|i |S r%   )_tqdm_activetqdm_libtqdmrZ   r\   r   r   r   __call__3  s   z_tqdm_cls.__call__c                 O   s    d | _ trtjj|i |S d S r%   )r'   rn   ro   rp   set_lockr\   r   r   r   rr   9  s   z_tqdm_cls.set_lockc                 C   s   t rtj S d S r%   )rn   ro   rp   get_lockr_   r   r   r   rs   >  s   
z_tqdm_cls.get_lockN)r"   rj   rk   rq   rr   rs   r   r   r   r   rm   2  s    rm   c                   C   r<   )zCReturn a boolean indicating whether tqdm progress bars are enabled.)boolrn   r   r   r   r   is_progress_bar_enabledF     ru   c                   C      da dS )zEnable tqdm progress bar.TNrn   r   r   r   r   enable_progress_barL  rv   ry   c                   C   rw   )zDisable tqdm progress bar.FNrx   r   r   r   r   disable_progress_barR  rv   rz   )r   Nr%   ):rl   r   r   r)   	threadingr   r   r   r   r   r   r   r	   typingr
   r   rp   r   ro   Lockr'   r   Handler__annotations__r   r   rn   intr    strr$   Loggerr&   r1   r3   r4   r7   r9   r;   r=   r?   r@   rA   rC   rE   rH   rJ   rM   rN   rR   rS   rY   rZ   rm   rt   ru   ry   rz   r   r   r   r   <module>   s^   (








			
	
	




