Does Python guarantee that finalizers are called at all? Most languages don't, I thought.
Python seems to, too: https://docs.python.org/3/library/weakref.html, "When the program exits, each remaining live finalizer is called unless its atexit attribute has been set to false. They are called in reverse order of creation."