[ https://issues.apache.org/jira/browse/TINKERPOP-3116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17892284#comment-17892284 ]
ASF GitHub Bot commented on TINKERPOP-3116: ------------------------------------------- JonZeolla commented on PR #2844: URL: https://github.com/apache/tinkerpop/pull/2844#issuecomment-2433282714 @Cole-Greer I looked at that a bit, but versions prior to 4.0.3 don't support Python 3.11 [according to their changelog](https://github.com/aio-libs/async-timeout/blob/master/CHANGES.rst#403-2023-08-10), so I thought this would be more appropriate given: https://github.com/apache/tinkerpop/blob/8d3117e4272778b71df6e6dd9e4d3b070da9a234/gremlin-python/src/main/python/setup.py#L90 Perhaps a middle ground is something like `>=4.0.0a3,<5.0` for the `3.6-dev` branch and then something more aggressive like `>=4.0.3,<5.0` for the `3.7-dev` branch? Speaking of bigger changes, using `async-timeout` directly is officially deprecated for newer versions of python: > This library has effectively been upstreamed into Python 3.11+. Therefore this library is considered deprecated and no longer supported. We'll keep the project open in the unlikely case of security issues until Python 3.10 is officially unsupported. So perhaps in the `3.7-dev` branch I could remove it entirely for python >= 3.11 like they suggest: ```python if sys.version_info >= (3, 11): import asyncio as async_timeout else: import async_timeout ``` and update the dependency to be something like: ```python async-timeout >= 4; python_version < "3.11" ``` If we're on the same page I'd be happy to open a separate PR for `3.7-dev` after a 3.6 -> 3.7 sync to either use `>=4.0.3,<5.0` or remove the dependency altogether for python >= 3.11 Side note: `4.0.0` and `4.0.0a3` are [slightly different](https://github.com/aio-libs/async-timeout/compare/v4.0.0a3...v4.0.0) and typically I wouldn't suggest allowing an alpha release but it seems that decision was really made upstream in `aiohttp` so I'm OK with aligning to that. > async_timeout not declared in gremlinpython dependencies > -------------------------------------------------------- > > Key: TINKERPOP-3116 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3116 > Project: TinkerPop > Issue Type: Bug > Components: python > Affects Versions: 3.7.2 > Reporter: Jon Zeolla > Priority: Minor > > `async-timeout` is missing from [the install > requirements|https://github.com/apache/tinkerpop/blob/49829884a5617ed1a86211e69826c16e549b0600/gremlin-python/src/main/python/setup.py#L47-L52]. > This appears to have been untouched for quite a while; possibly some > upstream dependency no longer uses `async-timeout`? > `async-timeout` _is_ installed [in the > example|https://github.com/apache/tinkerpop/blob/49829884a5617ed1a86211e69826c16e549b0600/gremlin-python/src/main/python/examples/requirements.txt#L21] > and after I do a fresh install of `gremlinpython` I saw the following: > ```bash > ➜ python3 > Python 3.12.6 (main, Sep 9 2024, 21:36:32) [Clang 18.1.8 ] on darwin > Type "help", "copyright", "credits" or "license" for more information. > >>> from gremlin_python.process.anonymous_traversal import traversal > >>> from gremlin_python.driver.driver_remote_connection import > >>> DriverRemoteConnection > >>> g = > >>> traversal().with_remote(DriverRemoteConnection('ws://localhost:8182/gremlin','g')) > Traceback (most recent call last): > File > "/Users/example/tinkerpop/.venv/lib/python3.12/site-packages/gremlin_python/driver/client.py", > line 70, in __init__ > from gremlin_python.driver.aiohttp.transport import ( > File > "/Users/example/tinkerpop/.venv/lib/python3.12/site-packages/gremlin_python/driver/aiohttp/transport.py", > line 21, in <module> > import async_timeout > ModuleNotFoundError: No module named 'async_timeout' > During handling of the above exception, another exception occurred: > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File > "/Users/example/tinkerpop/.venv/lib/python3.12/site-packages/gremlin_python/driver/driver_remote_connection.py", > line 69, in __init__ > self._client = client.Client(url, traversal_source, > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File > "/Users/example/tinkerpop/.venv/lib/python3.12/site-packages/gremlin_python/driver/client.py", > line 73, in __init__ > raise Exception("Please install AIOHTTP or pass " > ``` > After installing `async-timeout` I now get: > ```bash > ➜ python3 > Python 3.12.6 (main, Sep 9 2024, 21:36:32) [Clang 18.1.8 ] on darwin > Type "help", "copyright", "credits" or "license" for more information. > >>> from gremlin_python.process.anonymous_traversal import traversal > >>> from gremlin_python.driver.driver_remote_connection import > >>> DriverRemoteConnection > >>> > >>> g = > >>> traversal().with_remote(DriverRemoteConnection('ws://localhost:8182/gremlin', > >>> 'g')) > ``` > h2. My environment > macOS 15.0.1, M2 > Python 3.12.6 > gremlin_python 3.7.2 -- This message was sent by Atlassian Jira (v8.20.10#820010)