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: A character code (one of 'biufcmMOSUV'), default 'O'
  
  This should match the NumPy dtype used when the array is
  converted to an ndarray, which is probably 'O' for object if
  the extension type cannot be represented as a built-in NumPy
  type.
  
  See Also
  --------
  numpy.dtype.kind
docstr_tok: ["A","character","code","(","one","of","'biufcmMOSUV","'",")",",","default","'","O'","This","should","match","the","NumPy","dtype","used","when","the","array","is","converted","to","an","ndarray",",","which","is","probably","'","O","'","for","object","if","the","extension","type","can","not","be","represented","as","a","built-in","NumPy","type",".","See","Also","--","--","--","--","numpy.dtype.kind"]
code: def kind(self) -> str:
      """
      A character code (one of 'biufcmMOSUV'), default 'O'
  
      This should match the NumPy dtype used when the array is
      converted to an ndarray, which is probably 'O' for object if
      the extension type cannot be represented as a built-in NumPy
      type.
  
      See Also
      --------
      numpy.dtype.kind
      """
      return "O"
  
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 7 for calling the ExtensionDtype obj's underlying member method code with example usage: obj.kind() and returns: str