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: Check if we match 'dtype'.
  
  Parameters
  ----------
  dtype : object
      The object to check.
  
  Returns
  -------
  bool
  
  Notes
  -----
  The default implementation is True if
  
  1. ``cls.construct_from_string(dtype)`` is an instance
     of ``cls``.
  2. ``dtype`` is an object and is an instance of ``cls``
  3. ``dtype`` has a ``dtype`` attribute, and any of the above
     conditions is true for ``dtype.dtype``.
docstr_tok: ["Check","if","we","match","'dtype","'",".","Parameters","--","--","--","--","--","dtype",":","object","The","object","to","check",".","Returns","--","--","--","-","bool","Notes","--","--","-","The","default","implementation","is","True","if","1",".","``","cls.construct_from_string","(","dtype",")","``","is","an","instance","of","``","cls","``",".","2",".","``","dtype","``","is","an","object","and","is","an","instance","of","``","cls","``","3",".","``","dtype","``","has","a","``","dtype","``","attribute",",","and","any","of","the","above","conditions","is","true","for","``","dtype.dtype","``","."]
code: def is_dtype(cls, dtype: object) -> bool:
      """
      Check if we match 'dtype'.
  
      Parameters
      ----------
      dtype : object
          The object to check.
  
      Returns
      -------
      bool
  
      Notes
      -----
      The default implementation is True if
  
      1. ``cls.construct_from_string(dtype)`` is an instance
         of ``cls``.
      2. ``dtype`` is an object and is an instance of ``cls``
      3. ``dtype`` has a ``dtype`` attribute, and any of the above
         conditions is true for ``dtype.dtype``.
      """
      dtype = getattr(dtype, "dtype", dtype)
  
      if isinstance(
          dtype, (ABCSeries, ABCIndex, ABCDataFrame, np.dtype)
      ):
          # https://github.com/pandas-dev/pandas/issues/22960
          # avoid passing data to `construct_from_string`. This could
          # cause a FutureWarning from numpy about failing elementwise
          # comparison from, e.g., comparing DataFrame == 'category'.
          return False
      elif dtype is None:
          return False
      elif isinstance(dtype, cls):
          return True
      if isinstance(dtype, str):
          try:
              return cls.construct_from_string(dtype) is not None
          except TypeError:
              return False
      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 13 for calling the ExtensionDtype obj's underlying member method code with example usage: obj.is_dtype(cls, dtype) and returns: False, False, False, unknown, True, False