[ 
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)

Reply via email to