o
    2h\                     @   s*   d dl mZ d dlmZ G dd dZdS )    )tree)KerasTensorc                   @   s$   e Zd Zdd Zdd Zdd ZdS )SymbolicArgumentsc                 O   s   t dd || _t dd || _t | j| jf| _| js5t| jdkr5t| jd tr5| jd | _	nd | _	g | _
| jD ]}t|trK| j
| q>d S )Nc                 S      | S N xr   r   [/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/ops/symbolic_arguments.py<lambda>       z,SymbolicArguments.__init__.<locals>.<lambda>c                 S   r   r   r   r   r   r   r
   r      r      r   )r   map_structureargskwargsflatten_flat_argumentslen
isinstancer   _single_positional_tensorkeras_tensorsappend)selfr   r   argr   r   r
   __init__   s    

zSymbolicArguments.__init__c                 C   s$   t || j}t || j}||fS r   )r   r   r   r   )r   conversion_fnr   r   r   r   r
   convert   s   zSymbolicArguments.convertc                    s4   | j dur t| j  fi fS  fdd}| |S )zMaps KerasTensors to computed values using `tensor_dict`.

        `tensor_dict` maps `KerasTensor` instances to their current values.
        Nc                    s   t | tr t| d S | S r   )r   r   getidr   tensor_dictr   r
   	switch_fn)   s   
z,SymbolicArguments.fill_in.<locals>.switch_fn)r   r   r   )r   r    r!   r   r   r
   fill_in   s   

zSymbolicArguments.fill_inN)__name__
__module____qualname__r   r   r"   r   r   r   r
   r      s    r   N)	keras.srcr   keras.src.backendr   r   r   r   r   r
   <module>   s    