Re: [Python-Dev] API design: where to add async variants of existing stdlib APIs?

2017年3月07日 11:29:33 -0800

On 07.03.2017 19:37, Jelle Zijlstra wrote:
2017年03月07日 10:15 GMT-08:00 Ethan Furman <[email protected] <mailto:[email protected]>>:
 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.
Correct me if I'm wrong, but we would get the code duplication anyway.
async intrinsically does the same thing (just a little bit different) as its sync counterpart. Otherwise, you wouldn't use it.
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.
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to