apache-airflow-providers-http 4.4.2rc1__py3-none-any.whl → 4.5.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- airflow/providers/http/__init__.py +1 -1
- airflow/providers/http/get_provider_info.py +7 -0
- airflow/providers/http/hooks/http.py +1 -1
- airflow/providers/http/operators/http.py +50 -12
- airflow/providers/http/sensors/http.py +1 -2
- airflow/providers/http/triggers/__init__.py +17 -0
- airflow/providers/http/triggers/http.py +124 -0
- apache_airflow_providers_http-4.5.0.dist-info/METADATA +117 -0
- apache_airflow_providers_http-4.5.0.dist-info/RECORD +17 -0
- apache_airflow_providers_http-4.4.2rc1.dist-info/METADATA +0 -383
- apache_airflow_providers_http-4.4.2rc1.dist-info/RECORD +0 -15
- {apache_airflow_providers_http-4.4.2rc1.dist-info → apache_airflow_providers_http-4.5.0.dist-info}/LICENSE +0 -0
- {apache_airflow_providers_http-4.4.2rc1.dist-info → apache_airflow_providers_http-4.5.0.dist-info}/NOTICE +0 -0
- {apache_airflow_providers_http-4.4.2rc1.dist-info → apache_airflow_providers_http-4.5.0.dist-info}/WHEEL +0 -0
- {apache_airflow_providers_http-4.4.2rc1.dist-info → apache_airflow_providers_http-4.5.0.dist-info}/entry_points.txt +0 -0
- {apache_airflow_providers_http-4.4.2rc1.dist-info → apache_airflow_providers_http-4.5.0.dist-info}/top_level.txt +0 -0
@@ -29,6 +29,7 @@ def get_provider_info():
|
|
29
29
|
"description": "`Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__\n",
|
30
30
|
"suspended": False,
|
31
31
|
"versions": [
|
32
|
+
"4.5.0",
|
32
33
|
"4.4.2",
|
33
34
|
"4.4.1",
|
34
35
|
"4.4.0",
|
@@ -83,6 +84,12 @@ def get_provider_info():
|
|
83
84
|
"python-modules": ["airflow.providers.http.hooks.http"],
|
84
85
|
}
|
85
86
|
],
|
87
|
+
"triggers": [
|
88
|
+
{
|
89
|
+
"integration-name": "Hypertext Transfer Protocol (HTTP)",
|
90
|
+
"python-modules": ["airflow.providers.http.triggers.http"],
|
91
|
+
}
|
92
|
+
],
|
86
93
|
"connection-types": [
|
87
94
|
{"hook-class-name": "airflow.providers.http.hooks.http.HttpHook", "connection-type": "http"}
|
88
95
|
],
|
@@ -17,13 +17,18 @@
|
|
17
17
|
# under the License.
|
18
18
|
from __future__ import annotations
|
19
19
|
|
20
|
+
import base64
|
21
|
+
import pickle
|
20
22
|
from typing import TYPE_CHECKING, Any, Callable, Sequence
|
21
23
|
|
24
|
+
from requests import Response
|
22
25
|
from requests.auth import AuthBase
|
23
26
|
|
27
|
+
from airflow.configuration import conf
|
24
28
|
from airflow.exceptions import AirflowException
|
25
29
|
from airflow.models import BaseOperator
|
26
30
|
from airflow.providers.http.hooks.http import HttpHook
|
31
|
+
from airflow.providers.http.triggers.http import HttpTrigger
|
27
32
|
|
28
33
|
if TYPE_CHECKING:
|
29
34
|
from airflow.utils.context import Context
|
@@ -61,6 +66,7 @@ class SimpleHttpOperator(BaseOperator):
|
|
61
66
|
:param tcp_keep_alive_count: The TCP Keep Alive count parameter (corresponds to ``socket.TCP_KEEPCNT``)
|
62
67
|
:param tcp_keep_alive_interval: The TCP Keep Alive interval parameter (corresponds to
|
63
68
|
``socket.TCP_KEEPINTVL``)
|
69
|
+
:param deferrable: Run operator in the deferrable mode
|
64
70
|
"""
|
65
71
|
|
66
72
|
template_fields: Sequence[str] = (
|
@@ -89,6 +95,7 @@ class SimpleHttpOperator(BaseOperator):
|
|
89
95
|
tcp_keep_alive_idle: int = 120,
|
90
96
|
tcp_keep_alive_count: int = 20,
|
91
97
|
tcp_keep_alive_interval: int = 30,
|
98
|
+
deferrable: bool = conf.getboolean("operators", "default_deferrable", fallback=False),
|
92
99
|
**kwargs: Any,
|
93
100
|
) -> None:
|
94
101
|
super().__init__(**kwargs)
|
@@ -106,23 +113,42 @@ class SimpleHttpOperator(BaseOperator):
|
|
106
113
|
self.tcp_keep_alive_idle = tcp_keep_alive_idle
|
107
114
|
self.tcp_keep_alive_count = tcp_keep_alive_count
|
108
115
|
self.tcp_keep_alive_interval = tcp_keep_alive_interval
|
116
|
+
self.deferrable = deferrable
|
109
117
|
|
110
118
|
def execute(self, context: Context) -> Any:
|
111
|
-
|
119
|
+
if self.deferrable:
|
120
|
+
self.defer(
|
121
|
+
trigger=HttpTrigger(
|
122
|
+
http_conn_id=self.http_conn_id,
|
123
|
+
auth_type=self.auth_type,
|
124
|
+
method=self.method,
|
125
|
+
endpoint=self.endpoint,
|
126
|
+
headers=self.headers,
|
127
|
+
data=self.data,
|
128
|
+
extra_options=self.extra_options,
|
129
|
+
),
|
130
|
+
method_name="execute_complete",
|
131
|
+
)
|
132
|
+
else:
|
133
|
+
http = HttpHook(
|
134
|
+
self.method,
|
135
|
+
http_conn_id=self.http_conn_id,
|
136
|
+
auth_type=self.auth_type,
|
137
|
+
tcp_keep_alive=self.tcp_keep_alive,
|
138
|
+
tcp_keep_alive_idle=self.tcp_keep_alive_idle,
|
139
|
+
tcp_keep_alive_count=self.tcp_keep_alive_count,
|
140
|
+
tcp_keep_alive_interval=self.tcp_keep_alive_interval,
|
141
|
+
)
|
142
|
+
|
143
|
+
self.log.info("Calling HTTP method")
|
112
144
|
|
113
|
-
|
114
|
-
self.
|
115
|
-
http_conn_id=self.http_conn_id,
|
116
|
-
auth_type=self.auth_type,
|
117
|
-
tcp_keep_alive=self.tcp_keep_alive,
|
118
|
-
tcp_keep_alive_idle=self.tcp_keep_alive_idle,
|
119
|
-
tcp_keep_alive_count=self.tcp_keep_alive_count,
|
120
|
-
tcp_keep_alive_interval=self.tcp_keep_alive_interval,
|
121
|
-
)
|
145
|
+
response = http.run(self.endpoint, self.data, self.headers, self.extra_options)
|
146
|
+
return self.process_response(context=context, response=response)
|
122
147
|
|
123
|
-
|
148
|
+
def process_response(self, context: Context, response: Response) -> str:
|
149
|
+
"""Process the response."""
|
150
|
+
from airflow.utils.operator_helpers import determine_kwargs
|
124
151
|
|
125
|
-
response = http.run(self.endpoint, self.data, self.headers, self.extra_options)
|
126
152
|
if self.log_response:
|
127
153
|
self.log.info(response.text)
|
128
154
|
if self.response_check:
|
@@ -133,3 +159,15 @@ class SimpleHttpOperator(BaseOperator):
|
|
133
159
|
kwargs = determine_kwargs(self.response_filter, [response], context)
|
134
160
|
return self.response_filter(response, **kwargs)
|
135
161
|
return response.text
|
162
|
+
|
163
|
+
def execute_complete(self, context: Context, event: dict):
|
164
|
+
"""
|
165
|
+
Callback for when the trigger fires - returns immediately.
|
166
|
+
|
167
|
+
Relies on trigger to throw an exception, otherwise it assumes execution was successful.
|
168
|
+
"""
|
169
|
+
if event["status"] == "success":
|
170
|
+
response = pickle.loads(base64.standard_b64decode(event["response"]))
|
171
|
+
return self.process_response(context=context, response=response)
|
172
|
+
else:
|
173
|
+
raise AirflowException(f"Unexpected error in the operation: {event['message']}")
|
@@ -29,8 +29,7 @@ if TYPE_CHECKING:
|
|
29
29
|
|
30
30
|
class HttpSensor(BaseSensorOperator):
|
31
31
|
"""
|
32
|
-
|
33
|
-
404 Not Found or `response_check` returning False.
|
32
|
+
Execute HTTP GET statement; return False on failure 404 Not Found or `response_check` returning False.
|
34
33
|
|
35
34
|
HTTP Error codes other than 404 (like 403) or Connection Refused Error
|
36
35
|
would raise an exception and fail the sensor itself directly (no more poking).
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
3
|
+
# or more contributor license agreements. See the NOTICE file
|
4
|
+
# distributed with this work for additional information
|
5
|
+
# regarding copyright ownership. The ASF licenses this file
|
6
|
+
# to you under the Apache License, Version 2.0 (the
|
7
|
+
# "License"); you may not use this file except in compliance
|
8
|
+
# with the License. You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing,
|
13
|
+
# software distributed under the License is distributed on an
|
14
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
15
|
+
# KIND, either express or implied. See the License for the
|
16
|
+
# specific language governing permissions and limitations
|
17
|
+
# under the License.
|
@@ -0,0 +1,124 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
3
|
+
# distributed with this work for additional information
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
6
|
+
# "License"); you may not use this file except in compliance
|
7
|
+
# with the License. You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
from __future__ import annotations
|
18
|
+
|
19
|
+
import base64
|
20
|
+
import pickle
|
21
|
+
from typing import Any, AsyncIterator
|
22
|
+
|
23
|
+
import requests
|
24
|
+
from aiohttp.client_reqrep import ClientResponse
|
25
|
+
from requests.cookies import RequestsCookieJar
|
26
|
+
from requests.structures import CaseInsensitiveDict
|
27
|
+
|
28
|
+
from airflow.providers.http.hooks.http import HttpAsyncHook
|
29
|
+
from airflow.triggers.base import BaseTrigger, TriggerEvent
|
30
|
+
|
31
|
+
|
32
|
+
class HttpTrigger(BaseTrigger):
|
33
|
+
"""
|
34
|
+
HttpTrigger run on the trigger worker.
|
35
|
+
|
36
|
+
:param http_conn_id: http connection id that has the base
|
37
|
+
API url i.e https://www.google.com/ and optional authentication credentials. Default
|
38
|
+
headers can also be specified in the Extra field in json format.
|
39
|
+
:param auth_type: The auth type for the service
|
40
|
+
:param method: the API method to be called
|
41
|
+
:param endpoint: Endpoint to be called, i.e. ``resource/v1/query?``.
|
42
|
+
:param headers: Additional headers to be passed through as a dict.
|
43
|
+
:param data: Payload to be uploaded or request parameters.
|
44
|
+
:param extra_options: Additional kwargs to pass when creating a request.
|
45
|
+
For example, ``run(json=obj)`` is passed as
|
46
|
+
``aiohttp.ClientSession().get(json=obj)``.
|
47
|
+
2XX or 3XX status codes
|
48
|
+
"""
|
49
|
+
|
50
|
+
def __init__(
|
51
|
+
self,
|
52
|
+
http_conn_id: str = "http_default",
|
53
|
+
auth_type: Any = None,
|
54
|
+
method: str = "POST",
|
55
|
+
endpoint: str | None = None,
|
56
|
+
headers: dict[str, str] | None = None,
|
57
|
+
data: Any = None,
|
58
|
+
extra_options: dict[str, Any] | None = None,
|
59
|
+
):
|
60
|
+
super().__init__()
|
61
|
+
self.http_conn_id = http_conn_id
|
62
|
+
self.method = method
|
63
|
+
self.auth_type = auth_type
|
64
|
+
self.endpoint = endpoint
|
65
|
+
self.headers = headers
|
66
|
+
self.data = data
|
67
|
+
self.extra_options = extra_options
|
68
|
+
|
69
|
+
def serialize(self) -> tuple[str, dict[str, Any]]:
|
70
|
+
"""Serializes HttpTrigger arguments and classpath."""
|
71
|
+
return (
|
72
|
+
"airflow.providers.http.triggers.http.HttpTrigger",
|
73
|
+
{
|
74
|
+
"http_conn_id": self.http_conn_id,
|
75
|
+
"method": self.method,
|
76
|
+
"auth_type": self.auth_type,
|
77
|
+
"endpoint": self.endpoint,
|
78
|
+
"headers": self.headers,
|
79
|
+
"data": self.data,
|
80
|
+
"extra_options": self.extra_options,
|
81
|
+
},
|
82
|
+
)
|
83
|
+
|
84
|
+
async def run(self) -> AsyncIterator[TriggerEvent]:
|
85
|
+
"""Makes a series of asynchronous http calls via an http hook."""
|
86
|
+
hook = HttpAsyncHook(
|
87
|
+
method=self.method,
|
88
|
+
http_conn_id=self.http_conn_id,
|
89
|
+
auth_type=self.auth_type,
|
90
|
+
)
|
91
|
+
try:
|
92
|
+
client_response = await hook.run(
|
93
|
+
endpoint=self.endpoint,
|
94
|
+
data=self.data,
|
95
|
+
headers=self.headers,
|
96
|
+
extra_options=self.extra_options,
|
97
|
+
)
|
98
|
+
response = await self._convert_response(client_response)
|
99
|
+
yield TriggerEvent(
|
100
|
+
{
|
101
|
+
"status": "success",
|
102
|
+
"response": base64.standard_b64encode(pickle.dumps(response)).decode("ascii"),
|
103
|
+
}
|
104
|
+
)
|
105
|
+
except Exception as e:
|
106
|
+
yield TriggerEvent({"status": "error", "message": str(e)})
|
107
|
+
# yield TriggerEvent({"status": "error", "message": str(traceback.format_exc())})
|
108
|
+
|
109
|
+
@staticmethod
|
110
|
+
async def _convert_response(client_response: ClientResponse) -> requests.Response:
|
111
|
+
"""Convert aiohttp.client_reqrep.ClientResponse to requests.Response."""
|
112
|
+
response = requests.Response()
|
113
|
+
response._content = await client_response.read()
|
114
|
+
response.status_code = client_response.status
|
115
|
+
response.headers = CaseInsensitiveDict(client_response.headers)
|
116
|
+
response.url = str(client_response.url)
|
117
|
+
response.history = [await HttpTrigger._convert_response(h) for h in client_response.history]
|
118
|
+
response.encoding = client_response.get_encoding()
|
119
|
+
response.reason = str(client_response.reason)
|
120
|
+
cookies = RequestsCookieJar()
|
121
|
+
for (k, v) in client_response.cookies.items():
|
122
|
+
cookies.set(k, v)
|
123
|
+
response.cookies = cookies
|
124
|
+
return response
|
@@ -0,0 +1,117 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: apache-airflow-providers-http
|
3
|
+
Version: 4.5.0
|
4
|
+
Summary: Provider for Apache Airflow. Implements apache-airflow-providers-http package
|
5
|
+
Home-page: https://airflow.apache.org/
|
6
|
+
Download-URL: https://archive.apache.org/dist/airflow/providers
|
7
|
+
Author: Apache Software Foundation
|
8
|
+
Author-email: dev@airflow.apache.org
|
9
|
+
License: Apache License 2.0
|
10
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-http/4.5.0/
|
11
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-http/4.5.0/changelog.html
|
12
|
+
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
13
|
+
Project-URL: Source Code, https://github.com/apache/airflow
|
14
|
+
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
15
|
+
Project-URL: Twitter, https://twitter.com/ApacheAirflow
|
16
|
+
Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
17
|
+
Classifier: Development Status :: 5 - Production/Stable
|
18
|
+
Classifier: Environment :: Console
|
19
|
+
Classifier: Environment :: Web Environment
|
20
|
+
Classifier: Intended Audience :: Developers
|
21
|
+
Classifier: Intended Audience :: System Administrators
|
22
|
+
Classifier: Framework :: Apache Airflow
|
23
|
+
Classifier: Framework :: Apache Airflow :: Provider
|
24
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
25
|
+
Classifier: Programming Language :: Python :: 3.8
|
26
|
+
Classifier: Programming Language :: Python :: 3.9
|
27
|
+
Classifier: Programming Language :: Python :: 3.10
|
28
|
+
Classifier: Programming Language :: Python :: 3.11
|
29
|
+
Classifier: Topic :: System :: Monitoring
|
30
|
+
Requires-Python: ~=3.8
|
31
|
+
Description-Content-Type: text/x-rst
|
32
|
+
License-File: LICENSE
|
33
|
+
License-File: NOTICE
|
34
|
+
Requires-Dist: aiohttp
|
35
|
+
Requires-Dist: apache-airflow (>=2.4.0)
|
36
|
+
Requires-Dist: asgiref
|
37
|
+
Requires-Dist: requests (>=2.26.0)
|
38
|
+
Requires-Dist: requests-toolbelt
|
39
|
+
|
40
|
+
|
41
|
+
.. Licensed to the Apache Software Foundation (ASF) under one
|
42
|
+
or more contributor license agreements. See the NOTICE file
|
43
|
+
distributed with this work for additional information
|
44
|
+
regarding copyright ownership. The ASF licenses this file
|
45
|
+
to you under the Apache License, Version 2.0 (the
|
46
|
+
"License"); you may not use this file except in compliance
|
47
|
+
with the License. You may obtain a copy of the License at
|
48
|
+
|
49
|
+
.. http://www.apache.org/licenses/LICENSE-2.0
|
50
|
+
|
51
|
+
.. Unless required by applicable law or agreed to in writing,
|
52
|
+
software distributed under the License is distributed on an
|
53
|
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
54
|
+
KIND, either express or implied. See the License for the
|
55
|
+
specific language governing permissions and limitations
|
56
|
+
under the License.
|
57
|
+
|
58
|
+
.. Licensed to the Apache Software Foundation (ASF) under one
|
59
|
+
or more contributor license agreements. See the NOTICE file
|
60
|
+
distributed with this work for additional information
|
61
|
+
regarding copyright ownership. The ASF licenses this file
|
62
|
+
to you under the Apache License, Version 2.0 (the
|
63
|
+
"License"); you may not use this file except in compliance
|
64
|
+
with the License. You may obtain a copy of the License at
|
65
|
+
|
66
|
+
.. http://www.apache.org/licenses/LICENSE-2.0
|
67
|
+
|
68
|
+
.. Unless required by applicable law or agreed to in writing,
|
69
|
+
software distributed under the License is distributed on an
|
70
|
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
71
|
+
KIND, either express or implied. See the License for the
|
72
|
+
specific language governing permissions and limitations
|
73
|
+
under the License.
|
74
|
+
|
75
|
+
|
76
|
+
Package ``apache-airflow-providers-http``
|
77
|
+
|
78
|
+
Release: ``4.5.0``
|
79
|
+
|
80
|
+
|
81
|
+
`Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
|
82
|
+
|
83
|
+
|
84
|
+
Provider package
|
85
|
+
----------------
|
86
|
+
|
87
|
+
This is a provider package for ``http`` provider. All classes for this provider package
|
88
|
+
are in ``airflow.providers.http`` python package.
|
89
|
+
|
90
|
+
You can find package information and changelog for the provider
|
91
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/4.5.0/>`_.
|
92
|
+
|
93
|
+
|
94
|
+
Installation
|
95
|
+
------------
|
96
|
+
|
97
|
+
You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
|
98
|
+
for the minimum Airflow version supported) via
|
99
|
+
``pip install apache-airflow-providers-http``
|
100
|
+
|
101
|
+
The package supports the following python versions: 3.8,3.9,3.10,3.11
|
102
|
+
|
103
|
+
Requirements
|
104
|
+
------------
|
105
|
+
|
106
|
+
===================== ==================
|
107
|
+
PIP package Version required
|
108
|
+
===================== ==================
|
109
|
+
``apache-airflow`` ``>=2.4.0``
|
110
|
+
``requests`` ``>=2.26.0``
|
111
|
+
``requests_toolbelt``
|
112
|
+
``aiohttp``
|
113
|
+
``asgiref``
|
114
|
+
===================== ==================
|
115
|
+
|
116
|
+
The changelog for the provider package can be found in the
|
117
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/4.5.0/changelog.html>`_.
|
@@ -0,0 +1,17 @@
|
|
1
|
+
airflow/providers/http/__init__.py,sha256=Zx6RFwo9MP25bUJ4uZi4aAHdyM5PVpJT6KZ7vRZ6PUg,1529
|
2
|
+
airflow/providers/http/get_provider_info.py,sha256=_59oVdmye6jV2DPGSIRYVHtQYcU6_bhW9isRu3j2HWE,3320
|
3
|
+
airflow/providers/http/hooks/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
4
|
+
airflow/providers/http/hooks/http.py,sha256=U9B7-PNsXZPkp72iDmp5sZb3CcdwXegef2bZgH1J_Sk,16172
|
5
|
+
airflow/providers/http/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
6
|
+
airflow/providers/http/operators/http.py,sha256=vG0XGF7riVu1AhQEnoXD8Mk_5712BjqvRNi7IyPmdR4,7470
|
7
|
+
airflow/providers/http/sensors/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
8
|
+
airflow/providers/http/sensors/http.py,sha256=uoMXHj3gNHHZsm6jNLeenGB83QKYdIqedLHcTrSzFc8,5864
|
9
|
+
airflow/providers/http/triggers/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
10
|
+
airflow/providers/http/triggers/http.py,sha256=wHhzZQO3rUVgoP5iSUSnyzk5N1qy-ppszFgE_NkH3FI,4988
|
11
|
+
apache_airflow_providers_http-4.5.0.dist-info/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
|
12
|
+
apache_airflow_providers_http-4.5.0.dist-info/METADATA,sha256=Bwyw8tol7rLT5nCSULvytt4wpTxz7ond98qm2uuMWmQ,4628
|
13
|
+
apache_airflow_providers_http-4.5.0.dist-info/NOTICE,sha256=m-6s2XynUxVSUIxO4rVablAZCvFq-wmLrqV91DotRBw,240
|
14
|
+
apache_airflow_providers_http-4.5.0.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
15
|
+
apache_airflow_providers_http-4.5.0.dist-info/entry_points.txt,sha256=QBAvMV6qvNFxV_H4Vk1jDhezZTTrDb1w_QGzLBA3gaA,101
|
16
|
+
apache_airflow_providers_http-4.5.0.dist-info/top_level.txt,sha256=OeMVH5md7fr2QQWpnZoOWWxWO-0WH1IP70lpTVwopPg,8
|
17
|
+
apache_airflow_providers_http-4.5.0.dist-info/RECORD,,
|
@@ -1,383 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: apache-airflow-providers-http
|
3
|
-
Version: 4.4.2rc1
|
4
|
-
Summary: Provider for Apache Airflow. Implements apache-airflow-providers-http package
|
5
|
-
Home-page: https://airflow.apache.org/
|
6
|
-
Download-URL: https://archive.apache.org/dist/airflow/providers
|
7
|
-
Author: Apache Software Foundation
|
8
|
-
Author-email: dev@airflow.apache.org
|
9
|
-
License: Apache License 2.0
|
10
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-http/4.4.2/
|
11
|
-
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
12
|
-
Project-URL: Source Code, https://github.com/apache/airflow
|
13
|
-
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
14
|
-
Project-URL: Twitter, https://twitter.com/ApacheAirflow
|
15
|
-
Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
16
|
-
Classifier: Development Status :: 5 - Production/Stable
|
17
|
-
Classifier: Environment :: Console
|
18
|
-
Classifier: Environment :: Web Environment
|
19
|
-
Classifier: Intended Audience :: Developers
|
20
|
-
Classifier: Intended Audience :: System Administrators
|
21
|
-
Classifier: Framework :: Apache Airflow
|
22
|
-
Classifier: Framework :: Apache Airflow :: Provider
|
23
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
24
|
-
Classifier: Programming Language :: Python :: 3.8
|
25
|
-
Classifier: Programming Language :: Python :: 3.9
|
26
|
-
Classifier: Programming Language :: Python :: 3.10
|
27
|
-
Classifier: Programming Language :: Python :: 3.11
|
28
|
-
Classifier: Topic :: System :: Monitoring
|
29
|
-
Requires-Python: ~=3.8
|
30
|
-
Description-Content-Type: text/x-rst
|
31
|
-
License-File: LICENSE
|
32
|
-
License-File: NOTICE
|
33
|
-
Requires-Dist: aiohttp
|
34
|
-
Requires-Dist: apache-airflow (>=2.4.0.dev0)
|
35
|
-
Requires-Dist: asgiref
|
36
|
-
Requires-Dist: requests (>=2.26.0)
|
37
|
-
Requires-Dist: requests-toolbelt
|
38
|
-
|
39
|
-
|
40
|
-
.. Licensed to the Apache Software Foundation (ASF) under one
|
41
|
-
or more contributor license agreements. See the NOTICE file
|
42
|
-
distributed with this work for additional information
|
43
|
-
regarding copyright ownership. The ASF licenses this file
|
44
|
-
to you under the Apache License, Version 2.0 (the
|
45
|
-
"License"); you may not use this file except in compliance
|
46
|
-
with the License. You may obtain a copy of the License at
|
47
|
-
|
48
|
-
.. http://www.apache.org/licenses/LICENSE-2.0
|
49
|
-
|
50
|
-
.. Unless required by applicable law or agreed to in writing,
|
51
|
-
software distributed under the License is distributed on an
|
52
|
-
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
53
|
-
KIND, either express or implied. See the License for the
|
54
|
-
specific language governing permissions and limitations
|
55
|
-
under the License.
|
56
|
-
|
57
|
-
|
58
|
-
Package ``apache-airflow-providers-http``
|
59
|
-
|
60
|
-
Release: ``4.4.2rc1``
|
61
|
-
|
62
|
-
|
63
|
-
`Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
|
64
|
-
|
65
|
-
|
66
|
-
Provider package
|
67
|
-
----------------
|
68
|
-
|
69
|
-
This is a provider package for ``http`` provider. All classes for this provider package
|
70
|
-
are in ``airflow.providers.http`` python package.
|
71
|
-
|
72
|
-
You can find package information and changelog for the provider
|
73
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/4.4.2/>`_.
|
74
|
-
|
75
|
-
|
76
|
-
Installation
|
77
|
-
------------
|
78
|
-
|
79
|
-
You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
|
80
|
-
for the minimum Airflow version supported) via
|
81
|
-
``pip install apache-airflow-providers-http``
|
82
|
-
|
83
|
-
The package supports the following python versions: 3.8,3.9,3.10,3.11
|
84
|
-
|
85
|
-
Requirements
|
86
|
-
------------
|
87
|
-
|
88
|
-
===================== ==================
|
89
|
-
PIP package Version required
|
90
|
-
===================== ==================
|
91
|
-
``apache-airflow`` ``>=2.4.0``
|
92
|
-
``requests`` ``>=2.26.0``
|
93
|
-
``requests_toolbelt``
|
94
|
-
``aiohttp``
|
95
|
-
``asgiref``
|
96
|
-
===================== ==================
|
97
|
-
|
98
|
-
.. Licensed to the Apache Software Foundation (ASF) under one
|
99
|
-
or more contributor license agreements. See the NOTICE file
|
100
|
-
distributed with this work for additional information
|
101
|
-
regarding copyright ownership. The ASF licenses this file
|
102
|
-
to you under the Apache License, Version 2.0 (the
|
103
|
-
"License"); you may not use this file except in compliance
|
104
|
-
with the License. You may obtain a copy of the License at
|
105
|
-
|
106
|
-
.. http://www.apache.org/licenses/LICENSE-2.0
|
107
|
-
|
108
|
-
.. Unless required by applicable law or agreed to in writing,
|
109
|
-
software distributed under the License is distributed on an
|
110
|
-
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
111
|
-
KIND, either express or implied. See the License for the
|
112
|
-
specific language governing permissions and limitations
|
113
|
-
under the License.
|
114
|
-
|
115
|
-
|
116
|
-
.. NOTE TO CONTRIBUTORS:
|
117
|
-
Please, only add notes to the Changelog just below the "Changelog" header when there are some breaking changes
|
118
|
-
and you want to add an explanation to the users on how they are supposed to deal with them.
|
119
|
-
The changelog is updated and maintained semi-automatically by release manager.
|
120
|
-
|
121
|
-
Changelog
|
122
|
-
---------
|
123
|
-
|
124
|
-
4.4.2
|
125
|
-
.....
|
126
|
-
|
127
|
-
.. note::
|
128
|
-
This release dropped support for Python 3.7
|
129
|
-
|
130
|
-
Misc
|
131
|
-
~~~~
|
132
|
-
|
133
|
-
* ``Add note about dropping Python 3.7 for providers (#32015)``
|
134
|
-
|
135
|
-
.. Below changes are excluded from the changelog. Move them to
|
136
|
-
appropriate section above if needed. Do not delete the lines(!):
|
137
|
-
* ``Improve docstrings in providers (#31681)``
|
138
|
-
* ``Add D400 pydocstyle check - Providers (#31427)``
|
139
|
-
|
140
|
-
4.4.1
|
141
|
-
.....
|
142
|
-
|
143
|
-
Misc
|
144
|
-
~~~~
|
145
|
-
|
146
|
-
* ``Bring back min-airflow-version for preinstalled providers (#31469)``
|
147
|
-
|
148
|
-
4.4.0
|
149
|
-
.....
|
150
|
-
|
151
|
-
.. note::
|
152
|
-
This release of provider is only available for Airflow 2.4+ as explained in the
|
153
|
-
`Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>`_.
|
154
|
-
|
155
|
-
|
156
|
-
.. Below changes are excluded from the changelog. Move them to
|
157
|
-
appropriate section above if needed. Do not delete the lines(!):
|
158
|
-
* ``Upgrade ruff to 0.0.262 (#30809)``
|
159
|
-
* ``Add full automation for min Airflow version for providers (#30994)``
|
160
|
-
* ``Add mechanism to suspend providers (#30422)``
|
161
|
-
* ``Use '__version__' in providers not 'version' (#31393)``
|
162
|
-
* ``Fixing circular import error in providers caused by airflow version check (#31379)``
|
163
|
-
* ``Prepare docs for May 2023 wave of Providers (#31252)``
|
164
|
-
|
165
|
-
4.3.0
|
166
|
-
.....
|
167
|
-
|
168
|
-
Features
|
169
|
-
~~~~~~~~
|
170
|
-
|
171
|
-
* ``Add non login-password auth support for SimpleHttpOpeator (#29206)``
|
172
|
-
|
173
|
-
4.2.0
|
174
|
-
.....
|
175
|
-
|
176
|
-
Features
|
177
|
-
~~~~~~~~
|
178
|
-
|
179
|
-
* ``Add HttpHookAsync for deferrable implementation (#29038)``
|
180
|
-
|
181
|
-
4.1.1
|
182
|
-
.....
|
183
|
-
|
184
|
-
Misc
|
185
|
-
~~~~
|
186
|
-
|
187
|
-
* ``Change logging for HttpHook to debug (#28911)``
|
188
|
-
|
189
|
-
4.1.0
|
190
|
-
.....
|
191
|
-
|
192
|
-
.. note::
|
193
|
-
This release of provider is only available for Airflow 2.3+ as explained in the
|
194
|
-
`Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>`_.
|
195
|
-
|
196
|
-
Misc
|
197
|
-
~~~~
|
198
|
-
|
199
|
-
* ``Move min airflow version to 2.3.0 for all providers (#27196)``
|
200
|
-
|
201
|
-
.. Below changes are excluded from the changelog. Move them to
|
202
|
-
appropriate section above if needed. Do not delete the lines(!):
|
203
|
-
* ``Enable string normalization in python formatting - providers (#27205)``
|
204
|
-
* ``Update docs for September Provider's release (#26731)``
|
205
|
-
* ``Apply PEP-563 (Postponed Evaluation of Annotations) to non-core airflow (#26289)``
|
206
|
-
|
207
|
-
4.0.0
|
208
|
-
.....
|
209
|
-
|
210
|
-
Breaking changes
|
211
|
-
~~~~~~~~~~~~~~~~
|
212
|
-
|
213
|
-
The SimpleHTTPOperator, HttpSensor and HttpHook use now TCP_KEEPALIVE by default.
|
214
|
-
You can disable it by setting ``tcp_keep_alive`` to False and you can control keepalive parameters
|
215
|
-
by new ``tcp_keep_alive_*`` parameters added to constructor of the Hook, Operator and Sensor. Setting the
|
216
|
-
TCP_KEEPALIVE prevents some firewalls from closing a long-running connection that has long periods of
|
217
|
-
inactivity by sending empty TCP packets periodically. This has a very small impact on network traffic,
|
218
|
-
and potentially prevents the idle/hanging connections from being closed automatically by the firewalls.
|
219
|
-
|
220
|
-
* ``Add TCP_KEEPALIVE option to http provider (#24967)``
|
221
|
-
|
222
|
-
.. Below changes are excluded from the changelog. Move them to
|
223
|
-
appropriate section above if needed. Do not delete the lines(!):
|
224
|
-
* ``fix document about response_check in HttpSensor (#24708)``
|
225
|
-
* ``Fix HttpHook.run_with_advanced_retry document error (#24380)``
|
226
|
-
* ``Remove 'xcom_push' flag from providers (#24823)``
|
227
|
-
* ``Move provider dependencies to inside provider folders (#24672)``
|
228
|
-
* ``Remove 'hook-class-names' from provider.yaml (#24702)``
|
229
|
-
|
230
|
-
3.0.0
|
231
|
-
.....
|
232
|
-
|
233
|
-
Breaking changes
|
234
|
-
~~~~~~~~~~~~~~~~
|
235
|
-
|
236
|
-
.. note::
|
237
|
-
This release of provider is only available for Airflow 2.2+ as explained in the
|
238
|
-
`Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>`_.
|
239
|
-
|
240
|
-
.. Below changes are excluded from the changelog. Move them to
|
241
|
-
appropriate section above if needed. Do not delete the lines(!):
|
242
|
-
* ``Migrate HTTP example DAGs to new design AIP-47 (#23991)``
|
243
|
-
* ``Add explanatory note for contributors about updating Changelog (#24229)``
|
244
|
-
* ``Prepare docs for May 2022 provider's release (#24231)``
|
245
|
-
* ``Update package description to remove double min-airflow specification (#24292)``
|
246
|
-
|
247
|
-
2.1.2
|
248
|
-
.....
|
249
|
-
|
250
|
-
Bug Fixes
|
251
|
-
~~~~~~~~~
|
252
|
-
|
253
|
-
* ``Fix mistakenly added install_requires for all providers (#22382)``
|
254
|
-
|
255
|
-
2.1.1
|
256
|
-
.....
|
257
|
-
|
258
|
-
Misc
|
259
|
-
~~~~~
|
260
|
-
|
261
|
-
* ``Add Trove classifiers in PyPI (Framework :: Apache Airflow :: Provider)``
|
262
|
-
|
263
|
-
2.1.0
|
264
|
-
.....
|
265
|
-
|
266
|
-
Features
|
267
|
-
~~~~~~~~
|
268
|
-
|
269
|
-
* ``Add 'method' to attributes in HttpSensor. (#21831)``
|
270
|
-
|
271
|
-
Misc
|
272
|
-
~~~~
|
273
|
-
|
274
|
-
* ``Support for Python 3.10``
|
275
|
-
|
276
|
-
.. Below changes are excluded from the changelog. Move them to
|
277
|
-
appropriate section above if needed. Do not delete the lines(!):
|
278
|
-
* ``Add pre-commit check for docstring param types (#21398)``
|
279
|
-
|
280
|
-
2.0.3
|
281
|
-
.....
|
282
|
-
|
283
|
-
Misc
|
284
|
-
~~~~
|
285
|
-
|
286
|
-
* ``Split out confusing path combination logic to separate method (#21247)``
|
287
|
-
|
288
|
-
|
289
|
-
.. Below changes are excluded from the changelog. Move them to
|
290
|
-
appropriate section above if needed. Do not delete the lines(!):
|
291
|
-
* ``Remove ':type' lines now sphinx-autoapi supports typehints (#20951)``
|
292
|
-
* ``Add documentation for January 2021 providers release (#21257)``
|
293
|
-
|
294
|
-
2.0.2
|
295
|
-
.....
|
296
|
-
|
297
|
-
Bug Fixes
|
298
|
-
~~~~~~~~~
|
299
|
-
|
300
|
-
* ``Un-ignore DeprecationWarning (#20322)``
|
301
|
-
|
302
|
-
.. Below changes are excluded from the changelog. Move them to
|
303
|
-
appropriate section above if needed. Do not delete the lines(!):
|
304
|
-
* ``Fix MyPy Errors for HTTP provider. (#20246)``
|
305
|
-
* ``Update documentation for November 2021 provider's release (#19882)``
|
306
|
-
* ``Prepare documentation for October Provider's release (#19321)``
|
307
|
-
* ``Update documentation for September providers release (#18613)``
|
308
|
-
* ``Static start_date and default arg cleanup for misc. provider example DAGs (#18597)``
|
309
|
-
* ``Use typed Context EVERYWHERE (#20565)``
|
310
|
-
* ``Fix template_fields type to have MyPy friendly Sequence type (#20571)``
|
311
|
-
* ``Even more typing in operators (template_fields/ext) (#20608)``
|
312
|
-
* ``Update documentation for provider December 2021 release (#20523)``
|
313
|
-
|
314
|
-
2.0.1
|
315
|
-
.....
|
316
|
-
|
317
|
-
Misc
|
318
|
-
~~~~
|
319
|
-
|
320
|
-
* ``Optimise connection importing for Airflow 2.2.0``
|
321
|
-
* ``Remove airflow dependency from http provider``
|
322
|
-
|
323
|
-
.. Below changes are excluded from the changelog. Move them to
|
324
|
-
appropriate section above if needed. Do not delete the lines(!):
|
325
|
-
* ``Update description about the new ''connection-types'' provider meta-data (#17767)``
|
326
|
-
* ``Import Hooks lazily individually in providers manager (#17682)``
|
327
|
-
* ``Prepares docs for Rc2 release of July providers (#17116)``
|
328
|
-
* ``Remove/refactor default_args pattern for miscellaneous providers (#16872)``
|
329
|
-
* ``Prepare documentation for July release of providers. (#17015)``
|
330
|
-
* ``Removes pylint from our toolchain (#16682)``
|
331
|
-
|
332
|
-
2.0.0
|
333
|
-
.....
|
334
|
-
|
335
|
-
Breaking changes
|
336
|
-
~~~~~~~~~~~~~~~~
|
337
|
-
|
338
|
-
* ``Auto-apply apply_default decorator (#15667)``
|
339
|
-
|
340
|
-
.. warning:: Due to apply_default decorator removal, this version of the provider requires Airflow 2.1.0+.
|
341
|
-
If your Airflow version is < 2.1.0, and you want to install this provider version, first upgrade
|
342
|
-
Airflow to at least version 2.1.0. Otherwise your Airflow package version will be upgraded
|
343
|
-
automatically and you will have to manually run ``airflow upgrade db`` to complete the migration.
|
344
|
-
|
345
|
-
Features
|
346
|
-
~~~~~~~~
|
347
|
-
|
348
|
-
* ``Update 'SimpleHttpOperator' to take auth object (#15605)``
|
349
|
-
* ``HttpHook: Use request factory and respect defaults (#14701)``
|
350
|
-
|
351
|
-
.. Below changes are excluded from the changelog. Move them to
|
352
|
-
appropriate section above if needed. Do not delete the lines(!):
|
353
|
-
* ``Check synctatic correctness for code-snippets (#16005)``
|
354
|
-
* ``Prepares provider release after PIP 21 compatibility (#15576)``
|
355
|
-
* ``Remove Backport Providers (#14886)``
|
356
|
-
* ``Updated documentation for June 2021 provider release (#16294)``
|
357
|
-
* ``Add documentation for the HTTP connection (#15379)``
|
358
|
-
* ``More documentation update for June providers release (#16405)``
|
359
|
-
* ``Synchronizes updated changelog after buggfix release (#16464)``
|
360
|
-
|
361
|
-
1.1.1
|
362
|
-
.....
|
363
|
-
|
364
|
-
Bug fixes
|
365
|
-
~~~~~~~~~
|
366
|
-
|
367
|
-
* ``Corrections in docs and tools after releasing provider RCs (#14082)``
|
368
|
-
|
369
|
-
|
370
|
-
1.1.0
|
371
|
-
.....
|
372
|
-
|
373
|
-
Updated documentation and readme files.
|
374
|
-
|
375
|
-
Features
|
376
|
-
~~~~~~~~
|
377
|
-
|
378
|
-
* ``Add a new argument for HttpSensor to accept a list of http status code``
|
379
|
-
|
380
|
-
1.0.0
|
381
|
-
.....
|
382
|
-
|
383
|
-
Initial version of the provider.
|
@@ -1,15 +0,0 @@
|
|
1
|
-
airflow/providers/http/__init__.py,sha256=RovxCASU0KO1u41LkZ_0OIhP6bolnA0tfC_m77a-b6E,1529
|
2
|
-
airflow/providers/http/get_provider_info.py,sha256=jvhVqgf_5ksgc-ABJO9HWPBsBA-iGEOAFJ4TwLycW_Y,3088
|
3
|
-
airflow/providers/http/hooks/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
4
|
-
airflow/providers/http/hooks/http.py,sha256=GMkqhvriXELdPtf_su6TAL6HMKT2mgEzD5kIXZ-lzH8,16171
|
5
|
-
airflow/providers/http/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
6
|
-
airflow/providers/http/operators/http.py,sha256=slD2Fk97DNJk-OO1jwKUpA4WGbXXdEGmJNC-UMGJEXc,5829
|
7
|
-
airflow/providers/http/sensors/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
8
|
-
airflow/providers/http/sensors/http.py,sha256=MzYScvXNkPufXTBJEKDOTS2nHq0L3UHT1YurZgqz8WM,5885
|
9
|
-
apache_airflow_providers_http-4.4.2rc1.dist-info/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
|
10
|
-
apache_airflow_providers_http-4.4.2rc1.dist-info/METADATA,sha256=iF-8T9pOoXK2GrOwe0oJrY-FU9tT7TJ-qY46M50bMYM,12916
|
11
|
-
apache_airflow_providers_http-4.4.2rc1.dist-info/NOTICE,sha256=m-6s2XynUxVSUIxO4rVablAZCvFq-wmLrqV91DotRBw,240
|
12
|
-
apache_airflow_providers_http-4.4.2rc1.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
13
|
-
apache_airflow_providers_http-4.4.2rc1.dist-info/entry_points.txt,sha256=QBAvMV6qvNFxV_H4Vk1jDhezZTTrDb1w_QGzLBA3gaA,101
|
14
|
-
apache_airflow_providers_http-4.4.2rc1.dist-info/top_level.txt,sha256=OeMVH5md7fr2QQWpnZoOWWxWO-0WH1IP70lpTVwopPg,8
|
15
|
-
apache_airflow_providers_http-4.4.2rc1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|