
    BVh
                     t    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 Z	 G d d	ej                        Zy
)z.The implementation of `tf.data.Dataset.range`.    )dataset_ops)dtypes)ops)tensor_spec)gen_dataset_opsc                      t        | i |S N)_RangeDataset)argskwargss     S/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/data/ops/range_op.py_ranger      s    		'	''    c                   >     e Zd ZdZ fdZd Zd Zed        Z xZ	S )r
   z0A `Dataset` of a step separated range of values.c                     | j                   |i | t        j                  g | j                        | _        t        j                  d| j                  | j                  | j                  d| j                  }t        | 1  |       y)z"See `Dataset.range()` for details.)startstopstepN )_parse_argsr   
TensorSpec_output_type
_structurer   range_dataset_start_stop_step_common_argssuper__init__)selfr   r   variant_tensor	__class__s       r   r    z_RangeDataset.__init__   s{    Dd%f%!,,R1B1BCDO$22 kkZZZZ 

	N
 
G^$r   c                    t        |      dk(  rI| j                  dd      | _        | j                  |d   d      | _        | j                  dd      | _        nt        |      dk(  rL| j                  |d   d      | _        | j                  |d   d      | _        | j                  dd      | _        nut        |      dk(  rO| j                  |d   d      | _        | j                  |d   d      | _        | j                  |d   d      | _        nt        dt        |       d	      d
|v r|d
   | _        nt        j                  | _        d|v r|d   | _	        yd| _	        y)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   s      r   r   z_RangeDataset._parse_args*   sL   
4yA~&&q'2dk%%d1gv6dj%%a0dj	Ta&&tAw8dk%%d1gv6dj%%a0dj	Ta&&tAw8dk%%d1gv6dj%%d1gv6dj 225d)A? @ @ /d ,,d#)V#3DJDJr   c                 N    t        j                  |t        j                  |      S )N)dtyper*   )r   convert_to_tensorr   r.   )r!   int64_valuer*   s      r   r,   z_RangeDataset._build_tensorA   s      FLLtLLr   c                     | j                   S r	   )r   )r!   s    r   element_specz_RangeDataset.element_specD   s    ??r   )
__name__
__module____qualname____doc__r    r   r,   propertyr5   __classcell__)r#   s   @r   r
   r
      s*    8	%>.M  r   r
   N)r9   tensorflow.python.data.opsr   tensorflow.python.frameworkr   r   r   tensorflow.python.opsr   r   DatasetSourcer
   r   r   r   <module>r@      s0    5 2 . + 3 1(*K-- *r   