[Python-Dev] API design: where to add async variants of existing stdlib APIs? (original) (raw)

Jelle Zijlstra jelle.zijlstra at gmail.com
Tue Mar 7 13:37:41 EST 2017


2017-03-07 10:15 GMT-08:00 Ethan Furman <ethan at stoneleaf.us>:

On 03/07/2017 09:41 AM, Brett Cannon wrote:

I don't think a common practice has bubbled up yet for when there's both synchronous and asynchronous versions of an API (closest I have seen is appending an "a" to the async version but that just looks like a spelling mistake to me most of the time). This is why the question of whether separate modules are a better idea is coming up.

I'm undoubtedly going to show my ignorance with this question, but is it feasible to have both sync and async support in the same object? It's possible, but it quickly gets awkward and will require a lot of code duplication. For example, we could make @contextmanager work for async functions by making the _GeneratorContextManager class implement both enter/exit and aenter/aexit, but then you'd get an obscure error if you used with on an async contextmanager or async with on a non-async contextmanager.

-- Ethan


Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/jelle. zijlstra%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20170307/97ef0139/attachment.html>



More information about the Python-Dev mailing list