Hi,

sometimes I need to use contextlib.close but over methods with a different
name, for example stop(), halt(), etc. For those cases I have to write my
own contextlib.close specialized version with a hard-coded method name.

I think adding a "method" argument to contextlib.close can be very useful:

@contextmanager
def closing(thing, method="close"):
    try:
        yield thing
    finally:
        getattr(thing, method)()

Or maybe something even more generic:

@contextmanager
def calling(fn, *args, **kwargs):
    try:
        yield
    finally:
        fn(*args, **kwargs)


Best regards,
Roberto
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to