On 07.03.2017 19:37, Jelle Zijlstra wrote:


2017-03-07 10:15 GMT-08:00 Ethan Furman <et...@stoneleaf.us <mailto:et...@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.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
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