
    BVh
                     j    d 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j                        Zy)z0The implementation of `tf.data.Dataset.unbatch`.    )dataset_ops)nest)tensor_shape)gen_experimental_dataset_opsNc                 F    t        j                  |       }t        ||      S )z$See `Dataset.unbatch()` for details.)name)r   normalize_to_dense_UnbatchDataset)input_datasetr   normalized_datasets      U/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/data/ops/unbatch_op.py_unbatchr      s!    "55mD	+$	77    c                   4     e Zd ZdZd fd	Zed        Z xZS )r
   zGA dataset that splits the elements of its input into multiple elements.c           	      
   |j                   }t        d |D              rt        d      t        j                  d      }|D ]  }	 |j                  |d         } || _        t        j                  d t        j                  |            | _        || _        t        j                  | j                  j                  fi | j                   }t"        | I  ||       y# t        $ r}t        d| d|d    d      |d}~ww xY w)	z!See `unbatch()` for more details.c              3   :   K   | ]  }|j                   d k(    yw)r   N)ndims).0ss     r   	<genexpr>z+_UnbatchDataset.__init__.<locals>.<genexpr>#   s     
-A177a<
-s   z/Cannot unbatch an input with scalar components.Nr   z|`unbatch()` is only supported for datasets of elements whose components have a matching leading dimension. Encountered both z and .c                 "    | j                         S N)r   )component_specs    r   <lambda>z*_UnbatchDataset.__init__.<locals>.<lambda>0   s    ~668 r   )_flat_shapesany
ValueErrorr   	Dimension
merge_with_input_datasetr   map_structurer   get_structure
_structure_nameged_opsunbatch_dataset_variant_tensor_common_argssuper__init__)	selfr   r   flat_shapesknown_batch_dimr   evariant_tensor	__class__s	           r   r+   z_UnbatchDataset.__init__    s   ,,K

-
--HII",,T2O 55)44QqT:5 (D((8!!-02DO DJ,,++


N 
G]N3  5NuQqTF!-. 45	55s   C	D'C==Dc                     | j                   S r   )r$   )r,   s    r   element_specz_UnbatchDataset.element_spec8   s    ??r   r   )__name__
__module____qualname____doc__r+   propertyr3   __classcell__)r1   s   @r   r
   r
      s    O40  r   r
   r   )r7   tensorflow.python.data.opsr   tensorflow.python.data.utilr   tensorflow.python.frameworkr   tensorflow.python.opsr   r&   r   UnaryDatasetr
    r   r   <module>r@      s-    7 2 , 4 I8k.. r   