class_docstr: A custom data type, to be paired with an ExtensionArray.
  
  .. versionadded:: 0.23.0
  
  See Also
  --------
  pandas.api.extensions.register_extension_dtype
  pandas.api.extensions.ExtensionArray
  
  Notes
  -----
  The interface includes the following abstract methods that must
  be implemented by subclasses:
  
  * type
  * name
  * construct_from_string
  
  The following attributes influence the behavior of the dtype in
  pandas operations
  
  * _is_numeric
  * _is_boolean
  
  Optionally one can override construct_array_type for construction
  with the name of this dtype via the Registry. See
  :meth:`pandas.api.extensions.register_extension_dtype`.
  
  * construct_array_type
  
  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.
  
  .. versionchanged:: 0.24.0
  
     Added ``_metadata``, ``__hash__``, and changed the default definition
     of ``__eq__``.
  
  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",".","..","versionadded",":",":","0.23.0","See","Also","--","--","--","--","pandas.api.extensions.register_extension_dtype","pandas.api.extensions.ExtensionArray","Notes","--","--","-","The","interface","includes","the","following","abstract","methods","that","must","be","implemented","by","subclasses",":","*","type","*","name","*","construct_from_string","The","following","attributes","influence","the","behavior","of","the","dtype","in","pandas","operations","*","_is_numeric","*","_is_boolean","Optionally","one","can","override","construct_array_type","for","construction","with","the","name","of","this","dtype","via","the","Registry",".","See",":","meth",":","`","pandas.api.extensions.register_extension_dtype","`",".","*","construct_array_type","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",".","..","versionchanged",":",":","0.24.0","Added","``","_metadata","``",",","``","__hash__","``",",","and","changed","the","default","definition","of","``","__eq__","``",".","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):
      # type () -> 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: import numpy
  from pandas.errors import AbstractMethodError
  from pandas.core.dtypes.generic import ABCDataFrame, ABCIndexClass, ABCSeries
  from pandas import compat
label_desc: Use image node_id 3 for calling the ExtensionDtype obj's underlying member method code with example usage: obj.kind() and returns: str