One important requirement for this library is that the registry can be used in testing code to override interface implementations with test classes. Something like
def test_something():
with my_registry.override("interface_name", TestInterfaceImplementation):
do_something_using_interface_name()