apache-airflow-providers-http 4.7.0rc2__tar.gz → 4.8.0rc1__tar.gz

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.
Files changed (26) hide show
  1. {apache-airflow-providers-http-4.7.0rc2/apache_airflow_providers_http.egg-info → apache_airflow_providers_http-4.8.0rc1}/PKG-INFO +31 -23
  2. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/README.rst +12 -5
  3. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1/airflow/providers/http}/LICENSE +52 -0
  4. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/__init__.py +5 -6
  5. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/get_provider_info.py +5 -3
  6. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/operators/http.py +34 -16
  7. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/triggers/http.py +1 -1
  8. apache_airflow_providers_http-4.8.0rc1/pyproject.toml +78 -0
  9. apache-airflow-providers-http-4.7.0rc2/MANIFEST.in +0 -31
  10. apache-airflow-providers-http-4.7.0rc2/NOTICE +0 -6
  11. apache-airflow-providers-http-4.7.0rc2/PKG-INFO +0 -110
  12. apache-airflow-providers-http-4.7.0rc2/apache_airflow_providers_http.egg-info/SOURCES.txt +0 -24
  13. apache-airflow-providers-http-4.7.0rc2/apache_airflow_providers_http.egg-info/dependency_links.txt +0 -1
  14. apache-airflow-providers-http-4.7.0rc2/apache_airflow_providers_http.egg-info/entry_points.txt +0 -2
  15. apache-airflow-providers-http-4.7.0rc2/apache_airflow_providers_http.egg-info/not-zip-safe +0 -1
  16. apache-airflow-providers-http-4.7.0rc2/apache_airflow_providers_http.egg-info/requires.txt +0 -5
  17. apache-airflow-providers-http-4.7.0rc2/apache_airflow_providers_http.egg-info/top_level.txt +0 -1
  18. apache-airflow-providers-http-4.7.0rc2/pyproject.toml +0 -185
  19. apache-airflow-providers-http-4.7.0rc2/setup.cfg +0 -66
  20. apache-airflow-providers-http-4.7.0rc2/setup.py +0 -49
  21. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/hooks/__init__.py +0 -0
  22. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/hooks/http.py +0 -0
  23. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/operators/__init__.py +0 -0
  24. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/sensors/__init__.py +0 -0
  25. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/sensors/http.py +0 -0
  26. {apache-airflow-providers-http-4.7.0rc2 → apache_airflow_providers_http-4.8.0rc1}/airflow/providers/http/triggers/__init__.py +0 -0
@@ -1,19 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apache-airflow-providers-http
3
- Version: 4.7.0rc2
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.7.0/
11
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.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/
3
+ Version: 4.8.0rc1
4
+ Summary: Provider package apache-airflow-providers-http for Apache Airflow
5
+ Keywords: airflow-provider,http,airflow,integration
6
+ Author-email: Apache Software Foundation <dev@airflow.apache.org>
7
+ Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
8
+ Requires-Python: ~=3.8
9
+ Description-Content-Type: text/x-rst
17
10
  Classifier: Development Status :: 5 - Production/Stable
18
11
  Classifier: Environment :: Console
19
12
  Classifier: Environment :: Web Environment
@@ -27,10 +20,18 @@ Classifier: Programming Language :: Python :: 3.9
27
20
  Classifier: Programming Language :: Python :: 3.10
28
21
  Classifier: Programming Language :: Python :: 3.11
29
22
  Classifier: Topic :: System :: Monitoring
30
- Requires-Python: ~=3.8
31
- Description-Content-Type: text/x-rst
32
- License-File: LICENSE
33
- License-File: NOTICE
23
+ Requires-Dist: aiohttp
24
+ Requires-Dist: apache-airflow>=2.6.0.dev0
25
+ Requires-Dist: asgiref
26
+ Requires-Dist: requests>=2.26.0
27
+ Requires-Dist: requests_toolbelt
28
+ Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
29
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0/changelog.html
30
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0
31
+ Project-URL: Slack Chat, https://s.apache.org/airflow-slack
32
+ Project-URL: Source Code, https://github.com/apache/airflow
33
+ Project-URL: Twitter, https://twitter.com/ApacheAirflow
34
+ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
34
35
 
35
36
 
36
37
  .. Licensed to the Apache Software Foundation (ASF) under one
@@ -49,7 +50,8 @@ License-File: NOTICE
49
50
  KIND, either express or implied. See the License for the
50
51
  specific language governing permissions and limitations
51
52
  under the License.
52
- .. Licensed to the Apache Software Foundation (ASF) under one
53
+
54
+ .. Licensed to the Apache Software Foundation (ASF) under one
53
55
  or more contributor license agreements. See the NOTICE file
54
56
  distributed with this work for additional information
55
57
  regarding copyright ownership. The ASF licenses this file
@@ -66,10 +68,16 @@ License-File: NOTICE
66
68
  specific language governing permissions and limitations
