apache-airflow-providers-sftp 5.4.0__tar.gz → 5.4.1rc1__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.

Potentially problematic release.


This version of apache-airflow-providers-sftp might be problematic. Click here for more details.

Files changed (49) hide show
  1. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/PKG-INFO +18 -8
  2. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/README.rst +13 -3
  3. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/changelog.rst +17 -2
  4. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/index.rst +3 -3
  5. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/provider.yaml +2 -1
  6. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/pyproject.toml +5 -5
  7. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/__init__.py +1 -1
  8. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/operators/sftp.py +10 -9
  9. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/hooks/test_sftp.py +1 -3
  10. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/operators/test_sftp.py +1 -1
  11. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/.latest-doc-only-change.txt +0 -0
  12. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/commits.rst +0 -0
  13. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/conf.py +0 -0
  14. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/connections/sftp.rst +0 -0
  15. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/installing-providers-from-sources.rst +0 -0
  16. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/integration-logos/SFTP.png +0 -0
  17. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/security.rst +0 -0
  18. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/docs/sensors/sftp_sensor.rst +0 -0
  19. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/__init__.py +0 -0
  20. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/__init__.py +0 -0
  21. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/LICENSE +0 -0
  22. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/decorators/__init__.py +0 -0
  23. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/decorators/sensors/__init__.py +0 -0
  24. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/decorators/sensors/sftp.py +0 -0
  25. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/exceptions.py +0 -0
  26. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/get_provider_info.py +0 -0
  27. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/hooks/__init__.py +0 -0
  28. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/hooks/sftp.py +0 -0
  29. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/operators/__init__.py +0 -0
  30. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/sensors/__init__.py +0 -0
  31. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/sensors/sftp.py +0 -0
  32. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/triggers/__init__.py +0 -0
  33. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/triggers/sftp.py +0 -0
  34. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/src/airflow/providers/sftp/version_compat.py +0 -0
  35. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/conftest.py +0 -0
  36. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/system/__init__.py +0 -0
  37. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/system/sftp/__init__.py +0 -0
  38. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/system/sftp/example_sftp_sensor.py +0 -0
  39. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/__init__.py +0 -0
  40. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/__init__.py +0 -0
  41. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/decorators/__init__.py +0 -0
  42. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/decorators/sensors/__init__.py +0 -0
  43. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/decorators/sensors/test_sftp.py +0 -0
  44. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/hooks/__init__.py +0 -0
  45. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/operators/__init__.py +0 -0
  46. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/sensors/__init__.py +0 -0
  47. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/sensors/test_sftp.py +0 -0
  48. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/triggers/__init__.py +0 -0
  49. {apache_airflow_providers_sftp-5.4.0 → apache_airflow_providers_sftp-5.4.1rc1}/tests/unit/sftp/triggers/test_sftp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-sftp
3
- Version: 5.4.0
3
+ Version: 5.4.1rc1
4
4
  Summary: Provider package apache-airflow-providers-sftp for Apache Airflow
5
5
  Keywords: airflow-provider,sftp,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -20,15 +20,15 @@ Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Classifier: Topic :: System :: Monitoring
23
- Requires-Dist: apache-airflow>=2.10.0
24
- Requires-Dist: apache-airflow-providers-ssh>=4.0.0
23
+ Requires-Dist: apache-airflow>=2.10.0rc1
24
+ Requires-Dist: apache-airflow-providers-ssh>=4.0.0rc1
25
25
  Requires-Dist: paramiko>=2.9.0,<4.0.0
26
26
  Requires-Dist: asyncssh>=2.12.0
27
27
  Requires-Dist: apache-airflow-providers-common-compat ; extra == "common-compat"
28
28
  Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
29
29
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
30
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.0/changelog.html
31
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.0
30
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-sftp/5.4.1/changelog.html
31
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-sftp/5.4.1
32
32
  Project-URL: Mastodon, https://fosstodon.org/@airflow
33
33
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
34
34
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -61,7 +61,7 @@ Provides-Extra: openlineage
61
61
 
62
62
  Package ``apache-airflow-providers-sftp``
63
63
 
64
- Release: ``5.4.0``
64
+ Release: ``5.4.1``
65
65
 
66
66
 
67
67
  `SSH File Transfer Protocol (SFTP) <https://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/>`__
