
    BVh
                     >    d Z ddlmZ ddlmZ ddlmZ ddlmZ d Zy)z%Tracing utilities used by SavedModel.    )saveable_compat)tensor_callable)def_function)functionc                     t        j                          j                   j                  t	        t
        j                        r}n*t        j                   fd       }|j                         }t	        t
        j                        r}||fS t        j                  fd       }|j                  |j                        }||fS )zTraces `Trackable` serialize- and restore-from-tensors functions.

  Args:
    obj: A `Trackable` object.

  Returns:
    A concrete Function.
  c                              } t        d | j                         D              rt        dt               d      r(| j	                         D ci c]  \  }} | | c}}S | S c c}}w )Nc              3   P   K   | ]  }t        |t        j                           y wN)
isinstancer   Callable).0vs     [/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/saved_model/tracing_utils.py	<genexpr>z:trace_save_and_restore.<locals>.save_fn.<locals>.<genexpr>+   s%      , ?334 ,s   $&z0Unable to export SavedModel with object of type zx because it returns a Callable in `_serialize_to_tensors`. If you need this functionality please file a feature request.)anyvaluesNotImplementedErrortypeitems)tensor_dictkeyvaluelegacy_nameobjobj_save_fns      r   save_fnz'trace_save_and_restore.<locals>.save_fn(   s    Mk	 ,!((*, 
,!>tCyk JL LM 	M
 
 #."3"3"57C -u%u, 7 	77s   A-c                     r/| j                         D ci c]  \  }}|t              d  | } }} |        y c c}}w r
   )r   len)restored_tensorsr   r   r   obj_restore_fns      r   
restore_fnz*trace_save_and_restore.<locals>.restore_fn=   sW    	 /?.D.D.FH *U  K 0 12E9 H H%&Hs   <)r   get_saveable_name_serialize_to_tensors_restore_from_tensorsr   defunConcreteFunctionr   r   get_concrete_functionstructured_outputs)r   concrete_saver   concrete_restorer!   r   r    r   s   `    @@@r   trace_save_and_restorer+      s      11#6+))+,,.U334M  113M 6 67% 
(	(( ' ' "77((* 
(	((    N)	__doc__tensorflow.python.checkpointr   r   tensorflow.python.eagerr   r   r%   r+    r,   r   <module>r1      s    , 8 8 0 51)r,   