code: def maybe_infer_dtype_type(element):
      
      tipo = None
      if hasattr(element, 'dtype'):
          tipo = element.dtype
      elif is_list_like(element):
          element = np.asarray(element)
          tipo = element.dtype
      return tipo
docs: Try to infer an object's dtype, for use in arithmetic ops
  
      Uses `element.dtype` if that's available.
      Objects implementing the iterator protocol are cast to a NumPy array,
      and from there the array's type is used.
  
      Parameters
      ----------
      element : object
          Possibly has a `.dtype` attribute, and possibly the iterator
          protocol.
  
      Returns
      -------
      tipo : type
  
      Examples
      --------
      >>> from collections import namedtuple
      >>> Foo = namedtuple("Foo", "dtype")
      >>> maybe_infer_dtype_type(Foo(np.dtype("i8")))
      numpy.int64