class_docstr: Pandas ExtensionArray for timedelta data.
  
  .. warning::
  
     TimedeltaArray is currently experimental, and its API may change
     without warning. In particular, :attr:`TimedeltaArray.dtype` is
     expected to change to be an instance of an ``ExtensionDtype``
     subclass.
  
  Parameters
  ----------
  values : array-like
      The timedelta data.
  
  dtype : numpy.dtype
      Currently, only ``numpy.dtype("timedelta64[ns]")`` is accepted.
  freq : Offset, optional
  copy : bool, default False
      Whether to copy the underlying array of data.
  
  Attributes
  ----------
  None
  
  Methods
  -------
  None
  
  Examples
  --------
  >>> pd.arrays.TimedeltaArray._from_sequence(pd.TimedeltaIndex(['1h', '2h']))
  <TimedeltaArray>
  ['0 days 01:00:00', '0 days 02:00:00']
  Length: 2, dtype: timedelta64[ns]
class_docstr_tok: ["Pandas","ExtensionArray","for","timedelta","data",".","..","warning",":",":","TimedeltaArray","is","currently","experimental",",","and","its","API","may","change","without","warning",".","In","particular",",",":","attr",":","`","TimedeltaArray.dtype","`","is","expected","to","change","to","be","an","instance","of","an","``","ExtensionDtype","``","subclass",".","Parameters","--","--","--","--","--","values",":","array-like","The","timedelta","data",".","dtype",":","numpy.dtype","Currently",",","only","``","numpy.dtype","(","``","timedelta64","[","ns","]","''",")","``","is","accepted",".","freq",":","Offset",",","optional","copy",":","bool",",","default","False","Whether","to","copy","the","underlying","array","of","data",".","Attributes","--","--","--","--","--","None","Methods","--","--","--","-","None","Examples","--","--","--","--",">",">",">","pd.arrays.TimedeltaArray._from_sequence","(","pd.TimedeltaIndex","(","[","'1h","'",",","'2h","'","]",")",")","<","TimedeltaArray",">","[","'","0","days","01:00:00","'",",","'","0","days","02:00:00","'","]","Length",":","2",",","dtype",":","timedelta64","[","ns","]"]
code: def __mul__(self, other) -> Self:
      if is_scalar(other):
          # numpy will accept float and int, raise TypeError for others
          result = self._ndarray * other
          freq = None
          if self.freq is not None and not isna(other):
              freq = self.freq * other
              if freq.n == 0:
                  # GH#51575 Better to have no freq than an incorrect one
                  freq = None
          return type(self)._simple_new(
              result, dtype=result.dtype, freq=freq
          )
  
      if not hasattr(other, "dtype"):
          # list, tuple
          other = np.array(other)
      if len(other) != len(self) and not lib.is_np_dtype(
          other.dtype, "m"
      ):
          # Exclude timedelta64 here so we correctly raise TypeError
          #  for that instead of ValueError
          raise ValueError("Cannot multiply with unequal lengths")
  
      if is_object_dtype(other.dtype):
          # this multiplication will succeed only if all elements of other
          #  are int or float scalars, so we will end up with
          #  timedelta64[ns]-dtyped result
          arr = self._ndarray
          result = [arr[n] * other[n] for n in range(len(self))]
          result = np.array(result)
          return type(self)._simple_new(result, dtype=result.dtype)
  
      # numpy will accept float or int dtype, raise TypeError for others
      result = self._ndarray * other
      return type(self)._simple_new(result, dtype=result.dtype)
  
imports: from __future__ import annotations
  from datetime import timedelta
  import operator
  from typing import TYPE_CHECKING, cast
  import numpy
  from pandas._libs import lib, tslibs
  from pandas._libs.tslibs import NaT, NaTType, Tick, Timedelta, astype_overflowsafe, get_supported_dtype, iNaT, is_supported_dtype, periods_per_second
  from pandas._libs.tslibs.conversion import cast_from_unit_vectorized
  from pandas._libs.tslibs.fields import get_timedelta_days, get_timedelta_field
  from pandas._libs.tslibs.timedeltas import array_to_timedelta64, floordiv_object_array, ints_to_pytimedelta, parse_timedelta_unit, truediv_object_array
  from pandas.compat.numpy import function
  from pandas.util._validators import validate_endpoints
  from pandas.core.dtypes.common import TD64NS_DTYPE, is_float_dtype, is_integer_dtype, is_object_dtype, is_scalar, is_string_dtype, pandas_dtype
  from pandas.core.dtypes.dtypes import ExtensionDtype
  from pandas.core.dtypes.missing import isna
  from pandas.core import nanops, roperator
  from pandas.core.array_algos import datetimelike_accumulations
  from pandas.core.arrays import datetimelike
  from pandas.core.arrays._ranges import generate_regular_range
  import pandas.core.common
  from pandas.core.ops.common import unpack_zerodim_and_defer
  import textwrap
label_desc: Use image node_id 20 for calling the TimedeltaArray obj's underlying member method code with example usage: obj.__mul__(other) and returns: type, type, type