From a267e5d936ef00ebd6a83b60d71755f79cc72685 Mon Sep 17 00:00:00 2001 From: Jarek Potiuk Date: Wed, 14 Feb 2024 00:08:09 +0100 Subject: [PATCH] Add Python 3.12 exclusions in providers/pyproject.toml (#37404) Some of the providers need to be currently excluded from Python 3.12 because they have conflicting dependencies. While we are working on Python 3.12 support in #36755, in order to install airflow (for caching purposes) from GitHub URL, we need to separately merge the exclusions to main - this will help to build Python 3.12 CI image with all necessary dependencies cached. (cherry picked from commit b53fe08797d910ffab82b7b2ff6a27ba50b1d8a5) --- airflow/providers/apache/beam/provider.yaml | 4 ++++ airflow/providers/papermill/provider.yaml | 5 +++++ generated/provider_dependencies.json | 8 ++++++-- pyproject.toml | 10 +++++----- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/airflow/providers/apache/beam/provider.yaml b/airflow/providers/apache/beam/provider.yaml index 339f0c23e5d18..875f74a8c55c8 100644 --- a/airflow/providers/apache/beam/provider.yaml +++ b/airflow/providers/apache/beam/provider.yaml @@ -61,6 +61,10 @@ additional-extras: dependencies: - apache-beam[gcp] +# Apache Beam currently does not support Python 3.12 +# There is an issue tracking it https://github.com/apache/beam/issues/29149 +excluded-python-versions: ['3.12'] + integrations: - integration-name: Apache Beam external-doc-url: https://beam.apache.org/ diff --git a/airflow/providers/papermill/provider.yaml b/airflow/providers/papermill/provider.yaml index ccc762b656468..1b7bf53ffb350 100644 --- a/airflow/providers/papermill/provider.yaml +++ b/airflow/providers/papermill/provider.yaml @@ -21,6 +21,11 @@ name: Papermill description: | `Papermill `__ +# Papermill is technically compliant with 3.12, but it's 2.5.0 version that is compliant, requires pinned +# version of aiohttp which conflicts with other providers. The fix for that is implemented extra-links: +# https://github.com/nteract/papermill/pull/771 and waits for new Papermill release +excluded-python-versions: ['3.12'] + state: ready source-date-epoch: 1703288159 versions: diff --git a/generated/provider_dependencies.json b/generated/provider_dependencies.json index 9fc56fad581dd..fb1791ded8db4 100644 --- a/generated/provider_dependencies.json +++ b/generated/provider_dependencies.json @@ -76,7 +76,9 @@ "cross-providers-deps": [ "google" ], - "excluded-python-versions": [], + "excluded-python-versions": [ + "3.12" + ], "state": "ready" }, "apache.cassandra": { @@ -886,7 +888,9 @@ ], "devel-deps": [], "cross-providers-deps": [], - "excluded-python-versions": [], + "excluded-python-versions": [ + "3.12" + ], "state": "ready" }, "pgvector": { diff --git a/pyproject.toml b/pyproject.toml index aaa001b942b5b..708c6525be331 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -571,8 +571,8 @@ amazon = [ # source: airflow/providers/amazon/provider.yaml "s3fs>=2023.10.0", ] apache-beam = [ # source: airflow/providers/apache/beam/provider.yaml - "apache-beam>=2.53.0", - "pyarrow>=14.0.1", + "apache-beam>=2.53.0;python_version != \"3.12\"", + "pyarrow>=14.0.1;python_version != \"3.12\"", ] apache-cassandra = [ # source: airflow/providers/apache/cassandra/provider.yaml "cassandra-driver>=3.13.0", @@ -865,9 +865,9 @@ pagerduty = [ # source: airflow/providers/pagerduty/provider.yaml "pdpyras>=4.1.2", ] papermill = [ # source: airflow/providers/papermill/provider.yaml - "ipykernel", - "papermill[all]>=2.4.0", - "scrapbook[all]", + "ipykernel;python_version != \"3.12\"", + "papermill[all]>=2.4.0;python_version != \"3.12\"", + "scrapbook[all];python_version != \"3.12\"", ] pgvector = [ # source: airflow/providers/pgvector/provider.yaml "apache-airflow[postgres]",