class ImportantThing:
def __enter__(self):
return self
def __exit__(self, *args):
print('Important cleanup')
def gen():
with ImportantThing():
try:
yield
except:
print('Neener neener')
yield
x = gen()
next(x)
del x
print("Cleanup didn't happen!")
Y2xhc3MgSW1wb3J0YW50VGhpbmc6CglkZWYgX19lbnRlcl9fKHNlbGYpOgoJCXJldHVybiBzZWxmCglkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MpOgoJCXByaW50KCdJbXBvcnRhbnQgY2xlYW51cCcpCgpkZWYgZ2VuKCk6Cgl3aXRoIEltcG9ydGFudFRoaW5nKCk6CgkJdHJ5OgoJCQl5aWVsZAoJCWV4Y2VwdDoKCQkJcHJpbnQoJ05lZW5lciBuZWVuZXInKQoJCQl5aWVsZAoKeCA9IGdlbigpCm5leHQoeCkKZGVsIHgKcHJpbnQoIkNsZWFudXAgZGlkbid0IGhhcHBlbiEiKQ==