-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
Is your feature request related to a problem? Please describe.
To use async IO with the azure-core library there is a dependency on aiohttp. The aiohttp project currently does not publish wheels for Python 3.12. Although the async transport is an optional dependency of azure-core, it is a hard dependency of the Azure fsspec implementation, adlfs. We would like to support Python 3.12 on Azure and cannot do so until this issue is resolved. This will also be impacting other projects that require async transport.
The lead maintainers of the aiohttp project are saying they need help to make the necessary updates, and that there are significant testing gaps which they are concerned about and wish to fix before a 3.12-compatible version can be released. To drive the point home, they also published this image in a recent thread on the subject:
Describe the solution you'd like
I think this is a broader issues than simply getting the 3.12 package for aiohttp out of the door. I can see two potential solutions:
- MS can contribute development effort to aiohttp, to resolve this specific issue and help maintain the package going forward as and when issues or feature requirements arise
- I see there is an alternate async transport in development using HTTPX, with sample code in the azure-core-experimental library and also in a separate module called "corehttp". If the HTTPX transport were completed and made available in azure-core that should remove the dependency on aiohttp for projects requiring async, including the Azure implementation of fsspec.
Describe alternatives you've considered
The Apache Arrow project is also working on an Azure implementation of their FileSystem interface, for projects using Apache Arrow these Python libraries may not be needed at all once that is available. This might help my particular project eventually, but probably doesn't help most people who want to use Python on Azure.
Additional context
Issue thread for aiohttp: aio-libs/multidict#887
Note in adlfs about requirement of aiohttp: fsspec/adlfs#452
Azure core docs on HTTP transport: CLIENT_LIBRARY_DEVELOPER#transport
Azure core experimental library: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/azure-core-experimental
Azure corehttp library: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/core/corehttp