apache-airflow-providers-http 5.3.3__tar.gz → 5.3.4__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 (44) hide show
  1. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/PKG-INFO +11 -12
  2. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/README.rst +8 -9
  3. apache_airflow_providers_http-5.3.4/docs/.latest-doc-only-change.txt +1 -0
  4. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/changelog.rst +25 -0
  5. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/connections/http.rst +1 -1
  6. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/index.rst +7 -9
  7. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/provider.yaml +2 -1
  8. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/pyproject.toml +4 -4
  9. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/__init__.py +1 -1
  10. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/hooks/http.py +6 -0
  11. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/hooks/test_http.py +23 -0
  12. apache_airflow_providers_http-5.3.3/docs/.latest-doc-only-change.txt +0 -1
  13. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/commits.rst +0 -0
  14. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/conf.py +0 -0
  15. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/installing-providers-from-sources.rst +0 -0
  16. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/integration-logos/HTTP.png +0 -0
  17. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/operators.rst +0 -0
  18. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/docs/security.rst +0 -0
  19. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/__init__.py +0 -0
  20. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/__init__.py +0 -0
  21. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/LICENSE +0 -0
  22. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/exceptions.py +0 -0
  23. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/get_provider_info.py +0 -0
  24. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/hooks/__init__.py +0 -0
  25. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/operators/__init__.py +0 -0
  26. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/operators/http.py +0 -0
  27. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/sensors/__init__.py +0 -0
  28. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/sensors/http.py +0 -0
  29. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/triggers/__init__.py +0 -0
  30. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/triggers/http.py +0 -0
  31. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/src/airflow/providers/http/version_compat.py +0 -0
  32. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/conftest.py +0 -0
  33. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/system/__init__.py +0 -0
  34. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/system/http/__init__.py +0 -0
  35. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/system/http/example_http.py +0 -0
  36. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/__init__.py +0 -0
  37. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/__init__.py +0 -0
  38. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/hooks/__init__.py +0 -0
  39. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/operators/__init__.py +0 -0
  40. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/operators/test_http.py +0 -0
  41. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/sensors/__init__.py +0 -0
  42. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/sensors/test_http.py +0 -0
  43. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/triggers/__init__.py +0 -0
  44. {apache_airflow_providers_http-5.3.3 → apache_airflow_providers_http-5.3.4}/tests/unit/http/triggers/test_http.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-http
3
- Version: 5.3.3
3
+ Version: 5.3.4
4
4
  Summary: Provider package apache-airflow-providers-http for Apache Airflow
5
5
  Keywords: airflow-provider,http,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -26,8 +26,8 @@ Requires-Dist: requests-toolbelt>=1.0.0
26
26
  Requires-Dist: aiohttp>=3.12.14
27
27
  Requires-Dist: asgiref>=2.3.0
28
28
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
29
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.3/changelog.html
30
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.3
29
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.4/changelog.html
30
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.4
31
31
  Project-URL: Mastodon, https://fosstodon.org/@airflow
32
32
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
33
33
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -58,9 +58,8 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
58
58
 
59
59
  Package ``apache-airflow-providers-http``
60
60
 
61
- Release: ``5.3.3``
61
+ Release: ``5.3.4``
62
62
 
63
- Release Date: ``|PypiReleaseDate|``
64
63
 
65
64
  `Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
66
65
 
@@ -72,12 +71,12 @@ This is a provider package for ``http`` provider. All classes for this provider
72
71
  are in ``airflow.providers.http`` python package.
73
72
 
74
73
  You can find package information and changelog for the provider
75
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.3/>`_.
74
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.4/>`_.
76
75
 
77
76
  Installation
78
77
  ------------
79
78
 
80
- You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
79
+ You can install this package on top of an existing Airflow installation (see ``Requirements`` below
81
80
  for the minimum Airflow version supported) via
82
81
  ``pip install apache-airflow-providers-http``
83
82
 
@@ -86,16 +85,16 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
86
85
  Requirements
87
86
  ------------
88
87
 
89
- ===================== ====================
88
+ ===================== ==================
90
89
  PIP package Version required
91
- ===================== ====================
90
+ ===================== ==================
92
91
  ``apache-airflow`` ``>=2.10.0``
93
92
  ``requests`` ``>=2.32.0,<3``
94
93
  ``requests-toolbelt`` ``>=1.0.0``
95
- ``aiohttp`` ``!=3.11.0,>=3.9.2``
94
+ ``aiohttp`` ``>=3.12.14``
96
95
  ``asgiref`` ``>=2.3.0``
97
- ===================== ====================
96
+ ===================== ==================
98
97
 
99
98
  The changelog for the provider package can be found in the
100
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.3/changelog.html>`_.
99
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.4/changelog.html>`_.
101
100
 
@@ -23,9 +23,8 @@
23
23
 
24
24
  Package ``apache-airflow-providers-http``
25
25
 
26
- Release: ``5.3.3``
26
+ Release: ``5.3.4``
27
27
 
28
- Release Date: ``|PypiReleaseDate|``
29
28
 
30
29
  `Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
