class_docstr: Unfortuantly, mappings compare by hash(item) and not the __eq__ operator
  between the key and the item.
  
  Hence we wrap the dict in a Mapping class and implement our own __getitem__
  such that we do use __eq__ between keys and query items.
  
  >>> np.float32 == dtype('float32') # True, they are considered equal
  >>>
  >>> mydict = { np.float32: 'hello' }
  >>>
  >>> # Equal by __eq__ but dict operations fail
  >>> np.dtype('float32') in mydict # False
  >>> mydict[dtype('float32')]  # KeyError
  
  This mapping class fixes that supporting the `in` operator as well as `__getitem__`
  
  >>> reduction_mapping = _DtypeReductionMapping()
  >>>
  >>> reduction_mapping[np.dtype('float64')] # np.float32
  >>> np.dtype('float32') in reduction_mapping # True
class_docstr_tok: ["Unfortuantly",",","mappings","compare","by","hash","(","item",")","and","not","the","__eq__","operator","between","the","key","and","the","item",".","Hence","we","wrap","the","dict","in","a","Mapping","class","and","implement","our","own","__getitem__","such","that","we","do","use","__eq__","between","keys","and","query","items",".",">",">",">","np.float32","==","dtype","(","'float32","'",")","#","True",",","they","are","considered","equal",">",">",">",">",">",">","mydict","=","{","np.float32",":","'hello","'","}",">",">",">",">",">",">","#","Equal","by","__eq__","but","dict","operations","fail",">",">",">","np.dtype","(","'float32","'",")","in","mydict","#","False",">",">",">","mydict","[","dtype","(","'float32","'",")","]","#","KeyError","This","mapping","class","fixes","that","supporting","the","`","in","`","operator","as","well","as","`","__getitem__","`",">",">",">","reduction_mapping","=","_DtypeReductionMapping","(",")",">",">",">",">",">",">","reduction_mapping","[","np.dtype","(","'float64","'",")","]","#","np.float32",">",">",">","np.dtype","(","'float32","'",")","in","reduction_mapping","#","True"]
code: def __len__(cls) -> int:
      return len(cls._mapping)
  
imports: from typing import Any, Dict, Iterator, List, Mapping, Optional, Sequence, Tuple, Type, Union, cast
  import warnings
  import numpy
  import pandas
  from scipy.sparse import spmatrix
  from sklearn.model_selection import train_test_split
  from autosklearn.evaluation.splitter import CustomStratifiedShuffleSplit
label_desc: Use image node_id 3 for calling the _DtypeReductionMapping obj's underlying member method code with example usage: obj.__len__(cls) and returns: len