apache-airflow-providers-sftp 5.1.1__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.
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/PKG-INFO +10 -10
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/README.rst +4 -4
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/pyproject.toml +7 -7
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/__init__.py +1 -1
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/get_provider_info.py +2 -1
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/sensors/sftp.py +15 -9
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/LICENSE +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/decorators/__init__.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/decorators/sensors/__init__.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/decorators/sensors/sftp.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/hooks/__init__.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/hooks/sftp.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/operators/__init__.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/operators/sftp.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/sensors/__init__.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/src/airflow/providers/sftp/triggers/__init__.py +0 -0
- {apache_airflow_providers_sftp-5.1.1 → 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.
|
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>
|
@@ -20,18 +20,18 @@ Classifier: Programming Language :: Python :: 3.10
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.11
|
21
21
|
Classifier: Programming Language :: Python :: 3.12
|
22
22
|
Classifier: Topic :: System :: Monitoring
|
23
|
-
Requires-Dist: apache-airflow>=2.9.
|
24
|
-
Requires-Dist: apache-airflow-providers-ssh>=2.1.
|
23
|
+
Requires-Dist: apache-airflow>=2.9.0rc0
|
24
|
+
Requires-Dist: apache-airflow-providers-ssh>=2.1.0rc0
|
25
25
|
Requires-Dist: paramiko>=2.9.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.1.
|
31
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.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.
|
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.
|
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
|
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.
|
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.
|
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.
|
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
|
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.
|
84
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.2/changelog.html>`_.
|
{apache_airflow_providers_sftp-5.1.1 → apache_airflow_providers_sftp-5.1.2rc1}/pyproject.toml
RENAMED
@@ -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.
|
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.
|
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 = [
|
@@ -57,8 +57,8 @@ requires-python = "~=3.9"
|
|
57
57
|
# Make sure to run ``breeze static-checks --type 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.9.
|
61
|
-
"apache-airflow-providers-ssh>=2.1.
|
60
|
+
"apache-airflow>=2.9.0rc0",
|
61
|
+
"apache-airflow-providers-ssh>=2.1.0rc0",
|
62
62
|
"paramiko>=2.9.0",
|
63
63
|
"asyncssh>=2.12.0",
|
64
64
|
]
|
@@ -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.
|
99
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-sftp/5.1.
|
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
|
-
"
|
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.
|
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":
|
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
|
-
|
103
|
-
self.
|
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
|
-
|
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
|
-
|
130
|
-
|
135
|
+
else:
|
136
|
+
files_found = actual_files_to_check
|
131
137
|
|
132
138
|
if not len(files_found):
|
133
139
|
return False
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|