def _isnull_old(obj):
 if is_scalar(obj):
  return lib.checknull_old(obj)
 elif isinstance(obj, ABCMultiIndex):
  raise NotImplementedError('isnull is not defined for MultiIndex')
 elif isinstance(obj, (ABCSeries, np.ndarray, ABCIndexClass)):
  return _isnull_ndarraylike_old(obj)
 elif isinstance(obj, ABCGeneric):
  return obj._constructor(obj._data.isnull(func=_isnull_old))
 elif (isinstance(obj, list) or hasattr(obj, '__array__')):
  return _isnull_ndarraylike_old(np.asarray(obj))
 else:
  return (obj is None)

def _isnull_old ( obj ) : if is_scalar ( obj ) : return lib . checknull_old ( obj ) elif isinstance ( obj , ABCMultiIndex ) : raise NotImplementedError ( 'isnull is not defined for MultiIndex' ) elif isinstance ( obj , ( ABCSeries , np . ndarray , ABCIndexClass ) ) : return _isnull_ndarraylike_old ( obj ) elif isinstance ( obj , ABCGeneric ) : return obj . _constructor ( obj . _data . isnull ( func = _isnull_old ) ) elif ( isinstance ( obj , list ) or hasattr ( obj , '__array__' ) ) : return _isnull_ndarraylike_old ( np . asarray ( obj ) ) else : return ( obj is None )
detect missing values .