
    BVh>                     `    d 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.shuffle`.    )dataset_ops)nest)gen_experimental_dataset_opsc                     t        | ||      S )N)stop_on_empty_dataset)_DirectedInterleaveDataset)selector_inputdata_inputsr   s      a/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/data/ops/directed_interleave_op.py_directed_interleaver      s     
$k9N
     c                   :     e Zd ZdZd fd	Zd Zed        Z xZS )r   zDA substitute for `Dataset.interleave()` on a fixed list of datasets.c                    || _         t        |      | _        || _        | j                  d   j                  }t        | j                  dd        D ]*  \  }}d }	 t        j                  |||j                        }, || _
        t        j                  | j                   j                  | j                  D cg c]  }|j                   c}fd| j                  i| j                  }	t        
| A  |	       y # t        t        f$ r5}t        d|d   j                   d|dz    d|j                   d      |d }~ww xY wc c}w )	Nr      c                 R    | j                  |g      }|t        d|  d| d      |S )NzNo common supertype of z and .)most_specific_common_supertype	TypeError)abresults      r   common_supertypez=_DirectedInterleaveDataset.__init__.<locals>.common_supertype(   s9    111#6>3A3eA3a@A
Ar   z[Invalid `datasets`. `datasets` must have compatible element specs.
 Dataset 0 element_spec=z
.
Dataset z element_spec=r   r   )_selector_inputlist_data_inputs_stop_on_empty_datasetelement_spec	enumerater   map_structurer   
ValueError_element_specged_opsdirected_interleave_dataset_variant_tensor_flat_structuresuper__init__)selfr	   r
   r   speci
data_inputr   evariant_tensor	__class__s             r   r'   z#_DirectedInterleaveDataset.__init__!   sn   )D[)D"7DQ,,D"4#4#4QR#89 K:K!!"2D","9"9;K  D 	++  00:>:K:KLJZ''L	$ #'"="=	$ ""		$  
G^$! $ K ((3A(C(C'D E##$Q3% (((2(?(?'@	C D JK		KK Ms   !C87D?
8D<0D77D<c                 6    | j                   g| j                  z   S N)r   r   r(   s    r   _inputsz"_DirectedInterleaveDataset._inputsC   s      !D$5$555r   c                     | j                   S r0   )r!   r1   s    r   r   z'_DirectedInterleaveDataset.element_specF   s    r   F)	__name__
__module____qualname____doc__r'   r2   propertyr   __classcell__)r.   s   @r   r   r      s%    L %D6  r   r   Nr4   )r8   tensorflow.python.data.opsr   tensorflow.python.data.utilr   tensorflow.python.opsr   r"   r   	DatasetV2r    r   r   <module>r@      s/    7 2 , I 8=*!6!6 *r   