def _cmp_dispatcher(other_method_name):
    """Dispatch comparisons to a method of the *other* object.

    Returns a new *rich comparison* method which dispatches calls to
    the method `other_method_name` of the *other* object.  If there is
    no such method in the object, ``False`` is returned.

    This is part of the implementation of a double dispatch pattern.
    """

    def dispatched_cmp(self, other):
        try:
            other_method = getattr(other, other_method_name)
        except __HOLE__:
            return False
        return other_method(self)
    return dispatched_cmp


# Helper classes
# ==============
dataset/ETHPy150Open PyTables/PyTables/tables/atom.py/_cmp_dispatcher