apache-airflow-providers-sftp 5.1.1rc1__tar.gz → 5.1.2rc1__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 (17) hide show
  1. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/PKG-INFO +8 -8
  2. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/README.rst +4 -4
  3. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/pyproject.toml +5 -5
  4. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/__init__.py +1 -1
  5. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/get_provider_info.py +2 -1
  6. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/sensors/sftp.py +15 -9
  7. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/LICENSE +0 -0
  8. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/decorators/__init__.py +0 -0
  9. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/decorators/sensors/__init__.py +0 -0
  10. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/decorators/sensors/sftp.py +0 -0
  11. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/hooks/__init__.py +0 -0
  12. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/hooks/sftp.py +0 -0
  13. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/operators/__init__.py +0 -0
  14. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/operators/sftp.py +0 -0
  15. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/sensors/__init__.py +0 -0
  16. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/triggers/__init__.py +0 -0
  17. {apache_airflow_providers_sftp-5.1.1rc1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/triggers/sftp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-sftp
3
- Version: 5.1.1rc1
3
+ Version: 5.1.2rc1
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>
@@ -27,11 +27,11 @@ 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.1.1/changelog.html
31
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.1
30
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2/changelog.html
31
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2
32
+ Project-URL: Mastodon, https://fosstodon.org/@airflow
32
33
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
33
34
  Project-URL: Source Code, https://github.com/apache/airflow
34
- Project-URL: Twitter, https://x.com/ApacheAirflow
35
35
  Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
36
36
  Provides-Extra: common-compat
37
37
  Provides-Extra: openlineage
@@ -61,7 +61,7 @@ Provides-Extra: openlineage
61
61
 
62
62
  Package ``apache-airflow-providers-sftp``
63
63
 
64
- Release: ``5.1.1``
64
+ Release: ``5.1.2``
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.1.1/>`_.
77
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2/>`_.
78
78
 
79
79
  Installation
80
80
  ------------
@@ -101,7 +101,7 @@ Cross provider package dependencies
101
101
  -----------------------------------
102
102
 
103
103
  Those are dependencies that might be needed in order to use all the features of the package.
104
- You need to install the specified provider packages in order to use them.
104
+ You need to install the specified providers in order to use them.
105
105
 
106
106
  You can install such cross-provider dependencies when installing from PyPI. For example:
107
107
 
@@ -119,5 +119,5 @@ Dependent package
119
119
  ================================================================================================================== =================
120
120
 
121
121
  The changelog for the provider package can be found in the
122
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.1/changelog.html>`_.
122
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2/changelog.html>`_.
123
123
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-sftp``
25
25
 
26
- Release: ``5.1.1``
26
+ Release: ``5.1.2``
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.1.1/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -63,7 +63,7 @@ Cross provider package dependencies
63
63
  -----------------------------------
64
64
 
65
65
  Those are dependencies that might be needed in order to use all the features of the package.
66
- You need to install the specified provider packages in order to use them.
66
+ You need to install the specified providers in order to use them.
67
67
 
68
68
  You can install such cross-provider dependencies when installing from PyPI. For example:
69
69
 
@@ -81,4 +81,4 @@ Dependent package
81
81
  ================================================================================================================== =================
82
82
 
83
83
  The changelog for the provider package can be found in the
84
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.1/changelog.html>`_.
84
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2/changelog.html>`_.
@@ -20,12 +20,12 @@
20
20
  # IF YOU WANT TO MODIFY THIS FILE EXCEPT DEPENDENCIES, YOU SHOULD MODIFY THE TEMPLATE
21
21
  # `pyproject_TEMPLATE.toml.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
22
22
  [build-system]
23
- requires = ["flit_core==3.11.0"]
23
+ requires = ["flit_core==3.12.0"]
24
24
  build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-sftp"
28
- version = "5.1.1.rc1"
28
+ version = "5.1.2.rc1"
29
29
  description = "Provider package apache-airflow-providers-sftp for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -95,12 +95,12 @@ apache-airflow-providers-fab = {workspace = true}
95
95
  apache-airflow-providers-standard = {workspace = true}
96
96
 
97
97
  [project.urls]
98
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.1"
99
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.1/changelog.html"
98
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2"
99
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2/changelog.html"
100
100
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
101
101
  "Source Code" = "https://github.com/apache/airflow"
102
102
  "Slack Chat" = "https://s.apache.org/airflow-slack"
103
- "Twitter" = "https://x.com/ApacheAirflow"
103
+ "Mastodon" = "https://fosstodon.org/@airflow"
104
104
  "YouTube" = "https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/"
105
105
 
106
106
  [project.entry-points."apache_airflow_provider"]
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "5.1.1"
32
+ __version__ = "5.1.2"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.9.0"
@@ -27,8 +27,9 @@ def get_provider_info():
27
27
  "name": "SFTP",
28
28
  "description": "`SSH File Transfer Protocol (SFTP) <https://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/>`__\n",
29
29
  "state": "ready",
30
- "source-date-epoch": 1741509612,
30
+ "source-date-epoch": 1743836705,
31
31
  "versions": [
32
+ "5.1.2",
32
33
  "5.1.1",
33
34
  "5.1.0",
34
35
  "5.0.0",
@@ -95,18 +95,24 @@ class SFTPSensor(BaseSensorOperator):
95
95
  else:
96
96
  return False
97
97
  else:
98
- actual_files_to_check = [self.path]
99
-
100
- for actual_file_to_check in actual_files_to_check:
101
98
  try:
102
- mod_time = self.hook.get_mod_time(actual_file_to_check)
103
- self.log.info("Found File %s last modified: %s", actual_file_to_check, mod_time)
99
+ self.hook.isfile(self.path)
100
+ actual_files_to_check = [self.path]
104
101
  except OSError as e:
105
102
  if e.errno != SFTP_NO_SUCH_FILE:
106
103
  raise AirflowException from e
107
- continue
104
+ actual_files_to_check = []
105
+
106
+ if self.newer_than:
107
+ for actual_file_to_check in actual_files_to_check:
108
+ try:
109
+ mod_time = self.hook.get_mod_time(actual_file_to_check)
110
+ self.log.info("Found File %s last modified: %s", actual_file_to_check, mod_time)
111
+ except OSError as e:
112
+ if e.errno != SFTP_NO_SUCH_FILE:
113
+ raise AirflowException from e
114
+ continue
108
115
 
109
- if self.newer_than:
110
116
  if isinstance(self.newer_than, str):
111
117
  self.newer_than = parse(self.newer_than)
112
118
  _mod_time = convert_to_utc(datetime.strptime(mod_time, "%Y%m%d%H%M%S"))
@@ -126,8 +132,8 @@ class SFTPSensor(BaseSensorOperator):
126
132
  str(_mod_time),
127
133
  str(_newer_than),
128
134
  )
129
- else:
130
- files_found.append(actual_file_to_check)
135
+ else:
136
+ files_found = actual_files_to_check
131
137
 
132
138
  if not len(files_found):
133
139
  return False