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.
docstr: Return a Dataframe of the components of the Timedeltas.
  
  Returns
  -------
  DataFrame
  
  Examples
  --------
  >>> s = pd.Series(pd.to_timedelta(np.arange(5), unit='s'))
  >>> s = cudf.Series([12231312123, 1231231231, 1123236768712, 2135656,
  ...     3244334234], dtype='timedelta64[ms]')
  >>> s
  0      141 days 13:35:12.123
  1       14 days 06:00:31.231
  2    13000 days 10:12:48.712
  3        0 days 00:35:35.656
  4       37 days 13:12:14.234
  dtype: timedelta64[ms]
  >>> s.dt.components
      days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
  0    141     13       35       12           123             0            0
  1     14      6        0       31           231             0            0
  2  13000     10       12       48           712             0            0
  3      0      0       35       35           656             0            0
  4     37     13       12       14           234             0            0
docstr_tok: ["Return","a","Dataframe","of","the","components","of","the","Timedeltas",".","Returns","--","--","--","-","DataFrame","Examples","--","--","--","--",">",">",">","s","=","pd.Series","(","pd.to_timedelta","(","np.arange","(","5",")",",","unit='s","'",")",")",">",">",">","s","=","cudf.Series","(","[","12231312123",",","1231231231",",","1123236768712",",","2135656",",","...","3244334234","]",",","dtype='timedelta64","[","ms","]","'",")",">",">",">","s","0","141","days","13:35:12.123","1","14","days","06:00:31.231","2","13000","days","10:12:48.712","3","0","days","00:35:35.656","4","37","days","13:12:14.234","dtype",":","timedelta64","[","ms","]",">",">",">","s.dt.components","days","hours","minutes","seconds","milliseconds","microseconds","nanoseconds","0","141","13","35","12","123","0","0","1","14","6","0","31","231","0","0","2","13000","10","12","48","712","0","0","3","0","0","35","35","656","0","0","4","37","13","12","14","234","0","0"]
code: def components(self, index=None) -> "cudf.DataFrame":
      """
      Return a Dataframe of the components of the Timedeltas.
  
      Returns
      -------
      DataFrame
  
      Examples
      --------
      >>> s = pd.Series(pd.to_timedelta(np.arange(5), unit='s'))
      >>> s = cudf.Series([12231312123, 1231231231, 1123236768712, 2135656,
      ...     3244334234], dtype='timedelta64[ms]')
      >>> s
      0      141 days 13:35:12.123
      1       14 days 06:00:31.231
      2    13000 days 10:12:48.712
      3        0 days 00:35:35.656
      4       37 days 13:12:14.234
      dtype: timedelta64[ms]
      >>> s.dt.components
          days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
      0    141     13       35       12           123             0            0
      1     14      6        0       31           231             0            0
      2  13000     10       12       48           712             0            0
      3      0      0       35       35           656             0            0
      4     37     13       12       14           234             0            0
      """  # noqa: E501
  
      return cudf.DataFrame(
          data={
              "days": self
              // cudf.Scalar(
                  np.timedelta64(
                      _unit_to_nanoseconds_conversion["D"], "ns"
                  )
              ),
              "hours": (
                  self
                  % cudf.Scalar(
                      np.timedelta64(
                          _unit_to_nanoseconds_conversion["D"], "ns"
                      )
                  )
              )
              // cudf.Scalar(
                  np.timedelta64(
                      _unit_to_nanoseconds_conversion["h"], "ns"
                  )
              ),
              "minutes": (
                  self
                  % cudf.Scalar(
                      np.timedelta64(
                          _unit_to_nanoseconds_conversion["h"], "ns"
                      )
                  )
              )
              // cudf.Scalar(
                  np.timedelta64(
                      _unit_to_nanoseconds_conversion["m"], "ns"
                  )
              ),
              "seconds": (
                  self
                  % cudf.Scalar(
                      np.timedelta64(
                          _unit_to_nanoseconds_conversion["m"], "ns"
                      )
                  )
              )
              // cudf.Scalar(
                  np.timedelta64(
                      _unit_to_nanoseconds_conversion["s"], "ns"
                  )
              ),
              "milliseconds": (
                  self
                  % cudf.Scalar(
                      np.timedelta64(
                          _unit_to_nanoseconds_conversion["s"], "ns"
                      )
                  )
              )
              // cudf.Scalar(
                  np.timedelta64(
                      _unit_to_nanoseconds_conversion["ms"], "ns"
                  )
              ),
              "microseconds": (
                  self
                  % cudf.Scalar(
                      np.timedelta64(
                          _unit_to_nanoseconds_conversion["ms"], "ns"
                      )
                  )
              )
              // cudf.Scalar(
                  np.timedelta64(
                      _unit_to_nanoseconds_conversion["us"], "ns"
                  )
              ),
              "nanoseconds": (
                  self
                  % cudf.Scalar(
                      np.timedelta64(
                          _unit_to_nanoseconds_conversion["us"], "ns"
                      )
                  )
              )
              // cudf.Scalar(
                  np.timedelta64(
                      _unit_to_nanoseconds_conversion["ns"], "ns"
                  )
              ),
          },
          index=index,
      )
  
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 20 for calling the TimeDeltaColumn obj's underlying member method code with example usage: obj.components(index) and returns: cudf