
    &Vf	                     2    d dl mZ  G d d          Zd ZdS )    )global_statec                   (    e Zd ZdZ	 ddZd Zd ZdS )
name_scopea  Creates a sub-namespace for variable paths.

    Args:
        name: Name of the current scope (string).
        caller: Optional ID of a caller object (e.g. class instance).
        deduplicate: If `True`, if `caller` was passed,
            and the previous caller matches the current caller,
            and the previous name matches the current name,
            do not reenter a new namespace.
        override_parent: Can be used to provide an absolute path
            which would override any previously opened name scopes.
    NTc                     t          |t                    rd|v rt          d|           || _        || _        || _        || _        ||rt          |dd           |j        | _        d| _	        d S )N/zRArgument `name` must be a string and cannot contain character `/`. Received: name=_parent_pathF)

isinstancestr
ValueErrornamecallerdeduplicateoverride_parentgetattrr   _pop_on_exit)selfr   r   r   r   s        `/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/backend/common/name_scope.py__init__zname_scope.__init__   s     $$$ 	t)"&) )  
 	&.# $55A#)#6D !    c                     t          j        dg d          }| j        r9|r7|d         j        }|d         j        }| j        | j        |u r| j        |k    r| S |                    |            d| _        | S )Nname_scope_stackT)defaultset_to_default)r   get_global_attributer   r   r   appendr   )r   r   parent_callerparent_names       r   	__enter__zname_scope.__enter__'   s    '<4
 
 
  	 0 	,R07M*2.3K'K=00I,,%%% r   c                 h    | j         r*t          j        d          }|                                 d S d S )Nr   )r   r   r   pop)r   argskwargsr   s       r   __exit__zname_scope.__exit__8   sG     	#+@"      """""		# 	#r   )NTN)__name__
__module____qualname____doc__r   r   r$    r   r   r   r      sW          DH" " " "*  "# # # # #r   r   c                      t          j        d          } | dS g }| D ]G}|j        $d |j                            d          D             }|                    |j                   Hd                    |          S )Nr    c                     g | ]}||S r)   r)   ).0ps     r   
<listcomp>z current_path.<locals>.<listcomp>G   s    FFF1AFQFFFr   r   )r   r   r   splitr   r   join)r   partsentrys      r   current_pathr4   @   s    #89KLLrE! ! ! ,FF 5 ; ;C @ @FFFEUZ    88E??r   N)keras.src.backend.commonr   r   r4   r)   r   r   <module>r6      sY    1 1 1 1 1 19# 9# 9# 9# 9# 9# 9# 9#x	 	 	 	 	r   