@staticmethod
def make_key(observer):
    """Construct a unique, hashable, immutable key for an observer."""
    if hasattr(observer, '__self__'):
        inst = observer.__self__
        method_name = observer.__name__
        key = id(inst), method_name
    else:
        key = id(observer)
    return key