31
30
 
@@ -37,12 +36,12 @@ This is a provider package for ``http`` provider. All classes for this provider
37
36
  are in ``airflow.providers.http`` python package.
38
37
 
39
38
  You can find package information and changelog for the provider
40
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.3/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.4/>`_.
41
40
 
42
41
  Installation
43
42
  ------------
44
43
 
45
- You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
44
+ You can install this package on top of an existing Airflow installation (see ``Requirements`` below
46
45
  for the minimum Airflow version supported) via
47
46
  ``pip install apache-airflow-providers-http``
48
47
 
@@ -51,15 +50,15 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
51
50
  Requirements
52
51
  ------------
53
52
 
54
- ===================== ====================
53
+ ===================== ==================
55
54
  PIP package Version required
56
- ===================== ====================
55
+ ===================== ==================
57
56
  ``apache-airflow`` ``>=2.10.0``
58
57
  ``requests`` ``>=2.32.0,<3``
59
58
  ``requests-toolbelt`` ``>=1.0.0``
60
- ``aiohttp`` ``!=3.11.0,>=3.9.2``
59
+ ``aiohttp`` ``>=3.12.14``
61
60
  ``asgiref`` ``>=2.3.0``
62
- ===================== ====================
61
+ ===================== ==================
63
62
 
64
63
  The changelog for the provider package can be found in the
65
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.3/changelog.html>`_.
64
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.4/changelog.html>`_.
@@ -0,0 +1 @@
1
+ bcc64a255e488e74db034e9b7e46a002b1c0f8cd
@@ -27,6 +27,31 @@
27
27
  Changelog
28
28
  ---------
29
29
 
30
+ 5.3.4
31
+ .....
32
+
33
+
34
+ Release Date: ``|PypiReleaseDate|``
35
+
36
+ Bug Fixes
37
+ ~~~~~~~~~
38
+
39
+ * ``fix(http): Fix HttpHook.url_from_endpoint() lazy initialization (#54202)``
40
+
41
+ Doc-only
42
+ ~~~~~~~~
43
+
44
+ * ``Make term Dag consistent in providers docs (#55101)``
45
+
46
+ .. Below changes are excluded from the changelog. Move them to
47
+ appropriate section above if needed. Do not delete the lines(!):
48
+ * ``Switch pre-commit to prek (#54258)``
49
+ * ``Prepare release for Aug 2025 1st wave of providers (#54193)``
50
+ * ``Conn docs extra fix (#53942)``
51
+
52
+ .. Review and move the new changes to one of the sections above:
53
+ * ``Fix Airflow 2 reference in README/index of providers (#55240)``
54
+
30
55
  5.3.3
31
56
  .....
32
57
 
@@ -53,7 +53,7 @@ Port (optional)
53
53
  Schema (optional)
54
54
  Specify the service type etc: http/https.
55
55
 
56
- Extras (optional)
56
+ Extra (optional)
57
57
  Specify headers and default requests parameters in json format.
58
58
  Following default requests parameters are taken into account:
59
59
 
@@ -56,7 +56,7 @@
56
56
  :maxdepth: 1
57
57
  :caption: Resources
58
58
 
59
- Example DAGs <https://github.com/apache/airflow/tree/providers-http/|version|/providers/http/tests/system/http>
59
+ Example Dags <https://github.com/apache/airflow/tree/providers-http/|version|/providers/http/tests/system/http>
60
60
  PyPI Repository <https://pypi.org/project/apache-airflow-providers-http/>
61
61
  Installing from sources <installing-providers-from-sources>
62
62
 
@@ -77,9 +77,7 @@ apache-airflow-providers-http package
77
77
  `Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
78
78
 
79
79
 
80
- Release: 5.3.3
81
-
82
- Release Date: ``|PypiReleaseDate|``
80
+ Release: 5.3.4
83
81
 
84
82
  Provider package
85
83
  ----------------
@@ -90,7 +88,7 @@ All classes for this package are included in the ``airflow.providers.http`` pyth
90
88
  Installation
91
89
  ------------
92
90
 
93
- You can install this package on top of an existing Airflow 2 installation via
91
+ You can install this package on top of an existing Airflow installation via
94
92
  ``pip install apache-airflow-providers-http``.
95
93
  For the minimum Airflow version supported, see ``Requirements`` below.
96
94
 
@@ -99,12 +97,12 @@ Requirements
99
97
 
100
98
  The minimum Apache Airflow version supported by this provider distribution is ``2.10.0``.
101
99
 
102
- ===================== ====================
100
+ ===================== ==================
103
101
  PIP package Version required
104
- ===================== ====================
102
+ ===================== ==================
105
103
  ``apache-airflow`` ``>=2.10.0``
106
104
  ``requests`` ``>=2.32.0,<3``
107
105
  ``requests-toolbelt`` ``>=1.0.0``
