From 365d37a04edf03e11a8826455a498800a8528efc Mon Sep 17 00:00:00 2001 From: Rahul Vats Date: Tue, 4 Aug 2026 19:07:47 +0530 Subject: [PATCH] Revert "Limit pandas to < 3 for DataFrame XComs (#70791)" This reverts commit 415cb70f87784cc074d6db7844a07579587b5f0f. --- .../newsfragments/70791.significant.rst | 35 -------- providers/amazon/docs/index.rst | 8 +- 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/docs/index.rst | 8 +- 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/docs/index.rst | 8 +- 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 +++++++++---------- 44 files changed, 228 insertions(+), 471 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/docs/index.rst b/providers/amazon/docs/index.rst index 73635c6f4cebd..7dc10574bd41c 100644 --- a/providers/amazon/docs/index.rst +++ b/providers/amazon/docs/index.rst @@ -171,9 +171,9 @@ Install them when installing from PyPI. For example: pip install apache-airflow-providers-amazon[aiobotocore] -==================== ===================================================================================================================================================================== +==================== ============================================================================================================================================================ Extra Dependencies -==================== ===================================================================================================================================================================== +==================== ============================================================================================================================================================ ``aiobotocore`` ``aiobotocore>=3.0.0`` ``cncf.kubernetes`` ``apache-airflow-providers-cncf-kubernetes>=7.2.0`` ``s3fs`` ``s3fs>=2023.10.0`` @@ -186,14 +186,14 @@ Extra Dependencies ``imap`` ``apache-airflow-providers-imap`` ``microsoft.azure`` ``apache-airflow-providers-microsoft-azure`` ``mongo`` ``apache-airflow-providers-mongo`` -``pandas`` ``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`` ``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`` ``salesforce`` ``apache-airflow-providers-salesforce`` ``ssh`` ``apache-airflow-providers-ssh`` ``standard`` ``apache-airflow-providers-standard`` ``common.messaging`` ``apache-airflow-providers-common-messaging>=2.0.0`` ``sqlalchemy`` ``sqlalchemy>=1.4.54`` -==================== ===================================================================================================================================================================== +==================== ============================================================================================================================================================ Downloading official packages ----------------------------- diff --git a/providers/amazon/pyproject.toml b/providers/amazon/pyproject.toml index a5d46203f5779..25d1d6320bc4c 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 f965b90f53b6c..500ea51e28cf2 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"`` +========================================== ================================================================== The changelog for the provider package can be found in the `changelog `_. diff --git a/providers/apache/hdfs/docs/index.rst b/providers/apache/hdfs/docs/index.rst index 8333ad6255c8d..d0bf84cd7407d 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"`` +========================================== ================================================================== Downloading official packages ----------------------------- diff --git a/providers/apache/hdfs/pyproject.toml b/providers/apache/hdfs/pyproject.toml index 398eedb8f7099..d309ff8fed80c 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 1f20df918edf5..e7e89ad52f7da 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`` -========================================== ==================================================================== +========================================== ================================================================= Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/apache/hive/docs/index.rst b/providers/apache/hive/docs/index.rst index b19c2909172b8..8008c3b8acc5f 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`` -========================================== ==================================================================== +========================================== ================================================================= Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/apache/hive/pyproject.toml b/providers/apache/hive/pyproject.toml index 8565a499001ef..c7b62d833bb36 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/docs/index.rst b/providers/common/sql/docs/index.rst index ff00456d28e48..ae215cc5a7022 100644 --- a/providers/common/sql/docs/index.rst +++ b/providers/common/sql/docs/index.rst @@ -141,10 +141,10 @@ Install them when installing from PyPI. For example: pip install apache-airflow-providers-common-sql[pandas] -================== ================================================================================================================================================================================ +================== ======================================================================================================================================================================= Extra Dependencies -================== ================================================================================================================================================================================ -``pandas`` ``pandas[sql-other]>=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`` ``pandas[sql-other]>=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`` ``polars`` ``polars>=1.26.0`` ``sqlalchemy`` ``sqlalchemy>=1.4.54`` @@ -152,7 +152,7 @@ Extra Dependencies ``datafusion`` ``datafusion>=50.0.0,<52.0.0`` ``pyiceberg-core`` ``pyiceberg-core>=0.8.0`` ``apache.iceberg`` ``apache-airflow-providers-apache-iceberg`` -================== ================================================================================================================================================================================ +================== ======================================================================================================================================================================= Downloading official packages ----------------------------- diff --git a/providers/common/sql/pyproject.toml b/providers/common/sql/pyproject.toml index b018c3cca45d4..184f0e10073c8 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 712ed795418b1..e51f00031c479 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"`` -========================================== ==================================================================== +========================================== ================================================================== Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/databricks/docs/index.rst b/providers/databricks/docs/index.rst index 75f80e9b4542a..67e283f16c8ef 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"`` -========================================== ==================================================================== +========================================== ================================================================== Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/databricks/pyproject.toml b/providers/databricks/pyproject.toml index 1c2a58f95ac24..36f94b8cd6eee 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 76470f4748039..70aba90425d70 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,<2`` -``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"`` +========================================== ================================================================= Optional dependencies ---------------------- diff --git a/providers/exasol/docs/index.rst b/providers/exasol/docs/index.rst index e15fc678b293a..d361cc38f9db5 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,<2`` -``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"`` +========================================== ================================================================= Optional dependencies --------------------- diff --git a/providers/exasol/pyproject.toml b/providers/exasol/pyproject.toml index 06bee594aa659..a994d8c4d43c5 100644 --- a/providers/exasol/pyproject.toml +++ b/providers/exasol/pyproject.toml @@ -65,18 +65,9 @@ dependencies = [ # Capped to 1.x: pyexasol 2.x ships stricter types that break the exasol hook. # Remove the cap after migrating; tracked at https://github.com/apache/airflow/issues/69123 "pyexasol>=0.26.0,<2", - # 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 bd1c048e1a7e1..015137fe2d6df 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`` @@ -125,9 +125,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"`` @@ -138,7 +138,7 @@ PIP package Version required ``tenacity`` ``>=8.3.0`` ``immutabledict`` ``>=4.2.0`` ``types-protobuf`` ``>=5.27.0,!=5.29.1.20250402`` -========================================== ==================================================================== +========================================== ================================================================== Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/google/docs/index.rst b/providers/google/docs/index.rst index 05c764f3c1cce..2863bdaaea8d3 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`` @@ -178,9 +178,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"`` @@ -191,7 +191,7 @@ PIP package Version required ``tenacity`` ``>=8.3.0`` ``immutabledict`` ``>=4.2.0`` ``types-protobuf`` ``>=5.27.0,!=5.29.1.20250402`` -========================================== ==================================================================== +========================================== ================================================================== Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/google/pyproject.toml b/providers/google/pyproject.toml index e750891904d1a..1e9a606d237e6 100644 --- a/providers/google/pyproject.toml +++ b/providers/google/pyproject.toml @@ -134,18 +134,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 f53de9e48e91b..6e7a189fa6e14 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`` -========================================== ==================================================================== +========================================== ================================================================= The changelog for the provider package can be found in the `changelog `_. diff --git a/providers/papermill/docs/index.rst b/providers/papermill/docs/index.rst index 84db1c1016f5c..4a00ba47673eb 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`` -========================================== ==================================================================== +========================================== ================================================================= Downloading official packages ----------------------------- diff --git a/providers/papermill/pyproject.toml b/providers/papermill/pyproject.toml index 8351b32b79944..cfe221235f792 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/docs/index.rst b/providers/postgres/docs/index.rst index afcb301214219..56e5152bdc8c4 100644 --- a/providers/postgres/docs/index.rst +++ b/providers/postgres/docs/index.rst @@ -143,18 +143,18 @@ Install them when installing from PyPI. For example: pip install apache-airflow-providers-postgres[amazon] -=================== ===================================================================================================================================================================== +=================== ============================================================================================================================================================ Extra Dependencies -=================== ===================================================================================================================================================================== +=================== ============================================================================================================================================================ ``amazon`` ``apache-airflow-providers-amazon>=2.6.0`` ``asyncpg`` ``asyncpg>=0.30.0`` ``microsoft.azure`` ``apache-airflow-providers-microsoft-azure>=12.8.0`` ``openlineage`` ``apache-airflow-providers-openlineage`` -``pandas`` ``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`` ``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`` ``psycopg2`` ``psycopg2-binary>=2.9.9; python_version < '3.13'``, ``psycopg2-binary>=2.9.10; python_version >= '3.13'`` ``sqlalchemy`` ``sqlalchemy>=1.4.54`` -=================== ===================================================================================================================================================================== +=================== ============================================================================================================================================================ Downloading official packages ----------------------------- diff --git a/providers/postgres/pyproject.toml b/providers/postgres/pyproject.toml index 583f29b2cdcfe..d95164ae27f7f 100644 --- a/providers/postgres/pyproject.toml +++ b/providers/postgres/pyproject.toml @@ -93,18 +93,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 4aea9bdc9490b..f9486643f1374 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"`` -========================================== ==================================================================== +========================================== ================================================================= Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/presto/docs/index.rst b/providers/presto/docs/index.rst index b990a5da459a0..65317d259a88f 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"`` -========================================== ==================================================================== +========================================== ================================================================= Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/presto/pyproject.toml b/providers/presto/pyproject.toml index c1fde9da0d943..cb1506fe164fb 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 ab5ca3e0a15b8..a6455cdb169b0 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"`` +========================================== ================================================================= The changelog for the provider package can be found in the `changelog `_. diff --git a/providers/salesforce/docs/index.rst b/providers/salesforce/docs/index.rst index 2fa5706cbe949..69ab6cdf6ca7f 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"`` +========================================== ================================================================= Downloading official packages ----------------------------- diff --git a/providers/salesforce/pyproject.toml b/providers/salesforce/pyproject.toml index 38780a67cc7ab..0908820c2f83c 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 680cb0d8cf374..628e771ed8fa5 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 1fb9aa7c2ec7a..793cbae42e0ac 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 5503d6e48cc3f..a8d8436290975 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 2575de229574b..59a497c0bb4e3 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`` -========================================== ==================================================================== +========================================== ================================================================= Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/trino/docs/index.rst b/providers/trino/docs/index.rst index aefcf7db66c98..079a0d94a50b1 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`` -========================================== ==================================================================== +========================================== ================================================================= Optional cross provider package dependencies -------------------------------------------- diff --git a/providers/trino/pyproject.toml b/providers/trino/pyproject.toml index 3f72a5f242b9d..b0e66c047c878 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 593ad8725db5e..d4198503860e0 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.0,!=4.16.7`` -``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"`` +========================================== ================================================================= The changelog for the provider package can be found in the `changelog `_. diff --git a/providers/weaviate/docs/index.rst b/providers/weaviate/docs/index.rst index 1b5e52e66506f..48b8b058e9199 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.0,!=4.16.7`` -``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"`` +========================================== ================================================================= Downloading official packages ----------------------------- diff --git a/providers/weaviate/pyproject.toml b/providers/weaviate/pyproject.toml index 7c1aaefe14aa4..02d1adfc0926b 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.16.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 6c540ee3bc9b6..bb8f7e2c3f4d4 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 3b52d8d26c2f2..9321fb52ec797 100644 --- a/uv.lock +++ b/uv.lock @@ -3180,9 +3180,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" }, @@ -3488,9 +3488,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] @@ -3578,9 +3578,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" }, @@ -4763,9 +4763,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" }, @@ -4877,9 +4877,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" }, @@ -5241,9 +5241,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,<2" }, { name = "sqlalchemy", marker = "extra == 'sqlalchemy'", specifier = ">=1.4.54" }, ] @@ -5759,9 +5759,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" }, @@ -7085,9 +7085,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" }, ] @@ -7253,9 +7253,9 @@ requires-dist = [ { name = "apache-airflow-providers-openlineage", marker = "extra == 'openlineage'", editable = "providers/openlineage" }, { name = "asyncpg", specifier = ">=0.30.0" }, { name = "asyncpg", marker = "extra == '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'", specifier = ">=3.2.9" }, { name = "psycopg", extras = ["binary"], marker = "python_full_version >= '3.14'", specifier = ">=3.3.3" }, @@ -7326,9 +7326,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" }, @@ -7459,9 +7459,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" }, ] @@ -7824,9 +7824,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" }, @@ -8159,9 +8159,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"] @@ -8297,9 +8297,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.16.0,!=4.16.7" }, ] @@ -9070,9 +9070,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" }]