67
69
  under the License.
68
70
 
71
+ .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
72
+ OVERWRITTEN WHEN PREPARING PACKAGES.
73
+
74
+ .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
75
+ `PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
76
+
69
77
 
70
78
  Package ``apache-airflow-providers-http``
71
79
 
72
- Release: ``4.7.0rc2``
80
+ Release: ``4.8.0.rc1``
73
81
 
74
82
 
75
83
  `Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
@@ -82,7 +90,7 @@ This is a provider package for ``http`` provider. All classes for this provider
82
90
  are in ``airflow.providers.http`` python package.
83
91
 
84
92
  You can find package information and changelog for the provider
85
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.0/>`_.
93
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0/>`_.
86
94
 
87
95
  Installation
88
96
  ------------
@@ -99,7 +107,7 @@ Requirements
99
107
  ===================== ==================
100
108
  PIP package Version required
101
109
  ===================== ==================
102
- ``apache-airflow`` ``>=2.5.0``
110
+ ``apache-airflow`` ``>=2.6.0``
103
111
  ``requests`` ``>=2.26.0``
104
112
  ``requests_toolbelt``
105
113
  ``aiohttp``
@@ -107,4 +115,4 @@ PIP package Version required
107
115
  ===================== ==================
108
116
 
109
117
  The changelog for the provider package can be found in the
110
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.0/changelog.html>`_.
118
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0/changelog.html>`_.
@@ -15,7 +15,8 @@
15
15
  KIND, either express or implied. See the License for the
16
16
  specific language governing permissions and limitations
17
17
  under the License.
18
- .. Licensed to the Apache Software Foundation (ASF) under one
18
+
19
+ .. Licensed to the Apache Software Foundation (ASF) under one
19
20
  or more contributor license agreements. See the NOTICE file
20
21
  distributed with this work for additional information
21
22
  regarding copyright ownership. The ASF licenses this file
@@ -32,10 +33,16 @@
32
33
  specific language governing permissions and limitations
33
34
  under the License.
34
35
 
36
+ .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
37
+ OVERWRITTEN WHEN PREPARING PACKAGES.
38
+
39
+ .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
40
+ `PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
41
+
35
42
 
36
43
  Package ``apache-airflow-providers-http``
37
44
 
38
- Release: ``4.7.0rc2``
45
+ Release: ``4.8.0.rc1``
39
46
 
40
47
 
41
48
  `Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
@@ -48,7 +55,7 @@ This is a provider package for ``http`` provider. All classes for this provider
48
55
  are in ``airflow.providers.http`` python package.
49
56
 
50
57
  You can find package information and changelog for the provider
51
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.0/>`_.
58
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0/>`_.
52
59
 
53
60
  Installation
54
61
  ------------
@@ -65,7 +72,7 @@ Requirements
65
72
  ===================== ==================
66
73
  PIP package Version required
67
74
  ===================== ==================
68
- ``apache-airflow`` ``>=2.5.0``
75
+ ``apache-airflow`` ``>=2.6.0``
69
76
  ``requests`` ``>=2.26.0``
70
77
  ``requests_toolbelt``
71
78
  ``aiohttp``
@@ -73,4 +80,4 @@ PIP package Version required
73
80
  ===================== ==================
74
81
 
75
82
  The changelog for the provider package can be found in the
76
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.0/changelog.html>`_.
83
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0/changelog.html>`_.
@@ -199,3 +199,55 @@ distributed under the License is distributed on an "AS IS" BASIS,
199
199
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
200
  See the License for the specific language governing permissions and
201
201
  limitations under the License.
