This is an automated email from the ASF dual-hosted git repository.
shahar pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 929e6296eaf Remove deprecations from Weaviate Provider (#44745)
929e6296eaf is described below
commit 929e6296eaf037afb8c4930f0a96acd14aa5c2ee
Author: vatsrahul1001 <[email protected]>
AuthorDate: Sat Dec 7 13:30:23 2024 +0530
Remove deprecations from Weaviate Provider (#44745)
* remove weaviate deprecations
* update provider name in change log
* fix docs
---
.../src/airflow/providers/weaviate/CHANGELOG.rst | 9 ++++++++
.../providers/weaviate/operators/weaviate.py | 20 +++-------------
.../tests/weaviate/operators/test_weaviate.py | 27 ----------------------
3 files changed, 12 insertions(+), 44 deletions(-)
diff --git a/providers/src/airflow/providers/weaviate/CHANGELOG.rst
b/providers/src/airflow/providers/weaviate/CHANGELOG.rst
index 3565b781d22..c40d603d924 100644
--- a/providers/src/airflow/providers/weaviate/CHANGELOG.rst
+++ b/providers/src/airflow/providers/weaviate/CHANGELOG.rst
@@ -20,6 +20,15 @@
Changelog
---------
+main
+....
+
+.. warning::
+ All deprecated classes, parameters and features have been removed from the
weaviate provider package.
+ The following breaking changes were introduced:
+
+ * Removed deprecated ``input_json`` parameter from
``WeaviateIngestOperator``. Use ``input_data`` instead.
+
2.1.0
.....
diff --git a/providers/src/airflow/providers/weaviate/operators/weaviate.py
b/providers/src/airflow/providers/weaviate/operators/weaviate.py
index 22631f7c40c..dd97dc3c66b 100644
--- a/providers/src/airflow/providers/weaviate/operators/weaviate.py
+++ b/providers/src/airflow/providers/weaviate/operators/weaviate.py
@@ -17,12 +17,10 @@
from __future__ import annotations
-import warnings
from collections.abc import Sequence
from functools import cached_property
from typing import TYPE_CHECKING, Any
-from airflow.exceptions import AirflowProviderDeprecationWarning
from airflow.models import BaseOperator
from airflow.providers.weaviate.hooks.weaviate import WeaviateHook
@@ -51,11 +49,9 @@ class WeaviateIngestOperator(BaseOperator):
:param vector_col: key/column name in which the vectors are stored.
:param hook_params: Optional config params to be passed to the underlying
hook.
Should match the desired hook constructor params.
- :param input_json: (Deprecated) The JSON representing Weaviate data
objects to generate embeddings on
- (or provides custom vectors) and store them in the Weaviate class.
"""
- template_fields: Sequence[str] = ("input_json", "input_data")
+ template_fields: Sequence[str] = ("input_data",)
def __init__(
self,
@@ -66,29 +62,19 @@ class WeaviateIngestOperator(BaseOperator):
uuid_column: str = "id",
tenant: str | None = None,
hook_params: dict | None = None,
- input_json: list[dict[str, Any]] | pd.DataFrame | None = None,
**kwargs: Any,
) -> None:
super().__init__(**kwargs)
self.collection_name = collection_name
self.conn_id = conn_id
self.vector_col = vector_col
- self.input_json = input_json
self.uuid_column = uuid_column
self.tenant = tenant
self.input_data = input_data
self.hook_params = hook_params or {}
- if (self.input_data is None) and (input_json is not None):
- warnings.warn(
- "Passing 'input_json' to WeaviateIngestOperator is deprecated
and"
- " you should use 'input_data' instead",
- AirflowProviderDeprecationWarning,
- stacklevel=2,
- )
- self.input_data = input_json
- elif self.input_data is None and input_json is None:
- raise TypeError("Either input_json or input_data is required")
+ if self.input_data is None:
+ raise TypeError("input_data is required")
@cached_property
def hook(self) -> WeaviateHook:
diff --git a/providers/tests/weaviate/operators/test_weaviate.py
b/providers/tests/weaviate/operators/test_weaviate.py
index 8060fdf0231..a90c1c53805 100644
--- a/providers/tests/weaviate/operators/test_weaviate.py
+++ b/providers/tests/weaviate/operators/test_weaviate.py
@@ -20,7 +20,6 @@ from unittest.mock import MagicMock, patch
import pytest
-from airflow.exceptions import AirflowProviderDeprecationWarning
from airflow.utils.task_instance_session import
set_current_task_instance_session
pytest.importorskip("weaviate")
@@ -47,30 +46,6 @@ class TestWeaviateIngestOperator:
assert operator.input_data == [{"data": "sample_data"}]
assert operator.hook_params == {}
-
@patch("airflow.providers.weaviate.operators.weaviate.WeaviateIngestOperator.log")
- def test_execute_with_input_json(self, mock_log, operator):
- with pytest.warns(
- AirflowProviderDeprecationWarning,
- match="Passing 'input_json' to WeaviateIngestOperator is
deprecated and you should use 'input_data' instead",
- ):
- operator = WeaviateIngestOperator(
- task_id="weaviate_task",
- conn_id="weaviate_conn",
- collection_name="my_collection",
- input_json=[{"data": "sample_data"}],
- )
- operator.hook.batch_data = MagicMock()
-
- operator.execute(context=None)
-
- operator.hook.batch_data.assert_called_once_with(
- collection_name="my_collection",
- data=[{"data": "sample_data"}],
- vector_col="Vector",
- uuid_col="id",
- )
- mock_log.debug.assert_called_once_with("Input data: %s", [{"data":
"sample_data"}])
-
@patch("airflow.providers.weaviate.operators.weaviate.WeaviateIngestOperator.log")
def test_execute_with_input_data(self, mock_log, operator):
operator.hook.batch_data = MagicMock()
@@ -94,12 +69,10 @@ class TestWeaviateIngestOperator:
task_id="task-id",
conn_id="weaviate_conn",
collection_name="my_collection",
- input_json="{{ dag.dag_id }}",
input_data="{{ dag.dag_id }}",
)
ti.render_templates()
- assert dag_id == ti.task.input_json
assert dag_id == ti.task.input_data
@pytest.mark.db_test