From 79c3dd89f7047a412ad74df13bb1054b8c042e85 Mon Sep 17 00:00:00 2001 From: Rahul Vats Date: Wed, 5 Aug 2026 19:35:26 +0530 Subject: [PATCH] Revert the pandas < 3 cap for DataFrame XComs Backport of #71100, which reverted "Limit pandas to < 3 for DataFrame XComs" (#70791) on main. v3-3-test carried the cap via the #70912 backport; reverting that commit removes the cap here too so the release branch matches main. The pandas-3 XCom serializer support lands separately in #71169 (the #71103 backport) -- the same order main used (#71100 before #71103). uv.lock regenerated with uv 0.12.1 to drop the pandas <3 specifier. --- .../newsfragments/70791.significant.rst | 35 -------- providers/amazon/pyproject.toml | 15 +--- providers/apache/hdfs/README.rst | 12 +-- providers/apache/hdfs/docs/index.rst | 12 +-- providers/apache/hdfs/pyproject.toml | 15 +--- providers/apache/hive/README.rst | 12 +-- providers/apache/hive/docs/index.rst | 12 +-- providers/apache/hive/pyproject.toml | 15 +--- providers/common/sql/pyproject.toml | 15 +--- providers/databricks/README.rst | 12 +-- providers/databricks/docs/index.rst | 12 +-- providers/databricks/pyproject.toml | 15 +--- providers/exasol/README.rst | 12 +-- providers/exasol/docs/index.rst | 12 +-- providers/exasol/pyproject.toml | 15 +--- providers/google/README.rst | 12 +-- providers/google/docs/index.rst | 12 +-- providers/google/pyproject.toml | 15 +--- providers/papermill/README.rst | 12 +-- providers/papermill/docs/index.rst | 12 +-- providers/papermill/pyproject.toml | 15 +--- providers/postgres/pyproject.toml | 15 +--- providers/presto/README.rst | 12 +-- providers/presto/docs/index.rst | 12 +-- providers/presto/pyproject.toml | 15 +--- providers/salesforce/README.rst | 12 +-- providers/salesforce/docs/index.rst | 12 +-- providers/salesforce/pyproject.toml | 15 +--- providers/snowflake/README.rst | 6 +- providers/snowflake/docs/index.rst | 6 +- providers/snowflake/pyproject.toml | 15 +--- providers/trino/README.rst | 12 +-- providers/trino/docs/index.rst | 12 +-- providers/trino/pyproject.toml | 15 +--- providers/weaviate/README.rst | 12 +-- providers/weaviate/docs/index.rst | 12 +-- providers/weaviate/pyproject.toml | 15 +--- task-sdk/pyproject.toml | 15 +--- .../airflow/sdk/serde/serializers/pandas.py | 45 ---------- .../tests/task_sdk/serde/test_serializers.py | 28 ------ uv.lock | 90 +++++++++---------- 41 files changed, 216 insertions(+), 459 deletions(-) delete mode 100644 airflow-core/newsfragments/70791.significant.rst diff --git a/airflow-core/newsfragments/70791.significant.rst b/airflow-core/newsfragments/70791.significant.rst deleted file mode 100644 index 827f22bc68f68..0000000000000 --- a/airflow-core/newsfragments/70791.significant.rst +++ /dev/null @@ -1,35 +0,0 @@ -pandas is limited to ``< 3``; DataFrame XComs are refused on pandas 3 - -A ``pandas.DataFrame`` does not survive an XCom round trip under pandas 3 the way it does -under pandas 2, so this version of Airflow constrains pandas to ``< 3`` and refuses DataFrame -XComs at runtime when a newer pandas is installed anyway. - -Two things change under pandas 3. Its public classes are exposed from the ``pandas`` -namespace, so a DataFrame qualifies as ``pandas.DataFrame`` rather than -``pandas.core.frame.DataFrame`` and the XCom serializer registry -- keyed on the latter -- -never dispatches to the pandas serializer. And the dtypes differ: an ``object`` column reads -back as ``str``, and missing values as ``nan`` rather than ``None``, so the *reader's* pandas -version decides what a task receives rather than the writer's. - -Because pandas is an optional dependency, the ``< 3`` constraint alone cannot be relied on -- -a deployment may install pandas 3 directly, or pull it in through another package. It is -therefore backed by a runtime check. - -**Behaviour changes:** - -- With pandas 3 or newer installed, pushing **or** pulling a ``DataFrame`` through XCom now - raises ``RuntimeError`` naming the installed pandas version and the supported range. - Reads are refused as well as writes, because a payload written under pandas 2 reads back - with pandas 3 dtypes and would otherwise hand the task different data than was pushed, - with no signal. -- Previously the same situation produced an opaque - ``TypeError: cannot serialize object of type `` from the - serializer registry, with nothing identifying pandas as the cause. -- Deployments that pass DataFrames through XCom must pin ``pandas < 3`` in the environment - that runs their tasks. Deployments that do not use DataFrame XComs are unaffected at - runtime. -- Nothing changes for pandas 2 users. - -**This defers pandas 3 support rather than dropping it.** Moving from pandas 2 to pandas 3 -is a deliberate migration for users to make, given the dtype changes it brings to data that -has already been written. Support for pandas 3 will be enabled in a future Airflow release. diff --git a/providers/amazon/pyproject.toml b/providers/amazon/pyproject.toml index bae2f3cb67f22..ef24eaea8f167 100644 --- a/providers/amazon/pyproject.toml +++ b/providers/amazon/pyproject.toml @@ -130,18 +130,9 @@ dependencies = [ "apache-airflow-providers-mongo" ] "pandas" = [ - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', ] "openlineage" = [ "apache-airflow-providers-openlineage>=2.3.0" diff --git a/providers/apache/hdfs/README.rst b/providers/apache/hdfs/README.rst index a7aab259a60d4..9a78a1043b9d5 100644 --- a/providers/apache/hdfs/README.rst +++ b/providers/apache/hdfs/README.rst @@ -51,19 +51,19 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================== PIP package Version required -========================================== ==================================================================== +========================================== ================================================================== ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``hdfs[avro,dataframe,kerberos]`` ``>=2.5.4; python_version < "3.12"`` ``hdfs[avro,dataframe,kerberos]`` ``>=2.7.3; python_version >= "3.12"`` ``fastavro`` ``>=1.10.0; python_version >= "3.13" and python_version < "3.14"`` ``fastavro`` ``>=1.12.1; python_version >= "3.14"`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` -========================================== ==================================================================== +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` +========================================== ================================================================== Cross provider package dependencies ----------------------------------- diff --git a/providers/apache/hdfs/docs/index.rst b/providers/apache/hdfs/docs/index.rst index bbcdf5cb991e3..a28c082a064e6 100644 --- a/providers/apache/hdfs/docs/index.rst +++ b/providers/apache/hdfs/docs/index.rst @@ -85,19 +85,19 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================== PIP package Version required -========================================== ==================================================================== +========================================== ================================================================== ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``hdfs[avro,dataframe,kerberos]`` ``>=2.5.4; python_version < "3.12"`` ``hdfs[avro,dataframe,kerberos]`` ``>=2.7.3; python_version >= "3.12"`` ``fastavro`` ``>=1.10.0; python_version >= "3.13" and python_version < "3.14"`` ``fastavro`` ``>=1.12.1; python_version >= "3.14"`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` -========================================== ==================================================================== +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` +========================================== ================================================================== Cross provider package dependencies ----------------------------------- diff --git a/providers/apache/hdfs/pyproject.toml b/providers/apache/hdfs/pyproject.toml index fa9baec7f7e99..2907dd03abaed 100644 --- a/providers/apache/hdfs/pyproject.toml +++ b/providers/apache/hdfs/pyproject.toml @@ -65,18 +65,9 @@ dependencies = [ 'hdfs[avro,dataframe,kerberos]>=2.7.3;python_version>="3.12"', 'fastavro>=1.10.0; python_version>="3.13" and python_version<"3.14"', 'fastavro>=1.12.1; python_version>="3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', ] [dependency-groups] diff --git a/providers/apache/hive/README.rst b/providers/apache/hive/README.rst index 079adfa3f1c2f..56a4e8be0a2b3 100644 --- a/providers/apache/hive/README.rst +++ b/providers/apache/hive/README.rst @@ -50,19 +50,19 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` ``hmsclient`` ``>=0.1.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``pyhive[hive_pure_sasl]`` ``>=0.7.0`` ``jmespath`` ``>=0.7.0`` -========================================== ==================================================================== +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/apache/hive/docs/index.rst b/providers/apache/hive/docs/index.rst index e84312278b95c..aa9e5204fb18a 100644 --- a/providers/apache/hive/docs/index.rst +++ b/providers/apache/hive/docs/index.rst @@ -99,19 +99,19 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` ``hmsclient`` ``>=0.1.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``pyhive[hive_pure_sasl]`` ``>=0.7.0`` ``jmespath`` ``>=0.7.0`` -========================================== ==================================================================== +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/apache/hive/pyproject.toml b/providers/apache/hive/pyproject.toml index 8fa62e3ce462a..4d535fd769985 100644 --- a/providers/apache/hive/pyproject.toml +++ b/providers/apache/hive/pyproject.toml @@ -63,18 +63,9 @@ dependencies = [ "apache-airflow-providers-common-compat>=1.12.0", "apache-airflow-providers-common-sql>=1.32.0", "hmsclient>=0.1.0", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', "pyhive[hive_pure_sasl]>=0.7.0", "jmespath>=0.7.0", ] diff --git a/providers/common/sql/pyproject.toml b/providers/common/sql/pyproject.toml index fa3f99c9cf93a..ddadb5ceb6908 100644 --- a/providers/common/sql/pyproject.toml +++ b/providers/common/sql/pyproject.toml @@ -72,20 +72,11 @@ dependencies = [ # Any change in the dependencies is preserved when the file is regenerated [project.optional-dependencies] "pandas" = [ - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas[sql-other]>=2.1.2,<3; python_version <"3.13"', + 'pandas[sql-other]>=2.1.2; python_version <"3.13"', # Technically - we should add "sql-other" here as well, but this will only be possible when we move # to sqlalchemy 2+ TODO(potiuk): do so. - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', ] "openlineage" = [ "apache-airflow-providers-openlineage" diff --git a/providers/databricks/README.rst b/providers/databricks/README.rst index 0fc550eda4567..d32098be67796 100644 --- a/providers/databricks/README.rst +++ b/providers/databricks/README.rst @@ -50,9 +50,9 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================== PIP package Version required -========================================== ==================================================================== +========================================== ================================================================== ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.13.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` @@ -60,13 +60,13 @@ PIP package Version required ``databricks-sql-connector`` ``>=4.4.0`` ``aiohttp`` ``>=3.14.0,<4`` ``mergedeep`` ``>=1.3.4`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``pyarrow`` ``>=16.1.0; python_version < "3.13"`` ``pyarrow`` ``>=18.0.0; python_version >= "3.13" and python_version < "3.14"`` ``pyarrow`` ``>=22.0.0; python_version >= "3.14"`` -========================================== ==================================================================== +========================================== ================================================================== Cross provider package dependencies ----------------------------------- diff --git a/providers/databricks/docs/index.rst b/providers/databricks/docs/index.rst index a4f01c64822ba..80a0a7abacf2c 100644 --- a/providers/databricks/docs/index.rst +++ b/providers/databricks/docs/index.rst @@ -98,9 +98,9 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================== PIP package Version required -========================================== ==================================================================== +========================================== ================================================================== ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.13.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` @@ -108,13 +108,13 @@ PIP package Version required ``databricks-sql-connector`` ``>=4.4.0`` ``aiohttp`` ``>=3.14.0,<4`` ``mergedeep`` ``>=1.3.4`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``pyarrow`` ``>=16.1.0; python_version < "3.13"`` ``pyarrow`` ``>=18.0.0; python_version >= "3.13" and python_version < "3.14"`` ``pyarrow`` ``>=22.0.0; python_version >= "3.14"`` -========================================== ==================================================================== +========================================== ================================================================== Cross provider package dependencies ----------------------------------- diff --git a/providers/databricks/pyproject.toml b/providers/databricks/pyproject.toml index f55ef7863fdf8..d486b4e9b25f1 100644 --- a/providers/databricks/pyproject.toml +++ b/providers/databricks/pyproject.toml @@ -66,18 +66,9 @@ dependencies = [ "databricks-sql-connector>=4.4.0", "aiohttp>=3.14.0, <4", "mergedeep>=1.3.4", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', "pyarrow>=16.1.0; python_version < '3.13'", "pyarrow>=18.0.0; python_version >= '3.13' and python_version < '3.14'", "pyarrow>=22.0.0; python_version >= '3.14'", diff --git a/providers/exasol/README.rst b/providers/exasol/README.rst index bfe529b8ed679..efd92fcdf3472 100644 --- a/providers/exasol/README.rst +++ b/providers/exasol/README.rst @@ -50,17 +50,17 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` ``pyexasol`` ``>=0.26.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` -========================================== ==================================================================== +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/exasol/docs/index.rst b/providers/exasol/docs/index.rst index 242a34559891d..94ea0bbae141d 100644 --- a/providers/exasol/docs/index.rst +++ b/providers/exasol/docs/index.rst @@ -95,17 +95,17 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` ``pyexasol`` ``>=0.26.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` -========================================== ==================================================================== +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/exasol/pyproject.toml b/providers/exasol/pyproject.toml index a8cce19191f79..a3f8a5ac4cecf 100644 --- a/providers/exasol/pyproject.toml +++ b/providers/exasol/pyproject.toml @@ -63,18 +63,9 @@ dependencies = [ "apache-airflow-providers-common-compat>=1.12.0", "apache-airflow-providers-common-sql>=1.32.0", "pyexasol>=0.26.0", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', ] # The optional dependencies should be modified in place in the generated file diff --git a/providers/google/README.rst b/providers/google/README.rst index c69e694d33731..6a5c22451ab8c 100644 --- a/providers/google/README.rst +++ b/providers/google/README.rst @@ -57,9 +57,9 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================== PIP package Version required -========================================== ==================================================================== +========================================== ================================================================== ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.13.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` @@ -124,9 +124,9 @@ PIP package Version required ``httpx`` ``>=0.25.0`` ``looker-sdk`` ``>=22.4.0,!=24.18.0`` ``pandas-gbq`` ``>=0.7.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``proto-plus`` ``>=1.26.0`` ``pyarrow`` ``>=18.0.0; python_version < "3.14"`` ``pyarrow`` ``>=22.0.0; python_version >= "3.14"`` @@ -137,7 +137,7 @@ PIP package Version required ``tenacity`` ``>=8.3.0`` ``immutabledict`` ``>=4.2.0`` ``types-protobuf`` ``>=5.27.0,!=5.29.1.20250402`` -========================================== ==================================================================== +========================================== ================================================================== Cross provider package dependencies ----------------------------------- diff --git a/providers/google/docs/index.rst b/providers/google/docs/index.rst index da7c061edc7a4..a9a3d257d2208 100644 --- a/providers/google/docs/index.rst +++ b/providers/google/docs/index.rst @@ -110,9 +110,9 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================== PIP package Version required -========================================== ==================================================================== +========================================== ================================================================== ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.13.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` @@ -177,9 +177,9 @@ PIP package Version required ``httpx`` ``>=0.25.0`` ``looker-sdk`` ``>=22.4.0,!=24.18.0`` ``pandas-gbq`` ``>=0.7.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``proto-plus`` ``>=1.26.0`` ``pyarrow`` ``>=18.0.0; python_version < "3.14"`` ``pyarrow`` ``>=22.0.0; python_version >= "3.14"`` @@ -190,7 +190,7 @@ PIP package Version required ``tenacity`` ``>=8.3.0`` ``immutabledict`` ``>=4.2.0`` ``types-protobuf`` ``>=5.27.0,!=5.29.1.20250402`` -========================================== ==================================================================== +========================================== ================================================================== Cross provider package dependencies ----------------------------------- diff --git a/providers/google/pyproject.toml b/providers/google/pyproject.toml index e3509a6a47dc3..332023102e8ac 100644 --- a/providers/google/pyproject.toml +++ b/providers/google/pyproject.toml @@ -133,18 +133,9 @@ dependencies = [ # See https://github.com/looker-open-source/sdk-codegen/issues/1518 "looker-sdk>=22.4.0,!=24.18.0", "pandas-gbq>=0.7.0", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', "proto-plus>=1.26.0", # Used to write parquet files by BaseSqlToGCSOperator "pyarrow>=18.0.0; python_version < '3.14'", diff --git a/providers/papermill/README.rst b/providers/papermill/README.rst index 06b4c948e2c79..34f7fa16725b0 100644 --- a/providers/papermill/README.rst +++ b/providers/papermill/README.rst @@ -50,19 +50,19 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.8.0`` ``papermill[all]`` ``>=2.6.0`` ``scrapbook[all]`` ``>=0.5.0`` ``ipykernel`` ``>=6.29.4`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``nbconvert`` ``>=7.16.1`` -========================================== ==================================================================== +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/papermill/docs/index.rst b/providers/papermill/docs/index.rst index 6bac256d17ac4..505def34f1702 100644 --- a/providers/papermill/docs/index.rst +++ b/providers/papermill/docs/index.rst @@ -97,19 +97,19 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.8.0`` ``papermill[all]`` ``>=2.6.0`` ``scrapbook[all]`` ``>=0.5.0`` ``ipykernel`` ``>=6.29.4`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``nbconvert`` ``>=7.16.1`` -========================================== ==================================================================== +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/papermill/pyproject.toml b/providers/papermill/pyproject.toml index 32ed9c96a91b9..37d6fb5ab2878 100644 --- a/providers/papermill/pyproject.toml +++ b/providers/papermill/pyproject.toml @@ -64,18 +64,9 @@ dependencies = [ "papermill[all]>=2.6.0", "scrapbook[all]>=0.5.0", "ipykernel>=6.29.4", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', "nbconvert>=7.16.1", ] diff --git a/providers/postgres/pyproject.toml b/providers/postgres/pyproject.toml index 10f5e3d018f2e..83b2b92f61053 100644 --- a/providers/postgres/pyproject.toml +++ b/providers/postgres/pyproject.toml @@ -80,18 +80,9 @@ dependencies = [ "apache-airflow-providers-openlineage" ] "pandas" = [ - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', ] "polars" = [ "polars>=1.26.0" diff --git a/providers/presto/README.rst b/providers/presto/README.rst index 855b57aa819dc..e9675edfae590 100644 --- a/providers/presto/README.rst +++ b/providers/presto/README.rst @@ -50,19 +50,19 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` ``presto-python-client`` ``>=0.8.4`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``psycopg2-binary`` ``>=2.9.9; python_version < "3.13"`` ``psycopg2-binary`` ``>=2.9.10; python_version >= "3.13"`` -========================================== ==================================================================== +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/presto/docs/index.rst b/providers/presto/docs/index.rst index a455b2eb8fe09..8d7ca4eb5ecc8 100644 --- a/providers/presto/docs/index.rst +++ b/providers/presto/docs/index.rst @@ -98,19 +98,19 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` ``presto-python-client`` ``>=0.8.4`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``psycopg2-binary`` ``>=2.9.9; python_version < "3.13"`` ``psycopg2-binary`` ``>=2.9.10; python_version >= "3.13"`` -========================================== ==================================================================== +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/presto/pyproject.toml b/providers/presto/pyproject.toml index 5ca2ef6590a5f..a00507c407e6d 100644 --- a/providers/presto/pyproject.toml +++ b/providers/presto/pyproject.toml @@ -63,18 +63,9 @@ dependencies = [ "apache-airflow-providers-common-compat>=1.12.0", "apache-airflow-providers-common-sql>=1.32.0", "presto-python-client>=0.8.4", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', 'psycopg2-binary>=2.9.9; python_version < "3.13"', 'psycopg2-binary>=2.9.10; python_version >= "3.13"', ] diff --git a/providers/salesforce/README.rst b/providers/salesforce/README.rst index 753dd43cefebc..7dfd1e243098c 100644 --- a/providers/salesforce/README.rst +++ b/providers/salesforce/README.rst @@ -50,16 +50,16 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.10.1`` ``simple-salesforce`` ``>=1.0.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` -========================================== ==================================================================== +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/salesforce/docs/index.rst b/providers/salesforce/docs/index.rst index 199bb4268241a..cd7949bf0e77e 100644 --- a/providers/salesforce/docs/index.rst +++ b/providers/salesforce/docs/index.rst @@ -97,16 +97,16 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.10.1`` ``simple-salesforce`` ``>=1.0.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` -========================================== ==================================================================== +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/salesforce/pyproject.toml b/providers/salesforce/pyproject.toml index c5dd164ed4ce9..d16ff50b679ef 100644 --- a/providers/salesforce/pyproject.toml +++ b/providers/salesforce/pyproject.toml @@ -62,18 +62,9 @@ dependencies = [ "apache-airflow>=2.11.0", "apache-airflow-providers-common-compat>=1.10.1", "simple-salesforce>=1.0.0", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', ] [dependency-groups] diff --git a/providers/snowflake/README.rst b/providers/snowflake/README.rst index 3ce0894f6fec6..64637b5c9a0e7 100644 --- a/providers/snowflake/README.rst +++ b/providers/snowflake/README.rst @@ -56,9 +56,9 @@ PIP package Version required ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``pyarrow`` ``>=16.1.0; python_version < "3.13"`` ``pyarrow`` ``>=18.0.0; python_version >= "3.13" and python_version < "3.14"`` ``pyarrow`` ``>=22.0.0; python_version >= "3.14"`` diff --git a/providers/snowflake/docs/index.rst b/providers/snowflake/docs/index.rst index b18e0ef4c4a5f..01ee95f4787c0 100644 --- a/providers/snowflake/docs/index.rst +++ b/providers/snowflake/docs/index.rst @@ -105,9 +105,9 @@ PIP package Version required ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``pyarrow`` ``>=16.1.0; python_version < "3.13"`` ``pyarrow`` ``>=18.0.0; python_version >= "3.13" and python_version < "3.14"`` ``pyarrow`` ``>=22.0.0; python_version >= "3.14"`` diff --git a/providers/snowflake/pyproject.toml b/providers/snowflake/pyproject.toml index fb2fc3dc99376..e610eebde8d3b 100644 --- a/providers/snowflake/pyproject.toml +++ b/providers/snowflake/pyproject.toml @@ -62,18 +62,9 @@ dependencies = [ "apache-airflow>=2.11.0", "apache-airflow-providers-common-compat>=1.12.0", "apache-airflow-providers-common-sql>=1.32.0", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', "pyarrow>=16.1.0; python_version < '3.13'", "pyarrow>=18.0.0; python_version >= '3.13' and python_version < '3.14'", "pyarrow>=22.0.0; python_version >= '3.14'", diff --git a/providers/trino/README.rst b/providers/trino/README.rst index 584d897d6b65e..cf55d356ad71c 100644 --- a/providers/trino/README.rst +++ b/providers/trino/README.rst @@ -50,17 +50,17 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``trino`` ``>=0.319.0`` -========================================== ==================================================================== +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/trino/docs/index.rst b/providers/trino/docs/index.rst index 877a7c6061d47..52841e1d0bad9 100644 --- a/providers/trino/docs/index.rst +++ b/providers/trino/docs/index.rst @@ -98,17 +98,17 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.12.0`` ``apache-airflow-providers-common-sql`` ``>=1.32.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` ``trino`` ``>=0.319.0`` -========================================== ==================================================================== +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/trino/pyproject.toml b/providers/trino/pyproject.toml index 1a3b384b2cd87..f550d172bcc72 100644 --- a/providers/trino/pyproject.toml +++ b/providers/trino/pyproject.toml @@ -62,18 +62,9 @@ dependencies = [ "apache-airflow>=2.11.0", "apache-airflow-providers-common-compat>=1.12.0", "apache-airflow-providers-common-sql>=1.32.0", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', "trino>=0.319.0", ] diff --git a/providers/weaviate/README.rst b/providers/weaviate/README.rst index cacb91c2e86de..1fc5c90d18f94 100644 --- a/providers/weaviate/README.rst +++ b/providers/weaviate/README.rst @@ -50,17 +50,17 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13,3.14 Requirements ------------ -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.8.0`` ``httpx`` ``>=0.25.0`` ``weaviate-client`` ``!=4.16.7,>=4.4.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` -========================================== ==================================================================== +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/weaviate/docs/index.rst b/providers/weaviate/docs/index.rst index 023f0cb46d833..591be021d8820 100644 --- a/providers/weaviate/docs/index.rst +++ b/providers/weaviate/docs/index.rst @@ -99,17 +99,17 @@ Requirements The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``. -========================================== ==================================================================== +========================================== ================================================================= PIP package Version required -========================================== ==================================================================== +========================================== ================================================================= ``apache-airflow`` ``>=2.11.0`` ``apache-airflow-providers-common-compat`` ``>=1.8.0`` ``httpx`` ``>=0.25.0`` ``weaviate-client`` ``!=4.16.7,>=4.4.0`` -``pandas`` ``>=2.1.2,<3; python_version < "3.13"`` -``pandas`` ``>=2.2.3,<3; python_version >= "3.13" and python_version < "3.14"`` -``pandas`` ``>=2.3.3,<3; python_version >= "3.14"`` -========================================== ==================================================================== +``pandas`` ``>=2.1.2; python_version < "3.13"`` +``pandas`` ``>=2.2.3; python_version >= "3.13" and python_version < "3.14"`` +``pandas`` ``>=2.3.3; python_version >= "3.14"`` +========================================== ================================================================= Cross provider package dependencies ----------------------------------- diff --git a/providers/weaviate/pyproject.toml b/providers/weaviate/pyproject.toml index b17680d9675c9..5800e8fb50955 100644 --- a/providers/weaviate/pyproject.toml +++ b/providers/weaviate/pyproject.toml @@ -63,18 +63,9 @@ dependencies = [ "apache-airflow-providers-common-compat>=1.8.0", "httpx>=0.25.0", "weaviate-client>=4.4.0,!=4.16.7", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.1.2,<3; python_version <"3.13"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.2.3,<3; python_version >="3.13" and python_version <"3.14"', - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - 'pandas>=2.3.3,<3; python_version >="3.14"', + 'pandas>=2.1.2; python_version <"3.13"', + 'pandas>=2.2.3; python_version >="3.13" and python_version <"3.14"', + 'pandas>=2.3.3; python_version >="3.14"', ] [dependency-groups] diff --git a/task-sdk/pyproject.toml b/task-sdk/pyproject.toml index 2810a0f836cff..b3e57181823eb 100644 --- a/task-sdk/pyproject.toml +++ b/task-sdk/pyproject.toml @@ -224,18 +224,9 @@ dev = [ "apache-airflow-providers-common-sql", "apache-airflow-providers-standard", "apache-airflow-devel-common", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - "pandas>=2.1.2,<3; python_version <\"3.13\"", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - "pandas>=2.2.3,<3; python_version >=\"3.13\" and python_version <\"3.14\"", - # pandas 3 changes the dtypes a DataFrame reads back with, so DataFrame XComs do not - # round trip; capped until pandas 3 support lands. - # Tracked at https://github.com/apache/airflow/pull/70558 - "pandas>=2.3.3,<3; python_version >=\"3.14\"" + "pandas>=2.1.2; python_version <\"3.13\"", + "pandas>=2.2.3; python_version >=\"3.13\" and python_version <\"3.14\"", + "pandas>=2.3.3; python_version >=\"3.14\"" ] docs = [ "apache-airflow-devel-common[docs]", diff --git a/task-sdk/src/airflow/sdk/serde/serializers/pandas.py b/task-sdk/src/airflow/sdk/serde/serializers/pandas.py index a3562f5af4701..72a2e818a1132 100644 --- a/task-sdk/src/airflow/sdk/serde/serializers/pandas.py +++ b/task-sdk/src/airflow/sdk/serde/serializers/pandas.py @@ -22,49 +22,11 @@ from airflow.sdk.module_loading import qualname # lazy loading for performance reasons -# -# ``pandas.core.frame.DataFrame`` is what a DataFrame qualifies as under pandas 2. Under -# pandas 3 the public classes moved to the ``pandas`` namespace, so the same object -# qualifies as ``pandas.DataFrame``. That name is registered too, but *only* so that the -# registry dispatches here and this module can refuse it with an actionable message -- -# without it the caller gets serde's generic "cannot serialize object of type" instead. -# See ``_reject_pandas_3`` below. serializers = [ "pandas.core.frame.DataFrame", - "pandas.DataFrame", ] deserializers = serializers -# First pandas major version whose DataFrame XComs this version of Airflow does not support. -_FIRST_UNSUPPORTED_PANDAS_MAJOR = 3 - - -def _reject_pandas_3(pd) -> None: - """ - Refuse a DataFrame XCom when the installed pandas is 3 or newer. - - pandas is an optional dependency, so the ``<3`` constraint Airflow declares cannot be - relied on: a deployment may install pandas 3 directly, or pull it in through another - package. This is the runtime half of that constraint. - - The failure is deliberate rather than best-effort. Under pandas 3 a DataFrame round - trips through parquet with different dtypes than under pandas 2 -- an ``object`` column - comes back as ``str`` and missing values as ``nan`` rather than ``None`` -- so silently - accepting the value would hand tasks data that differs from what was written, with no - signal. Failing on the write is the louder and more recoverable half of that. - """ - major = int(pd.__version__.split(".")[0]) - if major < _FIRST_UNSUPPORTED_PANDAS_MAJOR: - return - raise RuntimeError( - f"DataFrame XComs are not supported with pandas {pd.__version__}: this version of " - f"Airflow supports pandas < {_FIRST_UNSUPPORTED_PANDAS_MAJOR} for XCom serialization. " - "Pin pandas < 3 in the environment that runs your tasks, or avoid passing DataFrames " - "through XCom. Moving to pandas 3 is a deliberate migration -- its DataFrames read " - "back with different dtypes -- and Airflow will enable it in a future release." - ) - - if TYPE_CHECKING: import pandas as pd @@ -81,8 +43,6 @@ def serialize(o: object) -> tuple[U, str, int, bool]: if not isinstance(o, pd.DataFrame): return "", "", 0, False - _reject_pandas_3(pd) - # for now, we *always* serialize into in memory # until we have a generic backend that manages # sinks @@ -102,11 +62,6 @@ def deserialize(cls: type, version: int, data: object) -> pd.DataFrame: if cls is not pd.DataFrame: raise TypeError(f"do not know how to deserialize {qualname(cls)}") - # Reading is refused too, not just writing: a payload written under pandas 2 comes back - # with pandas 3 dtypes, so the task would silently receive different data than was - # pushed. An error is the safer outcome. - _reject_pandas_3(pd) - if not isinstance(data, str): raise TypeError(f"serialized {qualname(cls)} has wrong data type {type(data)}") diff --git a/task-sdk/tests/task_sdk/serde/test_serializers.py b/task-sdk/tests/task_sdk/serde/test_serializers.py index 8ef21272194e8..7e2ade64ebdcf 100644 --- a/task-sdk/tests/task_sdk/serde/test_serializers.py +++ b/task-sdk/tests/task_sdk/serde/test_serializers.py @@ -286,34 +286,6 @@ def test_pandas_serializers(self): assert serialize(123) == ("", "", 0, False) - def test_pandas_3_dataframe_name_is_registered(self): - """The pandas 3 qualname must be registered, or the guard below is unreachable. - - Under pandas 3 a DataFrame qualifies as ``pandas.DataFrame``. serde dispatches on - that name, so if it is absent from the registry the caller gets the generic - "cannot serialize object of type" from serde and never reaches this module. - """ - from airflow.sdk.serde.serializers.pandas import deserializers, serializers - - assert "pandas.DataFrame" in serializers - assert "pandas.core.frame.DataFrame" in deserializers - - @pytest.mark.parametrize("version", ["3.0.0", "3.0.5", "4.1.2"]) - def test_pandas_3_dataframe_xcom_is_refused(self, monkeypatch, version): - """pandas >= 3 must fail loudly on both write and read, not round trip silently.""" - import pandas as pd - - from airflow.sdk.serde.serializers import pandas as pandas_serializer - - monkeypatch.setattr(pd, "__version__", version) - df = pd.DataFrame(data={"col1": [1, 2], "col2": [3, 4]}) - - with pytest.raises(RuntimeError, match=rf"DataFrame XComs are not supported with pandas {version}"): - pandas_serializer.serialize(df) - - with pytest.raises(RuntimeError, match=r"DataFrame XComs are not supported with pandas"): - pandas_serializer.deserialize(pd.DataFrame, 1, "") - @pytest.mark.parametrize( ("klass", "version", "data", "msg"), [ diff --git a/uv.lock b/uv.lock index b339636011f8e..3a1cccb284f23 100644 --- a/uv.lock +++ b/uv.lock @@ -3162,9 +3162,9 @@ requires-dist = [ { name = "jsonpath-ng", specifier = ">=1.5.3" }, { name = "lxml", marker = "python_full_version < '3.13' and extra == 'python3-saml'", specifier = ">=6.0.0" }, { name = "marshmallow", specifier = ">=3" }, - { name = "pandas", marker = "python_full_version == '3.13.*' and extra == 'pandas'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version < '3.13' and extra == 'pandas'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14' and extra == 'pandas'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version == '3.13.*' and extra == 'pandas'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version < '3.13' and extra == 'pandas'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version >= '3.14' and extra == 'pandas'", specifier = ">=2.3.3" }, { name = "pyathena", specifier = ">=3.10.0" }, { name = "python3-saml", marker = "python_full_version < '3.13' and extra == 'python3-saml'", specifier = ">=1.16.0" }, { name = "redshift-connector", specifier = ">=2.1.3" }, @@ -3418,9 +3418,9 @@ requires-dist = [ { name = "fastavro", marker = "python_full_version >= '3.14'", specifier = ">=1.12.1" }, { name = "hdfs", extras = ["avro", "dataframe", "kerberos"], marker = "python_full_version < '3.12'", specifier = ">=2.5.4" }, { name = "hdfs", extras = ["avro", "dataframe", "kerberos"], marker = "python_full_version >= '3.12'", specifier = ">=2.7.3" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, ] [package.metadata.requires-dev] @@ -3508,9 +3508,9 @@ requires-dist = [ { name = "hmsclient", specifier = ">=0.1.0" }, { name = "jmespath", specifier = ">=0.7.0" }, { name = "kerberos", marker = "sys_platform != 'win32' and extra == 'gssapi'", specifier = ">=1.3.0" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "pyhive", extras = ["hive-pure-sasl"], specifier = ">=0.7.0" }, { name = "sqlalchemy", marker = "extra == 'sqlalchemy'", specifier = ">=1.4.54" }, { name = "winkerberos", marker = "sys_platform == 'win32' and extra == 'gssapi'", specifier = ">=0.7.0" }, @@ -4654,9 +4654,9 @@ requires-dist = [ { name = "datafusion", marker = "extra == 'datafusion'", specifier = ">=50.0.0,<52.0.0" }, { name = "methodtools", specifier = ">=0.4.7" }, { name = "more-itertools", specifier = ">=9.0.0" }, - { name = "pandas", marker = "python_full_version == '3.13.*' and extra == 'pandas'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14' and extra == 'pandas'", specifier = ">=2.3.3,<3" }, - { name = "pandas", extras = ["sql-other"], marker = "python_full_version < '3.13' and extra == 'pandas'", specifier = ">=2.1.2,<3" }, + { name = "pandas", marker = "python_full_version == '3.13.*' and extra == 'pandas'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14' and extra == 'pandas'", specifier = ">=2.3.3" }, + { name = "pandas", extras = ["sql-other"], marker = "python_full_version < '3.13' and extra == 'pandas'", specifier = ">=2.1.2" }, { name = "polars", marker = "extra == 'polars'", specifier = ">=1.26.0" }, { name = "pyiceberg-core", marker = "extra == 'pyiceberg-core'", specifier = ">=0.8.0" }, { name = "sqlalchemy", marker = "extra == 'sqlalchemy'", specifier = ">=1.4.54" }, @@ -4763,9 +4763,9 @@ requires-dist = [ { name = "fastavro", marker = "python_full_version >= '3.14' and extra == 'avro'", specifier = ">=1.12.1" }, { name = "fastavro", marker = "python_full_version < '3.14' and extra == 'avro'", specifier = ">=1.9.0" }, { name = "mergedeep", specifier = ">=1.3.4" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "pyarrow", marker = "python_full_version < '3.13'", specifier = ">=16.1.0" }, { name = "pyarrow", marker = "python_full_version == '3.13.*'", specifier = ">=18.0.0" }, { name = "pyarrow", marker = "python_full_version >= '3.14'", specifier = ">=22.0.0" }, @@ -5126,9 +5126,9 @@ requires-dist = [ { name = "apache-airflow", editable = "." }, { name = "apache-airflow-providers-common-compat", editable = "providers/common/compat" }, { name = "apache-airflow-providers-common-sql", editable = "providers/common/sql" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "pyexasol", specifier = ">=0.26.0" }, { name = "sqlalchemy", marker = "extra == 'sqlalchemy'", specifier = ">=1.4.54" }, ] @@ -5642,9 +5642,9 @@ requires-dist = [ { name = "httpx", specifier = ">=0.25.0" }, { name = "immutabledict", specifier = ">=4.2.0" }, { name = "looker-sdk", specifier = ">=22.4.0,!=24.18.0" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "pandas-gbq", specifier = ">=0.7.0" }, { name = "plyvel", marker = "python_full_version < '3.13' and extra == 'leveldb'", specifier = ">=1.5.1" }, { name = "proto-plus", specifier = ">=1.26.0" }, @@ -6962,9 +6962,9 @@ requires-dist = [ { name = "apache-airflow-providers-common-compat", editable = "providers/common/compat" }, { name = "ipykernel", specifier = ">=6.29.4" }, { name = "nbconvert", specifier = ">=7.16.1" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "papermill", extras = ["all"], specifier = ">=2.6.0" }, { name = "scrapbook", extras = ["all"], specifier = ">=0.5.0" }, ] @@ -7123,9 +7123,9 @@ requires-dist = [ { name = "apache-airflow-providers-microsoft-azure", marker = "extra == 'microsoft-azure'", editable = "providers/microsoft/azure" }, { name = "apache-airflow-providers-openlineage", marker = "extra == 'openlineage'", editable = "providers/openlineage" }, { name = "asyncpg", specifier = ">=0.30.0" }, - { name = "pandas", marker = "python_full_version == '3.13.*' and extra == 'pandas'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version < '3.13' and extra == 'pandas'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14' and extra == 'pandas'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version == '3.13.*' and extra == 'pandas'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version < '3.13' and extra == 'pandas'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version >= '3.14' and extra == 'pandas'", specifier = ">=2.3.3" }, { name = "polars", marker = "extra == 'polars'", specifier = ">=1.26.0" }, { name = "psycopg", extras = ["binary"], marker = "python_full_version >= '3.14' and extra == 'psycopg'", specifier = ">=3.3.3" }, { name = "psycopg", extras = ["binary"], marker = "python_full_version < '3.14' and extra == 'psycopg'", specifier = ">=3.2.9" }, @@ -7193,9 +7193,9 @@ requires-dist = [ { name = "apache-airflow-providers-common-compat", editable = "providers/common/compat" }, { name = "apache-airflow-providers-common-sql", editable = "providers/common/sql" }, { name = "apache-airflow-providers-google", marker = "extra == 'google'", editable = "providers/google" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "presto-python-client", specifier = ">=0.8.4" }, { name = "psycopg2-binary", marker = "python_full_version < '3.13'", specifier = ">=2.9.9" }, { name = "psycopg2-binary", marker = "python_full_version >= '3.13'", specifier = ">=2.9.10" }, @@ -7326,9 +7326,9 @@ docs = [ requires-dist = [ { name = "apache-airflow", editable = "." }, { name = "apache-airflow-providers-common-compat", editable = "providers/common/compat" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "simple-salesforce", specifier = ">=1.0.0" }, ] @@ -7691,9 +7691,9 @@ requires-dist = [ { name = "apache-airflow-providers-common-sql", editable = "providers/common/sql" }, { name = "apache-airflow-providers-microsoft-azure", marker = "extra == 'microsoft-azure'", editable = "providers/microsoft/azure" }, { name = "apache-airflow-providers-openlineage", marker = "extra == 'openlineage'", editable = "providers/openlineage" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "pyarrow", marker = "python_full_version < '3.13'", specifier = ">=16.1.0" }, { name = "pyarrow", marker = "python_full_version == '3.13.*'", specifier = ">=18.0.0" }, { name = "pyarrow", marker = "python_full_version >= '3.14'", specifier = ">=22.0.0" }, @@ -8026,9 +8026,9 @@ requires-dist = [ { name = "apache-airflow-providers-common-sql", editable = "providers/common/sql" }, { name = "apache-airflow-providers-google", marker = "extra == 'google'", editable = "providers/google" }, { name = "apache-airflow-providers-openlineage", marker = "extra == 'openlineage'", editable = "providers/openlineage" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "trino", specifier = ">=0.319.0" }, ] provides-extras = ["google", "openlineage"] @@ -8164,9 +8164,9 @@ requires-dist = [ { name = "apache-airflow", editable = "." }, { name = "apache-airflow-providers-common-compat", editable = "providers/common/compat" }, { name = "httpx", specifier = ">=0.25.0" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, { name = "weaviate-client", specifier = ">=4.4.0,!=4.16.7" }, ] @@ -8937,9 +8937,9 @@ dev = [ { name = "apache-airflow-devel-common", editable = "devel-common" }, { name = "apache-airflow-providers-common-sql", editable = "providers/common/sql" }, { name = "apache-airflow-providers-standard", editable = "providers/standard" }, - { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2,<3" }, - { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3,<3" }, - { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3,<3" }, + { name = "pandas", marker = "python_full_version < '3.13'", specifier = ">=2.1.2" }, + { name = "pandas", marker = "python_full_version == '3.13.*'", specifier = ">=2.2.3" }, + { name = "pandas", marker = "python_full_version >= '3.14'", specifier = ">=2.3.3" }, ] docs = [{ name = "apache-airflow-devel-common", extras = ["docs"], editable = "devel-common" }] mypy = [{ name = "apache-airflow-devel-common", extras = ["mypy"], editable = "devel-common" }]