202
+
203
+ ============================================================================
204
+ APACHE AIRFLOW SUBCOMPONENTS:
205
+
206
+ The Apache Airflow project contains subcomponents with separate copyright
207
+ notices and license terms. Your use of the source code for the these
208
+ subcomponents is subject to the terms and conditions of the following
209
+ licenses.
210
+
211
+
212
+ ========================================================================
213
+ Third party Apache 2.0 licenses
214
+ ========================================================================
215
+
216
+ The following components are provided under the Apache 2.0 License.
217
+ See project link for details. The text of each license is also included
218
+ at licenses/LICENSE-[project].txt.
219
+
220
+ (ALv2 License) hue v4.3.0 (https://github.com/cloudera/hue/)
221
+ (ALv2 License) jqclock v2.3.0 (https://github.com/JohnRDOrazio/jQuery-Clock-Plugin)
222
+ (ALv2 License) bootstrap3-typeahead v4.0.2 (https://github.com/bassjobsen/Bootstrap-3-Typeahead)
223
+ (ALv2 License) connexion v2.7.0 (https://github.com/zalando/connexion)
224
+
225
+ ========================================================================
226
+ MIT licenses
227
+ ========================================================================
228
+
229
+ The following components are provided under the MIT License. See project link for details.
230
+ The text of each license is also included at licenses/LICENSE-[project].txt.
231
+
232
+ (MIT License) jquery v3.5.1 (https://jquery.org/license/)
233
+ (MIT License) dagre-d3 v0.6.4 (https://github.com/cpettitt/dagre-d3)
234
+ (MIT License) bootstrap v3.4.1 (https://github.com/twbs/bootstrap/)
235
+ (MIT License) d3-tip v0.9.1 (https://github.com/Caged/d3-tip)
236
+ (MIT License) dataTables v1.10.25 (https://datatables.net)
237
+ (MIT License) normalize.css v3.0.2 (http://necolas.github.io/normalize.css/)
238
+ (MIT License) ElasticMock v1.3.2 (https://github.com/vrcmarcos/elasticmock)
239
+ (MIT License) MomentJS v2.24.0 (http://momentjs.com/)
240
+ (MIT License) eonasdan-bootstrap-datetimepicker v4.17.49 (https://github.com/eonasdan/bootstrap-datetimepicker/)
241
+
242
+ ========================================================================
243
+ BSD 3-Clause licenses
244
+ ========================================================================
245
+ The following components are provided under the BSD 3-Clause license. See project links for details.
246
+ The text of each license is also included at licenses/LICENSE-[project].txt.
247
+
248
+ (BSD 3 License) d3 v5.16.0 (https://d3js.org)
249
+ (BSD 3 License) d3-shape v2.1.0 (https://github.com/d3/d3-shape)
250
+ (BSD 3 License) cgroupspy 0.2.1 (https://github.com/cloudsigma/cgroupspy)
251
+
252
+ ========================================================================
253
+ See licenses/LICENSES-ui.txt for packages used in `/airflow/www`
@@ -1,4 +1,3 @@
1
- #
2
1
  # Licensed to the Apache Software Foundation (ASF) under one
3
2
  # or more contributor license agreements. See the NOTICE file
4
3
  # distributed with this work for additional information
@@ -19,8 +18,8 @@
19
18
  # NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
20
19
  # OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
21
20
  #
22
- # IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
23
- # `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
21
+ # IF YOU WANT TO MODIFY THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
22
+ # `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
24
23
  #
25
24
  from __future__ import annotations
26
25
 
@@ -28,7 +27,7 @@ import packaging.version
28
27
 
29
28
  __all__ = ["__version__"]
30
29
 
31
- __version__ = "4.7.0"
30
+ __version__ = "4.8.0"
32
31
 
33
32
  try:
34
33
  from airflow import __version__ as airflow_version
@@ -36,8 +35,8 @@ except ImportError:
36
35
  from airflow.version import version as airflow_version
37
36
 
38
37
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
39
- "2.5.0"
38
+ "2.6.0"
40
39
  ):
41
40
  raise RuntimeError(
42
- f"The package `apache-airflow-providers-http:{__version__}` requires Apache Airflow 2.5.0+"
41
+ f"The package `apache-airflow-providers-http:{__version__}` needs Apache Airflow 2.6.0+"
43
42
  )
@@ -18,8 +18,8 @@
18
18
  # NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
19
19
  # OVERWRITTEN WHEN PREPARING PACKAGES.
20
20
  #
21
- # IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
22
- # `get_provider_info_TEMPLATE.py.jinja2` IN the `provider_packages` DIRECTORY
21
+ # IF YOU WANT TO MODIFY THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
22
+ # `get_provider_info_TEMPLATE.py.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
23
23
 
24
24
 
25
25
  def get_provider_info():
@@ -28,7 +28,9 @@ def get_provider_info():
28
28
  "name": "Hypertext Transfer Protocol (HTTP)",
29
29
  "description": "`Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__\n",
30
30
  "suspended": False,
31
+ "source-date-epoch": 1701983386,
31
32
  "versions": [
33
+ "4.8.0",
32
34
  "4.7.0",
33
35
  "4.6.0",
34
36
  "4.5.2",
@@ -55,7 +57,7 @@ def get_provider_info():
55
57
  "1.0.0",
56
58
  ],
57
59
  "dependencies": [
58
- "apache-airflow>=2.5.0",
60
+ "apache-airflow>=2.6.0",
59
61
  "requests>=2.26.0",
60
62
  "requests_toolbelt",
61
63
  "aiohttp",
@@ -56,12 +56,17 @@ class HttpOperator(BaseOperator):
56
56
  :param pagination_function: A callable that generates the parameters used to call the API again,
57
57
  based on the previous response. Typically used when the API is paginated and returns for e.g a
58
58
  cursor, a 'next page id', or a 'next page URL'. When provided, the Operator will call the API
59
- repeatedly until this callable returns None. Also, the result of the Operator will become by
60
- default a list of Response.text objects (instead of a single response object). Same with the
61
- other injected functions (like response_check, response_filter, ...) which will also receive a
62
- list of Response object. This function receives a Response object form previous call, and should
63
- return a dict of parameters (`endpoint`, `data`, `headers`, `extra_options`), which will be merged
64
- and will override the one used in the initial API call.
59
+ repeatedly until this callable returns None. The result of the Operator will become by default a
60
+ list of Response.text objects (instead of a single response object). Same with the other injected
61
+ functions (like response_check, response_filter, ...) which will also receive a list of Response
62
+ objects. This function receives a Response object form previous call, and should return a nested
63
+ dictionary with the following optional keys: `endpoint`, `data`, `headers` and `extra_options.
64
+ Those keys will be merged and/or override the parameters provided into the HttpOperator declaration.
65
+ Parameters are merged when they are both a dictionary (e.g.: HttpOperator.headers will be merged
66
+ with the `headers` dict provided by this function). When merging, dict items returned by this
67
+ function will override initial ones (e.g: if both HttpOperator.headers and `headers` have a 'cookie'
68
+ item, the one provided by `headers` is kept). Parameters are simply overridden when any of them are
69
+ string (e.g.: HttpOperator.endpoint is overridden by `endpoint`).
65
70
  :param response_check: A check against the 'requests' response object.
66
71
  The callable takes the response object as the first positional argument
67
72
  and optionally any number of keyword arguments available in the context dictionary.
@@ -101,7 +106,7 @@ class HttpOperator(BaseOperator):
101
106
  *,
102
107
  endpoint: str | None = None,
103
108
  method: str = "POST",
104
- data: Any = None,
109
+ data: dict[str, Any] | str | None = None,
105
110
  headers: dict[str, str] | None = None,
106
111
  pagination_function: Callable[..., Any] | None = None,
107
112
  response_check: Callable[..., bool] | None = None,
@@ -271,9 +276,16 @@ class HttpOperator(BaseOperator):
271
276
  :param next_page_params: A dictionary containing the parameters for the next page.
272
277
  :return: A dictionary containing the merged parameters.
273
278
  """
279
+ data: str | dict | None = None # makes mypy happy
280
+ next_page_data_param = next_page_params.get("data")
281
+ if isinstance(self.data, dict) and isinstance(next_page_data_param, dict):
282
+ data = merge_dicts(self.data, next_page_data_param)
283
+ else:
284
+ data = next_page_data_param or self.data
285
+
274
286
  return dict(
275
287
  endpoint=next_page_params.get("endpoint") or self.endpoint,
276
- data=merge_dicts(self.data, next_page_params.get("data", {})),
288
+ data=data,
277
289
  headers=merge_dicts(self.headers, next_page_params.get("headers", {})),
278
290
  extra_options=merge_dicts(self.extra_options, next_page_params.get("extra_options", {})),
279
291
  )
@@ -294,14 +306,20 @@ class SimpleHttpOperator(HttpOperator):
294
306
  :param data: The data to pass. POST-data in POST/PUT and params
295
307
  in the URL for a GET request. (templated)
296
308
  :param headers: The HTTP headers to be added to the GET request
297
- :param pagination_function: A callable that generates the parameters used to call the API again.
298
- Typically used when the API is paginated and returns for e.g a cursor, a 'next page id', or
299
- a 'next page URL'. When provided, the Operator will call the API repeatedly until this callable
300
- returns None. Also, the result of the Operator will become by default a list of Response.text
301
- objects (instead of a single response object). Same with the other injected functions (like
302
- response_check, response_filter, ...) which will also receive a list of Response object. This
303
- function should return a dict of parameters (`endpoint`, `data`, `headers`, `extra_options`),
304
- which will be merged and override the one used in the initial API call.
309
+ :param pagination_function: A callable that generates the parameters used to call the API again,
310
+ based on the previous response. Typically used when the API is paginated and returns for e.g a
311
+ cursor, a 'next page id', or a 'next page URL'. When provided, the Operator will call the API
312
+ repeatedly until this callable returns None. The result of the Operator will become by default a
313
+ list of Response.text objects (instead of a single response object). Same with the other injected
314
+ functions (like response_check, response_filter, ...) which will also receive a list of Response
315
+ objects. This function receives a Response object form previous call, and should return a nested
316
+ dictionary with the following optional keys: `endpoint`, `data`, `headers` and `extra_options.
317
+ Those keys will be merged and/or override the parameters provided into the HttpOperator declaration.
318
+ Parameters are merged when they are both a dictionary (e.g.: HttpOperator.headers will be merged
319
+ with the `headers` dict provided by this function). When merging, dict items returned by this
320
+ function will override initial ones (e.g: if both HttpOperator.headers and `headers` have a 'cookie'
321
+ item, the one provided by `headers` is kept). Parameters are simply overridden when any of them are
322
+ string (e.g.: HttpOperator.endpoint is overridden by `endpoint`).
305
323
  :param response_check: A check against the 'requests' response object.
306
324
  The callable takes the response object as the first positional argument
307
325
  and optionally any number of keyword arguments available in the context dictionary.
@@ -56,7 +56,7 @@ class HttpTrigger(BaseTrigger):
56
56
  method: str = "POST",
57
57
  endpoint: str | None = None,
58
58
  headers: dict[str, str] | None = None,
59
- data: Any = None,
59
+ data: dict[str, Any] | str | None = None,
60
60
  extra_options: dict[str, Any] | None = None,
61
61
  ):
62
62
  super().__init__()
@@ -0,0 +1,78 @@
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.
18
+
19
+ # NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
20
+ # OVERWRITTEN WHEN PREPARING PACKAGES.
21
+
22
+ # IF YOU WANT TO MODIFY THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
23
+ # `pyproject_TEMPLATE.toml.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
24
+ #
25
+ [build-system]
26
+ requires = ["flit_core >=3.2,<4"]
27
+ build-backend = "flit_core.buildapi"
28
+
29
+ [project]
30
+ name = "apache-airflow-providers-http"
31
+ version = "4.8.0.rc1"
32
+ description = "Provider package apache-airflow-providers-http for Apache Airflow"
33
+ readme = "README.rst"
34
+ authors = [
35
+ {name="Apache Software Foundation", email="dev@airflow.apache.org"},
36
+ ]
37
+ maintainers = [
38
+ {name="Apache Software Foundation", email="dev@airflow.apache.org"},
39
+ ]
40
+ keywords = [ "airflow-provider", "http", "airflow", "integration" ]
41
+ classifiers = [
42
+ "Development Status :: 5 - Production/Stable",
43
+ "Environment :: Console",
44
+ "Environment :: Web Environment",
45
+ "Intended Audience :: Developers",
46
+ "Intended Audience :: System Administrators",
47
+ "Framework :: Apache Airflow",
48
+ "Framework :: Apache Airflow :: Provider",
49
+ "License :: OSI Approved :: Apache Software License",
50
+ "Programming Language :: Python :: 3.8",
51
+ "Programming Language :: Python :: 3.9",
52
+ "Programming Language :: Python :: 3.10",
53
+ "Programming Language :: Python :: 3.11",
54
+ "Topic :: System :: Monitoring",
55
+ ]
56
+ requires-python = "~=3.8"
57
+ dependencies = [
58
+ "aiohttp",
59
+ "apache-airflow>=2.6.0.dev0",
60
+ "asgiref",
61
+ "requests>=2.26.0",
62
+ "requests_toolbelt",
63
+ ]
64
+
65
+ [project.urls]
66
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0"
67
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0/changelog.html"
68
+ "Bug Tracker" = "https://github.com/apache/airflow/issues"
69
+ "Source Code" = "https://github.com/apache/airflow"
70
+ "Slack Chat" = "https://s.apache.org/airflow-slack"
71
+ "Twitter" = "https://twitter.com/ApacheAirflow"
72
+ "YouTube" = "https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/"
73
+
74
+ [project.entry-points."apache_airflow_provider"]
75
+ provider_info = "airflow.providers.http.get_provider_info:get_provider_info"
76
+
77
+ [tool.flit.module]
78
+ name = "airflow.providers.http"
@@ -1,31 +0,0 @@
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.
18
-
19
- # NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
20
- # OVERWRITTEN WHEN PREPARING PACKAGES.
21
-
22
- # IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
23
- # `MANIFEST_TEMPLATE.py.jinja2` IN the `provider_packages` DIRECTORY
24
-
25
-
26
-
27
-
28
- include NOTICE
29
- include LICENSE
30
- include CHANGELOG.rst
31
- global-exclude __pycache__ *.pyc
@@ -1,6 +0,0 @@
1
- Apache Airflow
2
- Copyright 2016-2021 The Apache Software Foundation
3
-
4
- This product includes software developed at The Apache Software
5
- Foundation (http://www.apache.org/).
6
- =======================================================================
@@ -1,110 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: apache-airflow-providers-http
3
- Version: 4.7.0rc2
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.7.0/
11
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.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
-
35
-
36
- .. Licensed to the Apache Software Foundation (ASF) under one
37
- or more contributor license agreements. See the NOTICE file
38
- distributed with this work for additional information
39
- regarding copyright ownership. The ASF licenses this file
40
- to you under the Apache License, Version 2.0 (the
41
- "License"); you may not use this file except in compliance
42
- with the License. You may obtain a copy of the License at
43
-
44
- .. http://www.apache.org/licenses/LICENSE-2.0
45
-
46
- .. Unless required by applicable law or agreed to in writing,
47
- software distributed under the License is distributed on an
48
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
49
- KIND, either express or implied. See the License for the
50
- specific language governing permissions and limitations
51
- under the License.
52
- .. Licensed to the Apache Software Foundation (ASF) under one
53
- or more contributor license agreements. See the NOTICE file
54
- distributed with this work for additional information
55
- regarding copyright ownership. The ASF licenses this file
56
- to you under the Apache License, Version 2.0 (the
57
- "License"); you may not use this file except in compliance
58
- with the License. You may obtain a copy of the License at
59
-
60
- .. http://www.apache.org/licenses/LICENSE-2.0
61
-
62
- .. Unless required by applicable law or agreed to in writing,
63
- software distributed under the License is distributed on an
64
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
65
- KIND, either express or implied. See the License for the
66
- specific language governing permissions and limitations
67
- under the License.
68
-
69
-
70
- Package ``apache-airflow-providers-http``
71
-
72
- Release: ``4.7.0rc2``
73
-
74
-
75
- `Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
76
-
77
-
78
- Provider package
79
- ----------------
80
-
81
- This is a provider package for ``http`` provider. All classes for this provider package
82
- are in ``airflow.providers.http`` python package.
83
-
84
- You can find package information and changelog for the provider
85
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.0/>`_.
86
-
87
- Installation
88
- ------------
89
-
90
- You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
91
- for the minimum Airflow version supported) via
92
- ``pip install apache-airflow-providers-http``
93
-
94
- The package supports the following python versions: 3.8,3.9,3.10,3.11
95
-
96
- Requirements
97
- ------------
98
-
99
- ===================== ==================
100
- PIP package Version required
101
- ===================== ==================
102
- ``apache-airflow`` ``>=2.5.0``
103
- ``requests`` ``>=2.26.0``
104
- ``requests_toolbelt``
105
- ``aiohttp``
106
- ``asgiref``
107
- ===================== ==================
108
-
109
- The changelog for the provider package can be found in the
110
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.0/changelog.html>`_.
@@ -1,24 +0,0 @@
1
- LICENSE
2
- MANIFEST.in
3
- NOTICE
4
- README.rst
5
- pyproject.toml
6
- setup.cfg
7
- setup.py
8
- airflow/providers/http/__init__.py
9
- airflow/providers/http/get_provider_info.py
10
- airflow/providers/http/hooks/__init__.py
11
- airflow/providers/http/hooks/http.py
12
- airflow/providers/http/operators/__init__.py
13
- airflow/providers/http/operators/http.py
14
- airflow/providers/http/sensors/__init__.py
15
- airflow/providers/http/sensors/http.py
16
- airflow/providers/http/triggers/__init__.py
17
- airflow/providers/http/triggers/http.py
18
- apache_airflow_providers_http.egg-info/PKG-INFO
19
- apache_airflow_providers_http.egg-info/SOURCES.txt
20
- apache_airflow_providers_http.egg-info/dependency_links.txt
21
- apache_airflow_providers_http.egg-info/entry_points.txt
22
- apache_airflow_providers_http.egg-info/not-zip-safe
23
- apache_airflow_providers_http.egg-info/requires.txt
24
- apache_airflow_providers_http.egg-info/top_level.txt
@@ -1,2 +0,0 @@
1
- [apache_airflow_provider]
2
- provider_info = airflow.providers.http.get_provider_info:get_provider_info
@@ -1,5 +0,0 @@
1
- aiohttp
2
- apache-airflow>=2.5.0.dev0
3
- asgiref
4
- requests>=2.26.0
5
- requests_toolbelt
@@ -1,185 +0,0 @@
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
- [tool.black]
18
- line-length = 110
19
- target-version = ['py38', 'py39', 'py310', 'py311']
20
-
21
- # Editable installs are currently broken using setuptools 64.0.0 and above. The problem is tracked in
22
- # https://github.com/pypa/setuptools/issues/3548. We're also discussing how we could potentially fix
23
- # this problem on our end in issue https://github.com/apache/airflow/issues/30764. Until then we need
24
- # to use one of the following workarounds locally for editable installs:
25
- # 1) Pin setuptools <= 63.4.3 below in the [build-system] section.
26
- # 2) Include your airflow source code directory in PYTHONPATH.
27
- [build-system]
28
- requires = ['setuptools==67.2.0']
29
- build-backend = "setuptools.build_meta"
30
-
31
- [tool.ruff]
32
- target-version = "py38"
33
- typing-modules = ["airflow.typing_compat"]
34
- line-length = 110
35
- extend-exclude = [
36
- ".eggs",
37
- "airflow/_vendor/*",
38
- "airflow/providers/google/ads/_vendor/*",
39
- # The files generated by stubgen aren't 100% valid syntax it turns out, and we don't ship them, so we can
40
- # ignore them in ruff
41
- "airflow/providers/common/sql/*/*.pyi",
42
- "airflow/migrations/versions/*.py",
43
- "tests/dags/test_imports.py",
44
- ]
45
-
46
- extend-select = [
47
- "I", # Missing required import (auto-fixable)
48
- "UP", # Pyupgrade
49
- "RUF100", # Unused noqa (auto-fixable)
50
-
51
- # We ignore more pydocstyle than we enable, so be more selective at what we enable
52
- "D101",
53
- "D106",
54
- "D2",
55
- "D3",
56
- "D400",
57
- # "D401", # Not enabled by ruff, but we don't want it
58
- "D402",
59
- "D403",
60
- "D412",
61
- "D419",
62
- "TCH", # Rules around TYPE_CHECKING blocks
63
- "TID251", # Specific modules or module members that may not be imported or accessed
64
- "TID253", # Ban certain modules from being imported at module level
65
- ]
66
- extend-ignore = [
67
- "D203",
68
- "D212",
69
- "D213",
70
- "D214",
71
- "D215",
72
- "E731",
73
- "TCH003", # Do not move imports from stdlib to TYPE_CHECKING block
74
- ]
75
-
76
- namespace-packages = ["airflow/providers"]
77
-
78
- [tool.pytest.ini_options]
79
- # * Disable `flaky` plugin for pytest. This plugin conflicts with `rerunfailures` because provide same marker.
80
- # * Disable `nose` builtin plugin for pytest. This feature deprecated in 7.2 and will be removed in pytest>=8
81
- # * And we focus on use native pytest capabilities rather than adopt another frameworks.
82
- addopts = "-rasl --verbosity=2 -p no:flaky -p no:nose --asyncio-mode=strict"
83
- norecursedirs = [
84
- ".eggs",
85
- "airflow",
86
- "tests/dags_with_system_exit",
87
- "tests/test_utils",
88
- "tests/dags_corrupted",
89
- "tests/dags",
90
- "tests/system/providers/google/cloud/dataproc/resources",
91
- "tests/system/providers/google/cloud/gcs/resources",
92
- ]
93
- log_level = "INFO"
94
- filterwarnings = [
95
- "error::pytest.PytestCollectionWarning",
96
- "ignore::DeprecationWarning:flask_appbuilder.filemanager",
97
- "ignore::DeprecationWarning:flask_appbuilder.widgets",
98
- # https://github.com/dpgaspar/Flask-AppBuilder/pull/1940
99
- "ignore::DeprecationWarning:flask_sqlalchemy",
100
- # https://github.com/dpgaspar/Flask-AppBuilder/pull/1903
101
- "ignore::DeprecationWarning:apispec.utils",
102
- ]
103
- python_files = [
104
- "test_*.py",
105
- "example_*.py",
106
- ]
107
- testpaths = [
108
- "tests",
109
- ]
110
-
111
- [tool.ruff.isort]
112
- required-imports = ["from __future__ import annotations"]
113
- combine-as-imports = true
114
-
115
- [tool.ruff.per-file-ignores]
116
- "airflow/models/__init__.py" = ["F401", "TCH004"]
117
- "airflow/models/sqla_models.py" = ["F401"]
118
-
119
- # The test_python.py is needed because adding __future__.annotations breaks runtime checks that are
120
- # needed for the test to work
121
- "tests/decorators/test_python.py" = ["I002"]
122
-
123
- # The Pydantic representations of SqlAlchemy Models are not parsed well with Pydantic
124
- # when __future__.annotations is used so we need to skip them from upgrading
125
- # Pydantic also require models to be imported during execution
126
- "airflow/serialization/pydantic/*.py" = ["I002", "UP007", "TCH001"]
127
-
128
- # Ignore pydoc style from these
129
- "*.pyi" = ["D"]
130
- "scripts/*" = ["D"]
131
- "docs/*" = ["D"]
132
- "provider_packages/*" = ["D"]
133
- "*/example_dags/*" = ["D"]
134
- "chart/*" = ["D"]
135
- # In addition ignore top level imports, e.g. pandas, numpy in tests and dev
136
- "dev/*" = ["D", "TID253"]
137
- "tests/*" = ["D", "TID253"]
138
- "docker_tests/*" = ["D", "TID253"]
139
- "kubernetes_tests/*" = ["D", "TID253"]
140
-
141
- # All of the modules which have an extra license header (i.e. that we copy from another project) need to
142
- # ignore E402 -- module level import not at top level
143
- "airflow/api/auth/backend/kerberos_auth.py" = ["E402"]
144
- "airflow/security/kerberos.py" = ["E402"]
145
- "airflow/security/utils.py" = ["E402"]
146
- "tests/providers/elasticsearch/log/elasticmock/__init__.py" = ["E402"]
147
- "tests/providers/elasticsearch/log/elasticmock/utilities/__init__.py" = ["E402"]
148
-
149
- [tool.ruff.flake8-tidy-imports.banned-api]
150
- "airflow.AirflowException".msg = "Use airflow.exceptions.AirflowException instead."
151
- "airflow.Dataset".msg = "Use airflow.datasets.Dataset instead."
152
-
153
- [tool.ruff.flake8-tidy-imports]
154
- # Ban certain modules from being imported at module level, instead requiring
155
- # that they're imported lazily (e.g., within a function definition).
156
- banned-module-level-imports = ["numpy", "pandas"]
157
-
158
- [tool.ruff.flake8-type-checking]
159
- exempt-modules = ["typing", "typing_extensions"]
160
-
161
- [tool.coverage.run]
162
- branch = true
163
- relative_files = true
164
- source = ["airflow"]
165
- omit = [
166
- "airflow/_vendor/**",
167
- "airflow/contrib/**",
168
- "airflow/example_dags/**",
169
- "airflow/migrations/**",
170
- "airflow/providers/**/example_dags/**",
171
- "airflow/www/node_modules/**",
172
- "airflow/providers/google/ads/_vendor/**",
173
- ]
174
-
175
- [tool.coverage.report]
176
- skip_empty = true
177
- exclude_also = [
178
- "def __repr__",
179
- "raise AssertionError",
180
- "raise NotImplementedError",
181
- "if __name__ == .__main__.:",
182
- "@(abc\\.)?abstractmethod",
183
- "@(typing(_extensions)?\\.)?overload",
184
- "if (typing(_extensions)?\\.)?TYPE_CHECKING:"
185
- ]
@@ -1,66 +0,0 @@
1
- [metadata]
2
- name = apache-airflow-providers-http
3
- summary = Provider for Apache Airflow. Implements apache-airflow-providers-http package
4
- description = Provider package apache-airflow-providers-http for Apache Airflow
5
- long_description = file: README.rst
6
- long_description_content_type = text/x-rst
7
- author = Apache Software Foundation
8
- author_email = dev@airflow.apache.org
9
- url = https://airflow.apache.org/
10
- download_url = https://archive.apache.org/dist/airflow/providers
11
- license = Apache License 2.0
12
- license_files =
13
- LICENSE
14
- NOTICE
15
- classifiers =
16
- Development Status :: 5 - Production/Stable
17
- Environment :: Console
18
- Environment :: Web Environment
19
- Intended Audience :: Developers
20
- Intended Audience :: System Administrators
21
- Framework :: Apache Airflow
22
- Framework :: Apache Airflow :: Provider
23
- License :: OSI Approved :: Apache Software License
24
- Programming Language :: Python :: 3.8
25
- Programming Language :: Python :: 3.9
26
- Programming Language :: Python :: 3.10
27
- Programming Language :: Python :: 3.11
28
- Topic :: System :: Monitoring
29
- project_urls =
30
- Documentation=https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.0/
31
- Changelog=https://airflow.apache.org/docs/apache-airflow-providers-http/4.7.0/changelog.html
32
- Bug Tracker=https://github.com/apache/airflow/issues
33
- Source Code=https://github.com/apache/airflow
34
- Slack Chat=https://s.apache.org/airflow-slack
35
- Twitter=https://twitter.com/ApacheAirflow
36
- YouTube=https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
37
-
38
- [bdist_wheel]
39
- python_tag = py3
40
-
41
- [options]
42
- zip_safe = False
43
- include_package_data = True
44
- python_requires = ~=3.8
45
- packages = find:
46
- setup_requires =
47
- setuptools
48
- wheel
49
- install_requires =
50
- aiohttp
51
- apache-airflow>=2.5.0.dev0
52
- asgiref
53
- requests>=2.26.0
54
- requests_toolbelt
55
-
56
- [options.entry_points]
57
- apache_airflow_provider =
58
- provider_info=airflow.providers.http.get_provider_info:get_provider_info
59
-
60
- [files]
61
- packages = airflow.providers.http
62
-
63
- [egg_info]
64
- tag_build = rc2
65
- tag_date = 0
66
-
@@ -1,49 +0,0 @@
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.
18
-
19
- # NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
20
- # OVERWRITTEN WHEN PREPARING PACKAGES.
21
- #
22
- # IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
23
- # `SETUP_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
24
-
25
- """Setup.py for the apache-airflow-providers-http package."""
26
-
27
- from setuptools import find_namespace_packages, setup
28
-
29
- version = "4.7.0"
30
-
31
-
32
- def do_setup():
33
- """Perform the package apache-airflow-providers-http setup."""
34
- setup(
35
- version=version,
36
- extras_require={},
37
- packages=find_namespace_packages(
38
- include=[
39
- "airflow.providers.http",
40
- "airflow.providers.http.*",
41
- "airflow.providers.http_vendor",
42
- "airflow.providers.http_vendor.*",
43
- ],
44
- ),
45
- )
46
-
47
-
48
- if __name__ == "__main__":
49
- do_setup()