
    2Vh                     h    d dl Z d dlZd dlmZ d dlmZ d Zd Zd Z ed      dd       Z	d	 Z
d
 Zy)    N)keras_export)global_statec                 .    t        |       } t        |       S )N)to_snake_caseuniquify)prefixs    F/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/utils/naming.py	auto_namer
      s    6"FF    c                     t        j                  dt        j                  t              d      }| |v r|  d||     }n| }|| xx   dz  cc<   |S )Nobject_name_uidsTdefaultset_to_default_   r   get_global_attributecollectionsdefaultdictint)namer   unique_names      r	   r   r      sd    #88'',
 a 0 678Tar   c                     t        j                  dd|       } t        j                  dd|       } t        j                  dd|       j                         } | S )Nz\W+ z(.)([A-Z][a-z]+)z\1_\2z([a-z])([A-Z]))resublower)r   s    r	   r   r      sH    66&"d#D66$h5D66"Hd399;DKr   zkeras.backend.get_uidc                     t        j                  dt        j                  t              d      }|| xx   dz  cc<   ||    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   s     r	   get_uidr    "   sF    " $88'',
 V!F##r   c                  ^    t        j                  dt        j                  t                     y )Nr   )r   set_global_attributer   r   r    r   r	   
reset_uidsr$   <   s     %%K33C8r   c                     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)objs    r	   get_object_namer+   B   s\    sFxx	j	!S\\**	k	"S]]3344S""r   )r   )r   r   keras.src.api_exportr   keras.src.backend.commonr   r
   r   r   r    r$   r+   r#   r   r	   <module>r.      sD     	 - 1
 %&$ '$2#r   