[Python-Dev] API design: where to add async variants of existing stdlib APIs?
Sven R. Kunze
srkunze at mail.de
Tue Mar 7 14:25:42 EST 2017
On 07.03.2017 19:37, Jelle Zijlstra wrote:
>
>
> 2017-03-07 10:15 GMT-08:00 Ethan Furman <ethan at stoneleaf.us
> <mailto: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.
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20170307/15d318f6/attachment.html>
More information about the Python-Dev
mailing list