o
    i e                     @   s   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	d
Z		dddZ		dddZG dd dejZG dd dejZdS )z,The implementation of `tf.data.Dataset.map`.    N)dataset_ops)
debug_mode)structured_function)dtypes)ops)gen_dataset_opsc                 C   sJ   |du st jr|durt jstd t| |d|dS t| |||d|dS ) See `Dataset.map()` for details.NaThe `deterministic` argument has no effect unless the `num_parallel_calls` argument is specified.T)preserve_cardinalityname)num_parallel_callsdeterministicr
   r   )r   
DEBUG_MODEwarningswarn_MapDataset_ParallelMapDataset)input_datasetmap_funcr   r   r    r   P/var/www/myenv/lib/python3.10/site-packages/tensorflow/python/data/ops/map_op.py_map_v2   s   
r   c              	   C   s:   |du st jrtt| |ddS tt| |||ddS )r   NF)r
   )r   r   r   DatasetV1Adapterr   r   r   r   r   r   r   r   r   _map_v11   s   r   c              
   C   sJ   |du r|durt d tt| |dddS tt| |||dddS )r   Nr	   FT)r
   use_legacy_function)r   r   r   r   r   r   r   r   r   r   _map_v1_with_legacy_functionC   s*   
r   c                       sF   e Zd ZdZ				d fdd	Zdd Zed	d
 Zdd Z  Z	S )r   z<A `Dataset` that maps a function over elements in its input.TFNc                    sp   || _ || _|| _tj||  ||d| _|| _tj	|j
| jjjf| jj| j| jd| j}t || d S )Ndatasetr   )fuse_inter_op_parallelismr
   )_input_dataset_use_inter_op_parallelism_preserve_cardinalityr   StructuredFunctionWrapper_transformation_name	_map_func_namer   map_dataset_variant_tensorfunctioncaptured_inputs_common_argssuper__init__)selfr   r   r    r
   r   r   variant_tensor	__class__r   r   r.   a   s*   z_MapDataset.__init__c                 C      | j gS Nr&   r/   r   r   r   
_functionsz      z_MapDataset._functionsc                 C      | j jS r4   r&   output_structurer6   r   r   r   element_spec}      z_MapDataset.element_specc                 C      dS NzDataset.map()r   r6   r   r   r   r%         z _MapDataset._transformation_name)TTFN
__name__
__module____qualname____doc__r.   r7   propertyr<   r%   __classcell__r   r   r1   r   r   ^   s    
r   c                       sF   e Zd ZdZ				d fdd	Zdd Zed	d
 Zdd Z  Z	S )r   zHA `Dataset` that maps a function over elements in its input in parallel.TFNc	           
         s   || _ || _tj||  ||d| _|du rd| _n	|r d| _nd| _|| _tj	|t
jdd| _|| _tj|j| jjjf| jj| j| j| j| jd| j}	t ||	 dS )	r   r   Ndefaulttruefalser   )dtyper   )r   r   r   r    r
   )r!   r"   r   r$   r%   r&   _deterministicr#   r   convert_to_tensorr   int64_num_parallel_callsr'   r   parallel_map_dataset_v2r)   r*   r+   r,   r-   r.   )
r/   r   r   r   r   r    r
   r   r   r0   r1   r   r   r.      s>   
	z_ParallelMapDataset.__init__c                 C   r3   r4   r5   r6   r   r   r   r7      r8   z_ParallelMapDataset._functionsc                 C   r9   r4   r:   r6   r   r   r   r<      r=   z _ParallelMapDataset.element_specc                 C   r>   r?   r   r6   r   r   r   r%      r@   z(_ParallelMapDataset._transformation_name)TFFNrA   r   r   r1   r   r      s    &
r   )NNN)NN)rE   r   tensorflow.python.data.opsr   r   r   tensorflow.python.frameworkr   r   tensorflow.python.opsr   r   r   r   UnaryDatasetr   r   r   r   r   r   <module>   s(   


'