def looks_like_mapping(obj):
    """
    Return True if *obj* looks like a mapping type object.
    """
    meths = ("items", "keys", "values")
    for meth in meths:
        if not callable(getattr(obj, meth, None)):
            return False
    return True