class_docstr: Arrow ExtensionType for an array of fixed-shaped, homogeneous-typed
  tensors.
  
  This is the Arrow side of TensorDtype.
  
  See Arrow extension type docs:
  https://arrow.apache.org/docs/python/extending_types.html#defining-extension-types-user-defined-types
class_docstr_tok: ["Arrow","ExtensionType","for","an","array","of","fixed-shaped",",","homogeneous-typed","tensors",".","This","is","the","Arrow","side","of","TensorDtype",".","See","Arrow","extension","type","docs",":","https",":","\/\/arrow.apache.org\/docs\/python\/extending_types.html","#","defining-extension-types-user-defined-types"]
docstr: Construct the Arrow extension type for array of fixed-shaped tensors.
  
  Args:
      shape: Shape of contained tensors.
      dtype: pyarrow dtype of tensor elements.
docstr_tok: ["Construct","the","Arrow","extension","type","for","array","of","fixed-shaped","tensors",".","Args",":","shape",":","Shape","of","contained","tensors",".","dtype",":","pyarrow","dtype","of","tensor","elements","."]
code: def __init__(self, shape: Tuple[int, ...], dtype: pa.DataType):
      """
      Construct the Arrow extension type for array of fixed-shaped tensors.
  
      Args:
          shape: Shape of contained tensors.
          dtype: pyarrow dtype of tensor elements.
      """
      self._shape = shape
      super().__init__(pa.list_(dtype), "ray.data.arrow_tensor")
  
imports: import itertools
  import json
  import sys
  from typing import Iterable, Optional, Tuple, List, Sequence, Union
  from packaging.version import parse
  import numpy
  import pyarrow
  from ray.air.util.tensor_extensions.utils import _is_ndarray_variable_shaped_tensor, create_ragged_ndarray
  from ray._private.utils import _get_pyarrow_version
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 1 to create a new ArrowTensorType object from inherited base classes: pa with example: obj = ArrowTensorType(shape, dtype)