o
    ?e
                     @   s^   d 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 Z	G d	d
 d
ej
ZdS )z.The implementation of `tf.data.Dataset.range`.    )dataset_ops)dtypes)ops)tensor_spec)gen_dataset_opsc                  O   s   t | i |S N)_RangeDataset)argskwargs r   d/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/tensorflow/python/data/ops/range_op.py_range   s   r   c                       s<   e Zd ZdZ fddZdd Zdd Zedd	 Z  Z	S )
r   z0A `Dataset` of a step separated range of values.c                    sP   | j |i | tg | j| _tjd| j| j| j	d| j
}t | dS )z"See `Dataset.range()` for details.)startstopstepNr   )_parse_argsr   Z
TensorSpec_output_type
_structurer   Zrange_dataset_start_stop_stepZ_common_argssuper__init__)selfr	   r
   Zvariant_tensor	__class__r   r   r      s   z_RangeDataset.__init__c                 O   s  t |dkr| dd| _| |d d| _| dd| _nLt |dkr>| |d d| _| |d d| _| dd| _n,t |dkr`| |d d| _| |d d| _| |d d| _n
tdt | d	d
|v rt|d
 | _ntj| _d|v r|d | _	dS d| _	dS )zFParses arguments according to the same rules as the `range()` builtin.   r   r   r   r         zGInvalid `args`. The length of `args` should be between 1 and 3 but was .output_typenameN)
len_build_tensorr   r   r   
ValueErrorr   r   int64_name)r   r	   r
   r   r   r   r   *   s&   
 z_RangeDataset._parse_argsc                 C   s   t j|tj|dS )N)Zdtyper!   )r   Zconvert_to_tensorr   r%   )r   Zint64_valuer!   r   r   r   r#   A   s   z_RangeDataset._build_tensorc                 C   s   | j S r   )r   )r   r   r   r   element_specD   s   z_RangeDataset.element_spec)
__name__
__module____qualname____doc__r   r   r#   propertyr'   __classcell__r   r   r   r   r      s    r   N)r+   Ztensorflow.python.data.opsr   Ztensorflow.python.frameworkr   r   r   Ztensorflow.python.opsr   r   ZDatasetSourcer   r   r   r   r   <module>   s   