
    BVh                         d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ 	 	 	 ddZ G d dej0                        Zd Zy)z(Implementation of SaveDataset in Python.    N)
checkpoint)checkpoint_management)dataset_ops)structured_function)	structure)context)dtypes)ops)gen_experimental_dataset_ops)gfile)nested_structure_coderc                    t        j                         r|rt        | |||      }t        |      }d|v rt	        d      t        j                  |      }||d<   t        j                  di |}|j                  |j                         t        |      D ]-  }	d|v r|d   j                  d       |j                  d       / y
t        | ||      \  }
}}}t        j                   |
j"                  ||j$                  |||	      S )z:Implements the save function and checkpoint functionality.r   zV'Invalid `checkpoint_args`. `checkpoint_args` are not allowed to include 'checkpoint'.)iteratorstep_counter   )deltaT)check_interval)pathshard_func_other_argscompression
shard_funcuse_shard_funcN )r   executing_eagerly_SaveDatasetiter
ValueErrorcheckpoint_lib
Checkpointr   CheckpointManagerrestorelatest_checkpoint	enumerate
assign_addsaveset_save_dataset_attributesged_opssave_dataset_variant_tensorcaptured_inputs)input_datasetr   r   r   checkpoint_argsr(   save_iteratorr   manager_datasetr   s               R/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/data/ops/save_op.py_saver2       s     _tZML&M&%   **MBJ$.OL!#55HHGw001}% (	?	*'222;ll$l'(
 1Lz41)-GZ(88%' '    c                   8     e Zd ZdZ fdZd Zed        Z xZS )r   z/"A dataset that loads previously saved dataset.c                 P   |j                   | _        || _        t        |||      \  }}}}t	        j
                  |j                  ||j                  |||t        j                  |j                         t        j                  |j                               }t        | 1  ||       y )N)r   r   r   r   r   output_typesoutput_shapes)element_spec_element_spec_shard_funcr&   r'   save_dataset_v2r)   r*   r   get_flat_tensor_typesget_flat_tensor_shapessuper__init__)selfr0   r   r   r   r   variant_tensor	__class__s          r1   r?   z_SaveDataset.__init__G   s     --D!D0KT1#-GZ,,(88%44W5I5IJ66w7K7KL	N 
GWn-r3   c                     | j                   gS N)r:   r@   s    r1   
_functionsz_SaveDataset._functionsX   s    r3   c                     | j                   S rD   )r9   rE   s    r1   r8   z_SaveDataset.element_spec[   s    r3   )	__name__
__module____qualname____doc__r?   rF   propertyr8   __classcell__)rB   s   @r1   r   r   D   s$    7."  r3   r   c                    |d}d }nd}t        j                  |d| j                  d      }t        j                  | j                        }t        j                  |       t        j                  t        j                  j                  |t        j                        d      5 }|j                  |j                                ddd       t        j                   |t"        j$                  d	      }|j&                  }|j)                  t        j*                                | j-                          | |||fS # 1 sw Y   txY w)
z6Sets parameters for SaveDatasetOp and SaveDatasetV2Op.NFc                       y rD   r   )xs    r1   <lambda>z-set_save_dataset_attributes.<locals>.<lambda>d   s    r3   Tzsave())input_structureadd_to_graphwbr   )dtypename)r   StructuredFunctionWrapperr8   r   encode_structurer   MakeDirsGFileosr   joinr   DATASET_SPEC_FILENAMEwriteSerializeToStringr
   convert_to_tensorr	   stringfunctionrS   get_default_graph_apply_debug_options)r0   r   r   r   wrapped_funcencodedfs          r1   r&   r&   `   s   N JN$>>**	,
 #33G4H4HI'..{{277<<k&G&GH )GGG%%'() 
		t6==v	F$$$*#//12	 	*nd	22) )s   $ D77E )NNN)rK   r[   tensorflow.python.checkpointr   r   r   tensorflow.python.data.opsr   r   tensorflow.python.data.utilr   tensorflow.python.eagerr   tensorflow.python.frameworkr	   r
   tensorflow.python.opsr   r'   tensorflow.python.platformr   tensorflow.python.saved_modelr   r2   UnaryDatasetr   r&   r   r3   r1   <module>rq      sV    / 	 E > 2 : 1 + . + I , @
 	!'H;++ 83r3   