108
- ``aiohttp`` ``!=3.11.0,>=3.9.2``
106
+ ``aiohttp`` ``>=3.12.14``
109
107
  ``asgiref`` ``>=2.3.0``
110
- ===================== ====================
108
+ ===================== ==================
@@ -22,12 +22,13 @@ description: |
22
22
  `Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1753691415
25
+ source-date-epoch: 1756876981
26
26
  # Note that those versions are maintained by release manager - do not update them manually
27
27
  # with the exception of case where other provider in sources has >= new provider version.
28
28
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
29
29
  # to be done in the same PR
30
30
  versions:
31
+ - 5.3.4
31
32
  - 5.3.3
32
33
  - 5.3.2
33
34
  - 5.3.1
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-http"
28
- version = "5.3.3"
28
+ version = "5.3.4"
29
29
  description = "Provider package apache-airflow-providers-http for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -54,7 +54,7 @@ requires-python = ">=3.10"
54
54
 
55
55
  # The dependencies should be modified in place in the generated file.
56
56
  # Any change in the dependencies is preserved when the file is regenerated
57
- # Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
57
+ # Make sure to run ``prek update-providers-dependencies --all-files``
58
58
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
59
59
  dependencies = [
60
60
  "apache-airflow>=2.10.0",
@@ -100,8 +100,8 @@ apache-airflow-providers-common-sql = {workspace = true}
100
100
  apache-airflow-providers-standard = {workspace = true}
101
101
 
102
102
  [project.urls]
103
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.3"
104
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.3/changelog.html"
103
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.4"
104
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.4/changelog.html"
105
105
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
106
106
  "Source Code" = "https://github.com/apache/airflow"
107
107
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "5.3.3"
32
+ __version__ = "5.3.4"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -135,6 +135,7 @@ class HttpHook(BaseHook):
135
135
  self.http_conn_id = http_conn_id
136
136
  self.method = method.upper()
137
137
  self.base_url: str = ""
138
+ self._base_url_initialized: bool = False
138
139
  self._retry_obj: Callable[..., Any]
139
140
  self._auth_type: Any = auth_type
140
141
 
@@ -203,6 +204,7 @@ class HttpHook(BaseHook):
203
204
  parsed = urlparse(self.base_url)
204
205
  if not parsed.scheme:
205
206
  raise ValueError(f"Invalid base URL: Missing scheme in {self.base_url}")
207
+ self._base_url_initialized = True
206
208
 
207
209
  def _configure_session_from_auth(self, session: Session, connection: Connection) -> Session:
208
210
  session.auth = self._extract_auth(connection)
@@ -383,6 +385,10 @@ class HttpHook(BaseHook):
383
385
 
384
386
  def url_from_endpoint(self, endpoint: str | None) -> str:
385
387
  """Combine base url with endpoint."""
388
+ # Ensure base_url is set by initializing it if it hasn't been initialized yet
389
+ if not self._base_url_initialized and not self.base_url:
390
+ connection = self.get_connection(self.http_conn_id)
391
+ self._set_base_url(connection)
386
392
  return _url_from_endpoint(base_url=self.base_url, endpoint=endpoint)
387
393
 
388
394
  def test_connection(self):
@@ -612,8 +612,31 @@ class TestHttpHook:
612
612
  def test_url_from_endpoint(self, base_url: str, endpoint: str, expected_url: str):
613
613
  hook = HttpHook()
614
614
  hook.base_url = base_url
615
+ hook._base_url_initialized = True # Mark as initialized to prevent lazy loading
615
616
  assert hook.url_from_endpoint(endpoint) == expected_url
616
617
 
618
+ @mock.patch("airflow.providers.http.hooks.http.HttpHook.get_connection")
619
+ def test_url_from_endpoint_lazy_initialization(self, mock_get_connection):
620
+ """Test that url_from_endpoint works without calling get_conn() first."""
621
+ # Mock the connection
622
+ mock_connection = mock.MagicMock()
623
+ mock_connection.host = "foo.bar.com"
624
+ mock_connection.schema = "https"
625
+ mock_connection.port = None
626
+ mock_get_connection.return_value = mock_connection
627
+
628
+ # Create hook without calling get_conn() and verify that base_url is not initialized
629
+ hook = HttpHook(http_conn_id="test_conn")
630
+ assert not hook._base_url_initialized
631
+
632
+ # This should work now with our fix and verify the URL was constructed correctly
633
+ url = hook.url_from_endpoint("baz/bop")
634
+ assert url == "https://foo.bar.com/baz/bop"
635
+
636
+ # Verify get_connection was called and and verify that base_url is now initialized
637
+ mock_get_connection.assert_called_once_with("test_conn")
638
+ assert hook._base_url_initialized
639
+
617
640
  def test_custom_adapter(self):
618
641
  custom_adapter = HTTPAdapter()
619
642
  hook = HttpHook(method="GET", adapter=custom_adapter)
@@ -1 +0,0 @@
1
- 290f63206480cf06cae1fb4a3d52e22f528e14ea