class_docstr: A custom data type, to be paired with an ExtensionArray.
  
  See Also
  --------
  extensions.register_extension_dtype: Register an ExtensionType
      with pandas as class decorator.
  extensions.ExtensionArray: Abstract base class for custom 1-D array types.
  
  Notes
  -----
  The interface includes the following abstract methods that must
  be implemented by subclasses:
  
  * type
  * name
  * construct_array_type
  
  The following attributes and methods influence the behavior of the dtype in
  pandas operations
  
  * _is_numeric
  * _is_boolean
  * _get_common_dtype
  
  The `na_value` class attribute can be used to set the default NA value
  for this type. :attr:`numpy.nan` is used by default.
  
  ExtensionDtypes are required to be hashable. The base class provides
  a default implementation, which relies on the ``_metadata`` class
  attribute. ``_metadata`` should be a tuple containing the strings
  that define your data type. For example, with ``PeriodDtype`` that's
  the ``freq`` attribute.
  
  **If you have a parametrized dtype you should set the ``_metadata``
  class property**.
  
  Ideally, the attributes in ``_metadata`` will match the
  parameters to your ``ExtensionDtype.__init__`` (if any). If any of
  the attributes in ``_metadata`` don't implement the standard
  ``__eq__`` or ``__hash__``, the default implementations here will not
  work.
  
  Examples
  --------
  
  For interaction with Apache Arrow (pyarrow), a ``__from_arrow__`` method
  can be implemented: this method receives a pyarrow Array or ChunkedArray
  as only argument and is expected to return the appropriate pandas
  ExtensionArray for this dtype and the passed values:
  
  >>> import pyarrow
  >>> from pandas.api.extensions import ExtensionArray
  >>> class ExtensionDtype:
  ...     def __from_arrow__(
  ...         self,
  ...         array: pyarrow.Array | pyarrow.ChunkedArray
  ...     ) -> ExtensionArray:
  ...         ...
  
  This class does not inherit from 'abc.ABCMeta' for performance reasons.
  Methods and properties required by the interface raise
  ``pandas.errors.AbstractMethodError`` and no ``register`` method is
  provided for registering virtual subclasses.
class_docstr_tok: ["A","custom","data","type",",","to","be","paired","with","an","ExtensionArray",".","See","Also","--","--","--","--","extensions.register_extension_dtype",":","Register","an","ExtensionType","with","pandas","as","class","decorator",".","extensions.ExtensionArray",":","Abstract","base","class","for","custom","1-D","array","types",".","Notes","--","--","-","The","interface","includes","the","following","abstract","methods","that","must","be","implemented","by","subclasses",":","*","type","*","name","*","construct_array_type","The","following","attributes","and","methods","influence","the","behavior","of","the","dtype","in","pandas","operations","*","_is_numeric","*","_is_boolean","*","_get_common_dtype","The","`","na_value","`","class","attribute","can","be","used","to","set","the","default","NA","value","for","this","type",".",":","attr",":","`","numpy.nan","`","is","used","by","default",".","ExtensionDtypes","are","required","to","be","hashable",".","The","base","class","provides","a","default","implementation",",","which","relies","on","the","``","_metadata","``","class","attribute",".","``","_metadata","``","should","be","a","tuple","containing","the","strings","that","define","your","data","type",".","For","example",",","with","``","PeriodDtype","``","that's","the","``","freq","``","attribute",".","*","*","If","you","have","a","parametrized","dtype","you","should","set","the","``","_metadata","``","class","property","*","*",".","Ideally",",","the","attributes","in","``","_metadata","``","will","match","the","parameters","to","your","``","ExtensionDtype.__init__","``","(","if","any",")",".","If","any","of","the","attributes","in","``","_metadata","``","do","n't","implement","the","standard","``","__eq__","``","or","``","__hash__","``",",","the","default","implementations","here","will","not","work",".","Examples","--","--","--","--","For","interaction","with","Apache","Arrow","(","pyarrow",")",",","a","``","__from_arrow__","``","method","can","be","implemented",":","this","method","receives","a","pyarrow","Array","or","ChunkedArray","as","only","argument","and","is","expected","to","return","the","appropriate","pandas","ExtensionArray","for","this","dtype","and","the","passed","values",":",">",">",">","import","pyarrow",">",">",">","from","pandas.api.extensions","import","ExtensionArray",">",">",">","class","ExtensionDtype",":","...","def","__from_arrow__","(","...","self",",","...","array",":","pyarrow.Array","|","pyarrow.ChunkedArray","...",")","-",">","ExtensionArray",":","...","...","This","class","does","not","inherit","from","'abc.ABCMeta","'","for","performance","reasons",".","Methods","and","properties","required","by","the","interface","raise","``","pandas.errors.AbstractMethodError","``","and","no","``","register","``","method","is","provided","for","registering","virtual","subclasses","."]
docstr: Do ExtensionArrays with this dtype support 2D arrays?
  
  Historically ExtensionArrays were limited to 1D. By returning True here,
  authors can indicate that their arrays support 2D instances. This can
  improve performance in some cases, particularly operations with `axis=1`.
  
  Arrays that support 2D values should:
  
      - implement Array.reshape
      - subclass the Dim2CompatTests in tests.extension.base
      - _concat_same_type should support `axis` keyword
      - _reduce and reductions should support `axis` keyword
docstr_tok: ["Do","ExtensionArrays","with","this","dtype","support","2D","arrays","?","Historically","ExtensionArrays","were","limited","to","1D",".","By","returning","True","here",",","authors","can","indicate","that","their","arrays","support","2D","instances",".","This","can","improve","performance","in","some","cases",",","particularly","operations","with","`","axis=1","`",".","Arrays","that","support","2D","values","should",":","-","implement","Array.reshape","-","subclass","the","Dim2CompatTests","in","tests.extension.base","-","_concat_same_type","should","support","`","axis","`","keyword","-","_reduce","and","reductions","should","support","`","axis","`","keyword"]
code: def _supports_2d(self) -> bool:
      """
      Do ExtensionArrays with this dtype support 2D arrays?
  
      Historically ExtensionArrays were limited to 1D. By returning True here,
      authors can indicate that their arrays support 2D instances. This can
      improve performance in some cases, particularly operations with `axis=1`.
  
      Arrays that support 2D values should:
  
          - implement Array.reshape
          - subclass the Dim2CompatTests in tests.extension.base
          - _concat_same_type should support `axis` keyword
          - _reduce and reductions should support `axis` keyword
      """
      return False
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Any, TypeVar, cast, overload
  import numpy
  from pandas._libs import missing
  from pandas._libs.hashtable import object_hash
  from pandas._libs.properties import cache_readonly
  from pandas.errors import AbstractMethodError
  from pandas.core.dtypes.generic import ABCDataFrame, ABCIndex, ABCSeries
label_desc: Use image node_id 20 for calling the ExtensionDtype obj's underlying member method code with example usage: obj._supports_2d() and returns: False