This is an automated email from the ASF dual-hosted git repository.

potiuk 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 1fd702e5e5 Remove `PrestoToSlackOperator` (#25425)
1fd702e5e5 is described below

commit 1fd702e5e55cabb40fe7e480bc47e70d9a036944
Author: eladkal <[email protected]>
AuthorDate: Tue Aug 2 20:40:34 2022 +0300

    Remove `PrestoToSlackOperator` (#25425)
    
    Since we already going to release major version of Presto provider lets 
also remove deprecated operator
---
 airflow/providers/presto/CHANGELOG.rst             |   2 +
 airflow/providers/presto/provider.yaml             |   4 -
 .../providers/presto/transfers/presto_to_slack.py  |  96 -------------------
 docs/apache-airflow-providers-presto/index.rst     |   6 --
 .../operators/transfer/presto_to_slack.rst         |  38 --------
 generated/provider_dependencies.json               |   3 +-
 .../presto/transfers/test_presto_to_slack.py       | 105 ---------------------
 .../providers/presto/example_presto_to_slack.py    |  54 -----------
 8 files changed, 3 insertions(+), 305 deletions(-)

diff --git a/airflow/providers/presto/CHANGELOG.rst 
b/airflow/providers/presto/CHANGELOG.rst
index 1d7af0a87e..125bf57f4b 100644
--- a/airflow/providers/presto/CHANGELOG.rst
+++ b/airflow/providers/presto/CHANGELOG.rst
@@ -30,6 +30,8 @@ Breaking changes
 Deprecated ``hql`` parameter has been removed in ``get_records``, 
``get_first``, ``get_pandas_df`` and ``run``
 methods of the ``PrestoHook``.
 
+Remove ``PrestoToSlackOperator`` in favor of Slack provider 
``SqlToSlackOperator``.
+
 3.1.0
 .....
 
diff --git a/airflow/providers/presto/provider.yaml 
b/airflow/providers/presto/provider.yaml
index 3294f1cc75..b4279bef00 100644
--- a/airflow/providers/presto/provider.yaml
+++ b/airflow/providers/presto/provider.yaml
@@ -58,10 +58,6 @@ transfers:
     how-to-guide: 
/docs/apache-airflow-providers-presto/operators/transfer/gcs_to_presto.rst
     python-module: airflow.providers.presto.transfers.gcs_to_presto
 
-  - source-integration-name: Presto
-    target-integration-name: Slack
-    how-to-guide: 
/docs/apache-airflow-providers-presto/operators/transfer/presto_to_slack.rst
-    python-module: airflow.providers.presto.transfers.presto_to_slack
 
 connection-types:
   - hook-class-name: airflow.providers.presto.hooks.presto.PrestoHook
diff --git a/airflow/providers/presto/transfers/presto_to_slack.py 
b/airflow/providers/presto/transfers/presto_to_slack.py
deleted file mode 100644
index bcf2c3177a..0000000000
--- a/airflow/providers/presto/transfers/presto_to_slack.py
+++ /dev/null
@@ -1,96 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-import warnings
-from typing import Iterable, Mapping, Optional, Sequence, Union
-
-from airflow.providers.slack.transfers.sql_to_slack import SqlToSlackOperator
-
-
-class PrestoToSlackOperator(SqlToSlackOperator):
-    """
-    Executes a single SQL statement in Presto and sends the results to Slack. 
The results of the query are
-    rendered into the 'slack_message' parameter as a Pandas dataframe using a 
JINJA variable called '{{
-    results_df }}'. The 'results_df' variable name can be changed by 
specifying a different
-    'results_df_name' parameter. The Tabulate library is added to the JINJA 
environment as a filter to
-    allow the dataframe to be rendered nicely. For example, set 
'slack_message' to {{ results_df |
-    tabulate(tablefmt="pretty", headers="keys") }} to send the results to 
Slack as an ascii rendered table.
-
-    .. seealso::
-        For more information on how to use this operator, take a look at the 
guide:
-        :ref:`howto/operator:PrestoToSlackOperator`
-
-    :param sql: The SQL statement to execute on Presto (templated)
-    :param slack_message: The templated Slack message to send with the data 
returned from Presto.
-        You can use the default JINJA variable {{ results_df }} to access the 
pandas dataframe containing the
-        SQL results
-    :param presto_conn_id: destination presto connection
-    :param slack_conn_id: The connection id for Slack
-    :param results_df_name: The name of the JINJA template's dataframe 
variable, default is 'results_df'
-    :param parameters: The parameters to pass to the SQL query
-    :param slack_token: The token to use to authenticate to Slack. If this is 
not provided, the
-        'webhook_token' attribute needs to be specified in the 'Extra' JSON 
field against the slack_conn_id
-    :param slack_channel: The channel to send message. Override default from 
Slack connection.
-    """
-
-    template_fields: Sequence[str] = ('sql', 'slack_message', 'slack_channel')
-    template_ext: Sequence[str] = ('.sql', '.jinja', '.j2')
-    template_fields_renderers = {"sql": "sql", "slack_message": "jinja"}
-    times_rendered = 0
-
-    def __init__(
-        self,
-        *,
-        sql: str,
-        slack_message: str,
-        presto_conn_id: str = 'presto_default',
-        slack_conn_id: str = 'slack_default',
-        results_df_name: str = 'results_df',
-        parameters: Optional[Union[Iterable, Mapping]] = None,
-        slack_token: Optional[str] = None,
-        slack_channel: Optional[str] = None,
-        **kwargs,
-    ) -> None:
-        self.presto_conn_id = presto_conn_id
-        self.sql = sql
-        self.parameters = parameters
-        self.slack_conn_id = slack_conn_id
-        self.slack_token = slack_token
-        self.slack_message = slack_message
-        self.results_df_name = results_df_name
-        self.slack_channel = slack_channel
-
-        warnings.warn(
-            """
-            PrestoToSlackOperator is deprecated.
-            Please use 
`airflow.providers.slack.transfers.sql_to_slack.SqlToSlackOperator`.
-            """,
-            DeprecationWarning,
-            stacklevel=2,
-        )
-
-        super().__init__(
-            sql=self.sql,
-            sql_conn_id=self.presto_conn_id,
-            slack_conn_id=self.slack_conn_id,
-            slack_webhook_token=self.slack_token,
-            slack_message=self.slack_message,
-            slack_channel=self.slack_channel,
-            results_df_name=self.results_df_name,
-            parameters=self.parameters,
-            **kwargs,
-        )
diff --git a/docs/apache-airflow-providers-presto/index.rst 
b/docs/apache-airflow-providers-presto/index.rst
index f1f6188b6a..33b748bf4c 100644
--- a/docs/apache-airflow-providers-presto/index.rst
+++ b/docs/apache-airflow-providers-presto/index.rst
@@ -28,12 +28,6 @@ Content
 
     PrestoTransferOperator types <operators/transfer/gcs_to_presto>
 
-.. toctree::
-    :maxdepth: 1
-    :caption: Guides
-
-    PrestoToSlackOperator types <operators/transfer/presto_to_slack>
-
 .. toctree::
     :maxdepth: 1
     :caption: References
diff --git 
a/docs/apache-airflow-providers-presto/operators/transfer/presto_to_slack.rst 
b/docs/apache-airflow-providers-presto/operators/transfer/presto_to_slack.rst
deleted file mode 100644
index 5dded6bd0e..0000000000
--- 
a/docs/apache-airflow-providers-presto/operators/transfer/presto_to_slack.rst
+++ /dev/null
@@ -1,38 +0,0 @@
- .. Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
- ..   http://www.apache.org/licenses/LICENSE-2.0
-
- .. Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
-.. _howto/operator:PrestoToSlackOperator:
-
-PrestoToSlackOperator
-========================
-
-Use the 
:class:`~airflow.providers.presto.transfers.presto_to_slack.presto_to_slack` to 
post messages to predefined Slack
-channels.
-
-Using the Operator
-^^^^^^^^^^^^^^^^^^
-
-This operator will execute a custom query in Presto and publish a Slack 
message that can be formatted
-and contain the resulting dataset (e.g. ASCII formatted dataframe).
-
-An example usage of the PrestoToSlackOperator is as follows:
-
-.. exampleinclude:: 
/../../tests/system/providers/presto/example_presto_to_slack.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_presto_to_slack]
-    :end-before: [END howto_operator_presto_to_slack]
diff --git a/generated/provider_dependencies.json 
b/generated/provider_dependencies.json
index bf1b18a598..dd06841df9 100644
--- a/generated/provider_dependencies.json
+++ b/generated/provider_dependencies.json
@@ -570,8 +570,7 @@
     ],
     "cross-providers-deps": [
       "common.sql",
-      "google",
-      "slack"
+      "google"
     ]
   },
   "qubole": {
diff --git a/tests/providers/presto/transfers/test_presto_to_slack.py 
b/tests/providers/presto/transfers/test_presto_to_slack.py
deleted file mode 100644
index bcc5e82a8a..0000000000
--- a/tests/providers/presto/transfers/test_presto_to_slack.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-from unittest import mock
-
-from airflow.models import DAG
-from airflow.providers.presto.transfers.presto_to_slack import 
PrestoToSlackOperator
-from airflow.utils import timezone
-from tests.test_utils.db import clear_db_runs
-
-TEST_DAG_ID = 'presto_to_slack_unit_test'
-DEFAULT_DATE = timezone.datetime(2022, 1, 1)
-
-
-class TestPrestoToSlackOperator:
-    def setup_class(self):
-        clear_db_runs()
-
-    def setup_method(self):
-        self.example_dag = DAG('unit_test_dag_presto_to_slack', 
start_date=DEFAULT_DATE)
-
-    def teardown_method(self):
-        clear_db_runs()
-
-    @staticmethod
-    def _construct_operator(**kwargs):
-        operator = PrestoToSlackOperator(task_id=TEST_DAG_ID, **kwargs)
-        return operator
-
-    
@mock.patch('airflow.providers.slack.transfers.sql_to_slack.SlackWebhookHook')
-    def test_hooks_and_rendering_with_slack_conn(self, mock_slack_hook_class):
-        operator_args = {
-            'presto_conn_id': 'presto_connection',
-            'slack_conn_id': 'slack_connection',
-            'sql': "sql {{ ds }}",
-            'results_df_name': 'xxxx',
-            'parameters': ['1', '2', '3'],
-            'slack_message': 'message: {{ ds }}, {{ xxxx }}',
-            'slack_channel': 'my_channel',
-            'dag': self.example_dag,
-        }
-        presto_to_slack_operator = self._construct_operator(**operator_args)
-        mock_dbapi_hook = mock.Mock()
-        presto_to_slack_operator._get_hook = mock_dbapi_hook
-
-        get_pandas_df_mock = mock_dbapi_hook.return_value.get_pandas_df
-        get_pandas_df_mock.return_value = '1234'
-
-        slack_webhook_hook = mock_slack_hook_class.return_value
-        presto_to_slack_operator.run(start_date=DEFAULT_DATE, 
end_date=DEFAULT_DATE, ignore_ti_state=True)
-
-        mock_slack_hook_class.assert_called_once_with(
-            http_conn_id='slack_connection',
-            message='message: 2022-01-01, 1234',
-            channel='my_channel',
-            webhook_token=None,
-        )
-
-        slack_webhook_hook.execute.assert_called_once()
-
-    
@mock.patch('airflow.providers.slack.transfers.sql_to_slack.SlackWebhookHook')
-    def test_hooks_and_rendering_with_slack_conn_and_webhook(self, 
mock_slack_hook_class):
-        operator_args = {
-            'presto_conn_id': 'presto_connection',
-            'slack_conn_id': 'slack_connection',
-            'slack_token': 'test_token',
-            'sql': "sql {{ ds }}",
-            'results_df_name': 'xxxx',
-            'parameters': ['1', '2', '3'],
-            'slack_message': 'message: {{ ds }}, {{ xxxx }}',
-            'slack_channel': 'my_channel',
-            'dag': self.example_dag,
-        }
-        presto_to_slack_operator = self._construct_operator(**operator_args)
-        mock_dbapi_hook = mock.Mock()
-        presto_to_slack_operator._get_hook = mock_dbapi_hook
-
-        get_pandas_df_mock = mock_dbapi_hook.return_value.get_pandas_df
-        get_pandas_df_mock.return_value = '1234'
-
-        slack_webhook_hook = mock_slack_hook_class.return_value
-        presto_to_slack_operator.run(start_date=DEFAULT_DATE, 
end_date=DEFAULT_DATE, ignore_ti_state=True)
-
-        mock_slack_hook_class.assert_called_once_with(
-            http_conn_id='slack_connection',
-            message='message: 2022-01-01, 1234',
-            channel='my_channel',
-            webhook_token='test_token',
-        )
-
-        slack_webhook_hook.execute.assert_called_once()
diff --git a/tests/system/providers/presto/example_presto_to_slack.py 
b/tests/system/providers/presto/example_presto_to_slack.py
deleted file mode 100644
index dc87c831b4..0000000000
--- a/tests/system/providers/presto/example_presto_to_slack.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-"""
-Example DAG using PrestoToSlackOperator.
-"""
-
-import os
-from datetime import datetime
-
-from airflow import models
-from airflow.providers.presto.transfers.presto_to_slack import 
PrestoToSlackOperator
-
-PRESTO_TABLE = os.environ.get("PRESTO_TABLE", "test_table")
-ENV_ID = os.environ.get("SYSTEM_TESTS_ENV_ID")
-DAG_ID = "example_presto_to_slack"
-SLACK_CONN_WEBHOOK = 
'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'
-
-with models.DAG(
-    dag_id=DAG_ID,
-    schedule_interval='@once',  # Override to match your needs
-    start_date=datetime(2022, 1, 1),
-    catchup=False,
-    tags=["example"],
-) as dag:
-    # [START howto_operator_presto_to_slack]
-    PrestoToSlackOperator(
-        task_id="presto_to_slack",
-        slack_token=SLACK_CONN_WEBHOOK,
-        sql=f"SELECT col FROM {PRESTO_TABLE}",
-        slack_channel="my_channel",
-        slack_message="message: {{ ds }}, {{ results_df }}",
-    )
-    # [END howto_operator_presto_to_slack]
-
-
-from tests.system.utils import get_test_run  # noqa: E402
-
-# Needed to run the example DAG with pytest (see: 
tests/system/README.md#run_via_pytest)
-test_run = get_test_run(dag)

Reply via email to