class_docstr: Parameters
  ----------
  data : Buffer
      The Timedelta values
  dtype : np.dtype
      The data type
  size : int
      Size of memory allocation.
  mask : Buffer; optional
      The validity mask
  offset : int
      Data offset
  null_count : int, optional
      The number of null values.
      If None, it is calculated automatically.
code: def __init__(
      self,
      data: Buffer,
      dtype: Dtype,
      size: Optional[int] = None,  # TODO: make non-optional
      mask: Optional[Buffer] = None,
      offset: int = 0,
      null_count: Optional[int] = None,
  ):
      dtype = cudf.dtype(dtype)
  
      if data.size % dtype.itemsize:
          raise ValueError(
              "Buffer size must be divisible by element size"
          )
      if size is None:
          size = data.size // dtype.itemsize
          size = size - offset
      super().__init__(
          data,
          size=size,
          dtype=dtype,
          mask=mask,
          offset=offset,
          null_count=null_count,
      )
  
      if self.dtype.type is not np.timedelta64:
          raise TypeError(
              f"{self.dtype} is not a supported duration type"
          )
  
      self._time_unit, _ = np.datetime_data(self.dtype)
  
imports: from __future__ import annotations
  import datetime
  from typing import Any, Optional, Sequence, cast
  import numpy
  import pandas
  import pyarrow
  from typing_extensions import Self
  import cudf
  from cudf import _lib
  from cudf._typing import ColumnBinaryOperand, DatetimeLikeScalar, Dtype
  from cudf.api.types import is_scalar, is_timedelta64_dtype
  from cudf.core.buffer import Buffer, acquire_spill_lock
  from cudf.core.column import ColumnBase, column, string
  from cudf.utils.dtypes import np_to_pa_dtype
  from cudf.utils.utils import _all_bools_with_nulls
label_desc: Use image node_id 1 to create a new TimeDeltaColumn object from inherited base classes: ColumnBase with example: obj = TimeDeltaColumn(data, dtype, size, mask, offset, null_count)