o
    ?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   b/home/www/facesmatcher.com/pyenv/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Zdatasetr   )fuse_inter_op_parallelismr
   )_input_dataset_use_inter_op_parallelism_preserve_cardinalityr   StructuredFunctionWrapper_transformation_name	_map_func_namer   Z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 r2   r%   Zoutput_structurer4   r   r   r   element_spec}      z_MapDataset.element_specc                 C      dS NzDataset.map()r   r4   r   r   r   r$         z _MapDataset._transformation_name)TTFN
__name__
__module____qualname____doc__r,   r5   propertyr9   r$   __classcell__r   r   r/   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   )Zdtyper   )r   r   r   r   r
   )r    r!   r   r#   r$   r%   Z_deterministicr"   r   Zconvert_to_tensorr   Zint64Z_num_parallel_callsr&   r   Zparallel_map_dataset_v2r'   r(   r)   r*   r+   r,   )
r-   r   r   r   r   r   r
   r   r   r.   r/   r   r   r,      s>   
	z_ParallelMapDataset.__init__c                 C   r1   r2   r3   r4   r   r   r   r5      r6   z_ParallelMapDataset._functionsc                 C   r7   r2   r8   r4   r   r   r   r9      r:   z _ParallelMapDataset.element_specc                 C   r;   r<   r   r4   r   r   r   r$      r=   z(_ParallelMapDataset._transformation_name)TFFNr>   r   r   r/   r   r      s    &
r   )NNN)NN)rB   r   Ztensorflow.python.data.opsr   r   r   Ztensorflow.python.frameworkr   r   Ztensorflow.python.opsr   r   r   r   ZUnaryDatasetr   r   r   r   r   r   <module>   s(   


'