code: def __init__(
      self,
      start: Data,
      stop: Data,
      step: Data,
      ctype: _cuda_types.Scalar,
      step_is_positive: Optional[bool],
      *,
      unroll: Union[None, int, bool] = None,
  ) -> None:
      self.start = start
      self.stop = stop
      self.step = step
      self.ctype = ctype
      self.step_is_positive = step_is_positive  # True, False or None
      self.unroll = unroll
  
imports: import functools
  import itertools
  from typing import Any, NoReturn, Optional, Union, TYPE_CHECKING
  from cupyx.jit import _cuda_types
  from cupyx.jit import _cuda_typerules
label_desc: Use image node_id 1 to create a new Range object from inherited base classes: Expr with example: obj = Range(start, stop, step, ctype, step_is_positive)