@@ -74,7 +74,7 @@ This is a provider package for ``sftp`` provider. All classes for this provider
74
74
  are in ``airflow.providers.sftp`` python package.
75
75
 
76
76
  You can find package information and changelog for the provider
77
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.0/>`_.
77
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.1/>`_.
78
78
 
79
79
  Installation
80
80
  ------------
@@ -118,6 +118,16 @@ Dependent package
118
118
  `apache-airflow-providers-ssh <https://airflow.apache.org/docs/apache-airflow-providers-ssh>`_ ``ssh``
119
119
  ================================================================================================================== =================
120
120
 
121
+ Optional dependencies
122
+ ----------------------
123
+
124
+ ================= ==========================================
125
+ Extra Dependencies
126
+ ================= ==========================================
127
+ ``common.compat`` ``apache-airflow-providers-common-compat``
128
+ ``openlineage`` ``apache-airflow-providers-openlineage``
129
+ ================= ==========================================
130
+
121
131
  The changelog for the provider package can be found in the
122
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.0/changelog.html>`_.
132
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.1/changelog.html>`_.
123
133
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-sftp``
25
25
 
26
- Release: ``5.4.0``
26
+ Release: ``5.4.1``
27
27
 
28
28
 
29
29
  `SSH File Transfer Protocol (SFTP) <https://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/>`__
@@ -36,7 +36,7 @@ This is a provider package for ``sftp`` provider. All classes for this provider
36
36
  are in ``airflow.providers.sftp`` python package.
37
37
 
38
38
  You can find package information and changelog for the provider
39
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.0/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.1/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -80,5 +80,15 @@ Dependent package
80
80
  `apache-airflow-providers-ssh <https://airflow.apache.org/docs/apache-airflow-providers-ssh>`_ ``ssh``
81
81
  ================================================================================================================== =================
82
82
 
83
+ Optional dependencies
84
+ ----------------------
85
+
86
+ ================= ==========================================
87
+ Extra Dependencies
88
+ ================= ==========================================
89
+ ``common.compat`` ``apache-airflow-providers-common-compat``
90
+ ``openlineage`` ``apache-airflow-providers-openlineage``
91
+ ================= ==========================================
92
+
83
93
  The changelog for the provider package can be found in the
84
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.0/changelog.html>`_.
94
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.1/changelog.html>`_.
@@ -27,11 +27,26 @@
27
27
  Changelog
28
28
  ---------
29
29
 
30
- 5.4.0
30
+ 5.4.1
31
31
  .....
32
32
 
