o
    ?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   Znormalize_to_dense_UnbatchDataset)input_datasetr   Znormalized_dataset r	   f/home/www/facesmatcher.com/pyenv/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)Z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   )Zcomponent_specr	   r	   r
   <lambda>0   s    z*_UnbatchDataset.__init__.<locals>.<lambda>)Z_flat_shapesany
ValueErrorr   Z	DimensionZ
merge_withZ_input_datasetr   Zmap_structurer   Zget_structure
_structure_nameged_opsZunbatch_datasetZ_variant_tensorZ_common_argssuper__init__)selfr   r   Zflat_shapesZknown_batch_dimr   eZ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   )r!   Ztensorflow.python.data.opsr   Ztensorflow.python.data.utilr   Ztensorflow.python.frameworkr   Ztensorflow.python.opsr   r   r   ZUnaryDatasetr   r	   r	   r	   r
   <module>   s   
