o
    i e
                     @   sT   d Z ddlmZ ddlmZ ddlmZ ddlmZ	 dddZ
G d	d
 d
ejZdS )z0The implementation of `tf.data.Dataset.unbatch`.    )dataset_ops)nest)tensor_shape)gen_experimental_dataset_opsNc                 C   s   t | }t||dS )z$See `Dataset.unbatch()` for details.)name)r   normalize_to_dense_UnbatchDataset)input_datasetr   normalized_dataset r   T/var/www/myenv/lib/python3.10/site-packages/tensorflow/python/data/ops/unbatch_op.py_unbatch   s   
r   c                       s.   e Zd ZdZd fdd	Zedd Z  ZS )r   zGA dataset that splits the elements of its input into multiple elements.Nc                    s   |j }tdd |D rtdtd}|D ]%}z	||d }W q ty< } ztd| d|d  d|d}~ww || _td	d
 t	
|| _|| _tj| jjfi | j}t || dS )z!See `unbatch()` for more details.c                 s   s    | ]}|j d kV  qdS )r   N)ndims).0sr   r   r   	<genexpr>#   s    z+_UnbatchDataset.__init__.<locals>.<genexpr>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                 S   s   |   S N)r   )component_specr   r   r   <lambda>0   s    z*_UnbatchDataset.__init__.<locals>.<lambda>)_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__r   r   r%       s>   
z_UnbatchDataset.__init__c                 C   s   | j S r   )r   )r&   r   r   r   element_spec8   s   z_UnbatchDataset.element_specr   )__name__
__module____qualname____doc__r%   propertyr-   __classcell__r   r   r+   r   r      s
    r   r   )r1   tensorflow.python.data.opsr   tensorflow.python.data.utilr   tensorflow.python.frameworkr   tensorflow.python.opsr   r    r   UnaryDatasetr   r   r   r   r   <module>   s   
