o
    2h                     @   sf   d dl Z d dlZd dlmZ d dlmZ dd Zdd Zdd	 Zed
dddZ	dd Z
dd ZdS )    N)keras_export)global_statec                 C   s   t | } t| S )N)to_snake_caseuniquify)prefix r   Q/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/utils/naming.py	auto_name   s   r	   c                 C   sJ   t jdttdd}| |v r|  d||   }n| }||   d7  < |S )Nobject_name_uidsTdefaultset_to_default_   r   get_global_attributecollectionsdefaultdictint)namer
   unique_namer   r   r   r      s   r   c                 C   s2   t dd| } t dd| } t dd|  } | S )Nz\W+ z(.)([A-Z][a-z]+)z\1_\2z([a-z])([A-Z]))resublower)r   r   r   r   r      s   r   zkeras.backend.get_uidr   c                 C   s.   t jdttdd}||   d7  < ||  S )zAssociates a string prefix with an integer counter.

    Args:
        prefix: String prefix to index.

    Returns:
        Unique integer ID.

    Example:

    >>> get_uid('dense')
    1
    >>> get_uid('dense')
    2
    r
   Tr   r   r   )r   r
   r   r   r   get_uid"   s   r   c                   C   s   t dtt d S )Nr
   )r   set_global_attributer   r   r   r   r   r   r   
reset_uids<   s   
r   c                 C   sF   t | dr| jS t | drt| jS t | drt| jjS tt| S )Nr   __name__	__class__)hasattrr   r   r   r   str)objr   r   r   get_object_nameB   s   



r#   )r   )r   r   keras.src.api_exportr   keras.src.backend.commonr   r	   r   r   r   r   r#   r   r   r   r   <module>   s    