33
+ Bug Fixes
34
+ ~~~~~~~~~
35
+
36
+ * ``Pass required remote_host arg to SSHHook (#55664)``
37
+
38
+ Doc-only
39
+ ~~~~~~~~
40
+
41
+ * ``Remove placeholder Release Date in changelog and index files (#56056)``
42
+
43
+ .. Below changes are excluded from the changelog. Move them to
44
+ appropriate section above if needed. Do not delete the lines(!):
45
+ * ``Enable PT001 rule to prvoider tests (#55935)``
46
+
47
+ 5.4.0
48
+ .....
33
49
 
34
- Release Date: ``|PypiReleaseDate|``
35
50
 
36
51
  Features
37
52
  ~~~~~~~~
@@ -70,7 +70,7 @@ apache-airflow-providers-sftp package
70
70
  `SSH File Transfer Protocol (SFTP) <https://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/>`__
71
71
 
72
72
 
73
- Release: 5.4.0
73
+ Release: 5.4.1
74
74
 
75
75
  Provider package
76
76
  ----------------
@@ -126,5 +126,5 @@ Downloading official packages
126
126
  You can download officially released packages and verify their checksums and signatures from the
127
127
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
128
128
 
129
- * `The apache-airflow-providers-sftp 5.4.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.0.tar.gz.sha512>`__)
130
- * `The apache-airflow-providers-sftp 5.4.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.0-py3-none-any.whl.sha512>`__)
129
+ * `The apache-airflow-providers-sftp 5.4.1 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.1.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.1.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.1.tar.gz.sha512>`__)
130
+ * `The apache-airflow-providers-sftp 5.4.1 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.1-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.1-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sftp-5.4.1-py3-none-any.whl.sha512>`__)
@@ -22,12 +22,13 @@ description: |
22
22
  `SSH File Transfer Protocol (SFTP) <https://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1756877505
25
+ source-date-epoch: 1761117478
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.4.1
31
32
  - 5.4.0
32
33
  - 5.3.4
33
34
  - 5.3.3
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-sftp"
28
- version = "5.4.0"
28
+ version = "5.4.1rc1"
29
29
  description = "Provider package apache-airflow-providers-sftp for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -57,8 +57,8 @@ requires-python = ">=3.10"
57
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
- "apache-airflow>=2.10.0",
61
- "apache-airflow-providers-ssh>=4.0.0",
60
+ "apache-airflow>=2.10.0rc1",
61
+ "apache-airflow-providers-ssh>=4.0.0rc1",
62
62
  # TODO: Bump to >= 4.0.0 once https://github.com/apache/airflow/issues/54079 is handled
63
63
  "paramiko>=2.9.0,<4.0.0",
64
64
  "asyncssh>=2.12.0",
@@ -111,8 +111,8 @@ apache-airflow-providers-common-sql = {workspace = true}
111
111
  apache-airflow-providers-standard = {workspace = true}
112
112
 
113
113
  [project.urls]
114
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.0"
115
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.4.0/changelog.html"
114
+ "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-sftp/5.4.1"
115
+ "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-sftp/5.4.1/changelog.html"
116
116
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
117
117
  "Source Code" = "https://github.com/apache/airflow"
118
118
  "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.4.0"
32
+ __version__ = "5.4.1"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -144,24 +144,25 @@ class SFTPOperator(BaseOperator):
144
144
 
145
145
  file_msg = None
146
146
  try:
147
+ if self.remote_host is not None:
148
+ self.log.info(
149
+ "remote_host is provided explicitly. "
150
+ "It will replace the remote_host which was defined "
151
+ "in sftp_hook or predefined in connection of ssh_conn_id."
152
+ )
153
+
147
154
  if self.ssh_conn_id:
148
155
  if self.sftp_hook and isinstance(self.sftp_hook, SFTPHook):
149
156
  self.log.info("ssh_conn_id is ignored when sftp_hook is provided.")
150
157
  else:
151
158
  self.log.info("sftp_hook not provided or invalid. Trying ssh_conn_id to create SFTPHook.")
152
- self.sftp_hook = SFTPHook(ssh_conn_id=self.ssh_conn_id)
159
+ self.sftp_hook = SFTPHook(
160
+ ssh_conn_id=self.ssh_conn_id, remote_host=self.remote_host or ""
161
+ )
153
162
 
154
163
  if not self.sftp_hook:
155
164
  raise AirflowException("Cannot operate without sftp_hook or ssh_conn_id.")
156
165
 
157
- if self.remote_host is not None:
158
- self.log.info(
159
- "remote_host is provided explicitly. "
160
- "It will replace the remote_host which was defined "
161
- "in sftp_hook or predefined in connection of ssh_conn_id."
162
- )
163
- self.sftp_hook.remote_host = self.remote_host
164
-
165
166
  if self.operation.lower() in (SFTPOperation.GET, SFTPOperation.PUT):
166
167
  for _local_filepath, _remote_filepath in zip(local_filepath_array, remote_filepath_array):
167
168
  if self.operation.lower() == SFTPOperation.GET:
@@ -814,11 +814,9 @@ class TestSFTPHookAsync:
814
814
  )
815
815
 
816
816
  hook = SFTPHookAsync()
817
- with pytest.raises(ValueError) as exc:
817
+ with pytest.raises(ValueError, match="Host key check was skipped, but `host_key` value was given"):
818
818
  await hook._get_conn()
819
819
 
820
- assert str(exc.value) == "Host key check was skipped, but `host_key` value was given"
821
-
822
820
  @patch("paramiko.SSHClient.connect")
823
821
  @patch("asyncssh.import_private_key")
824
822
  @patch("asyncssh.connect", new_callable=AsyncMock)
@@ -389,7 +389,7 @@ class TestSFTPOperator:
389
389
  assert task_3.sftp_hook.remote_host == "remotehost"
390
390
 
391
391
  def test_unequal_local_remote_file_paths(self):
392
- with pytest.raises(ValueError):
392
+ with pytest.raises(ValueError, match="1 paths in local_filepath != 2 paths in remote_filepath"):
393
393
  SFTPOperator(
394
394
  task_id="test_sftp_unequal_paths",
395
395
  local_filepath="/tmp/test",