python-trio / trio-asyncio

a re-implementation of the asyncio mainloop on top of Trio
Other
189 stars 38 forks source link

trio-asyncio v0.8.0 crashes on import on py35 #33

Closed njsmith closed 6 years ago

njsmith commented 6 years ago

Not sure whether py35 is intended to be supported or not, but noticed when testing trio-asyncio and pytest-trio together that current trio-asyncio seems to be crashing on import:

___________ ERROR collecting pytest_trio/_tests/test_trio_asyncio.py ___________
../../../../virtualenv/python3.5.2/lib/python3.5/site-packages/pytest_trio/_tests/test_trio_asyncio.py:2: in <module>
    import trio_asyncio
../../../../virtualenv/python3.5.2/lib/python3.5/site-packages/trio_asyncio/__init__.py:6: in <module>
    from .loop import *  # noqa
../../../../virtualenv/python3.5.2/lib/python3.5/site-packages/trio_asyncio/loop.py:171: in <module>
    _orig_run_get = _aio_event._get_running_loop
E   AttributeError: module 'asyncio.events' has no attribute '_get_running_loop'
njsmith commented 6 years ago

Though... the same test seems to pass on py 3.5.3: https://ci.appveyor.com/project/touilleMan/pytest-trio/build/1.0.122/job/grrwby5hbttmq507 The travis failures we saw were on 3.5.0 and 3.5.2. So maybe 3.5.3 is OK?

pquentin commented 6 years ago

@njsmith The code agrees with you: 3.5.3 is OK! According to GitHub, _get_running_loop() was added in CPython 3.5.3, and its public version get_running_loop() was added in 3.7.0.

smurfix commented 6 years ago

Documented: minimum supported version is 3.5.3

pquentin commented 6 years ago

Thanks! Do you think this could be specified in python_requires too? https://github.com/python-trio/trio-asyncio/blob/master/setup.py#L75

smurfix commented 6 years ago

Thanks, I missed that. Uploaded (waiting for CI).