apache-airflow-providers-openlineage 1.2.1rc1__py3-none-any.whl → 1.3.0__py3-none-any.whl
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_openlineage-1.2.1rc1.dist-info → airflow/providers/openlineage}/LICENSE +52 -0
- airflow/providers/openlineage/__init__.py +4 -5
- airflow/providers/openlineage/get_provider_info.py +4 -3
- airflow/providers/openlineage/plugins/adapter.py +53 -13
- airflow/providers/openlineage/plugins/facets.py +2 -2
- airflow/providers/openlineage/plugins/listener.py +11 -2
- {apache_airflow_providers_openlineage-1.2.1rc1.dist-info → apache_airflow_providers_openlineage-1.3.0.dist-info}/METADATA +31 -28
- apache_airflow_providers_openlineage-1.3.0.dist-info/RECORD +22 -0
- {apache_airflow_providers_openlineage-1.2.1rc1.dist-info → apache_airflow_providers_openlineage-1.3.0.dist-info}/WHEEL +1 -2
- apache_airflow_providers_openlineage-1.3.0.dist-info/entry_points.txt +6 -0
- apache_airflow_providers_openlineage-1.2.1rc1.dist-info/NOTICE +0 -6
- apache_airflow_providers_openlineage-1.2.1rc1.dist-info/RECORD +0 -24
- apache_airflow_providers_openlineage-1.2.1rc1.dist-info/entry_points.txt +0 -5
- apache_airflow_providers_openlineage-1.2.1rc1.dist-info/top_level.txt +0 -1
{apache_airflow_providers_openlineage-1.2.1rc1.dist-info → airflow/providers/openlineage}/LICENSE
RENAMED
|
@@ -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
|
|
23
|
-
# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/
|
|
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__ = "1.
|
|
30
|
+
__version__ = "1.3.0"
|
|
32
31
|
|
|
33
32
|
try:
|
|
34
33
|
from airflow import __version__ as airflow_version
|
|
@@ -39,5 +38,5 @@ if packaging.version.parse(packaging.version.parse(airflow_version).base_version
|
|
|
39
38
|
"2.7.0"
|
|
40
39
|
):
|
|
41
40
|
raise RuntimeError(
|
|
42
|
-
f"The package `apache-airflow-providers-openlineage:{__version__}`
|
|
41
|
+
f"The package `apache-airflow-providers-openlineage:{__version__}` needs Apache Airflow 2.7.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
|
|
22
|
-
# `get_provider_info_TEMPLATE.py.jinja2` IN the `
|
|
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,8 @@ def get_provider_info():
|
|
|
28
28
|
"name": "OpenLineage Airflow",
|
|
29
29
|
"description": "`OpenLineage <https://openlineage.io/>`__\n",
|
|
30
30
|
"suspended": False,
|
|
31
|
-
"
|
|
31
|
+
"source-date-epoch": 1701983402,
|
|
32
|
+
"versions": ["1.3.0", "1.2.1", "1.2.0", "1.1.1", "1.1.0", "1.0.2", "1.0.1", "1.0.0"],
|
|
32
33
|
"dependencies": [
|
|
33
34
|
"apache-airflow>=2.7.0",
|
|
34
35
|
"apache-airflow-providers-common-sql>=1.6.0",
|
|
@@ -38,6 +38,7 @@ from openlineage.client.run import Job, Run, RunEvent, RunState
|
|
|
38
38
|
from airflow.configuration import conf
|
|
39
39
|
from airflow.providers.openlineage import __version__ as OPENLINEAGE_PROVIDER_VERSION
|
|
40
40
|
from airflow.providers.openlineage.utils.utils import OpenLineageRedactor
|
|
41
|
+
from airflow.stats import Stats
|
|
41
42
|
from airflow.utils.log.logging_mixin import LoggingMixin
|
|
42
43
|
|
|
43
44
|
if TYPE_CHECKING:
|
|
@@ -96,7 +97,8 @@ class OpenLineageAdapter(LoggingMixin):
|
|
|
96
97
|
with open(path) as config_file:
|
|
97
98
|
return yaml.safe_load(config_file)
|
|
98
99
|
|
|
99
|
-
|
|
100
|
+
@staticmethod
|
|
101
|
+
def build_dag_run_id(dag_id, dag_run_id):
|
|
100
102
|
return str(uuid.uuid3(uuid.NAMESPACE_URL, f"{_DAG_NAMESPACE}.{dag_id}.{dag_run_id}"))
|
|
101
103
|
|
|
102
104
|
@staticmethod
|
|
@@ -113,8 +115,10 @@ class OpenLineageAdapter(LoggingMixin):
|
|
|
113
115
|
self._client = self.get_or_create_openlineage_client()
|
|
114
116
|
redacted_event: RunEvent = self._redacter.redact(event, max_depth=20) # type: ignore[assignment]
|
|
115
117
|
try:
|
|
116
|
-
|
|
118
|
+
with Stats.timer("ol.emit.attempts"):
|
|
119
|
+
return self._client.emit(redacted_event)
|
|
117
120
|
except Exception as e:
|
|
121
|
+
Stats.incr("ol.emit.failed")
|
|
118
122
|
self.log.warning("Failed to emit OpenLineage event of id %s", event.run.runId)
|
|
119
123
|
self.log.debug("OpenLineage emission failure: %s", e)
|
|
120
124
|
|
|
@@ -160,17 +164,19 @@ class OpenLineageAdapter(LoggingMixin):
|
|
|
160
164
|
|
|
161
165
|
if not run_facets:
|
|
162
166
|
run_facets = {}
|
|
167
|
+
if task:
|
|
168
|
+
run_facets = {**task.run_facets, **run_facets}
|
|
163
169
|
run_facets["processing_engine"] = processing_engine_version_facet # type: ignore
|
|
164
170
|
event = RunEvent(
|
|
165
171
|
eventType=RunState.START,
|
|
166
172
|
eventTime=event_time,
|
|
167
173
|
run=self._build_run(
|
|
168
|
-
run_id,
|
|
169
|
-
job_name,
|
|
170
|
-
parent_job_name,
|
|
171
|
-
parent_run_id,
|
|
172
|
-
nominal_start_time,
|
|
173
|
-
nominal_end_time,
|
|
174
|
+
run_id=run_id,
|
|
175
|
+
job_name=job_name,
|
|
176
|
+
parent_job_name=parent_job_name,
|
|
177
|
+
parent_run_id=parent_run_id,
|
|
178
|
+
nominal_start_time=nominal_start_time,
|
|
179
|
+
nominal_end_time=nominal_end_time,
|
|
174
180
|
run_facets=run_facets,
|
|
175
181
|
),
|
|
176
182
|
job=self._build_job(
|
|
@@ -186,19 +192,36 @@ class OpenLineageAdapter(LoggingMixin):
|
|
|
186
192
|
)
|
|
187
193
|
self.emit(event)
|
|
188
194
|
|
|
189
|
-
def complete_task(
|
|
195
|
+
def complete_task(
|
|
196
|
+
self,
|
|
197
|
+
run_id: str,
|
|
198
|
+
job_name: str,
|
|
199
|
+
parent_job_name: str | None,
|
|
200
|
+
parent_run_id: str | None,
|
|
201
|
+
end_time: str,
|
|
202
|
+
task: OperatorLineage,
|
|
203
|
+
):
|
|
190
204
|
"""
|
|
191
205
|
Emits openlineage event of type COMPLETE.
|
|
192
206
|
|
|
193
207
|
:param run_id: globally unique identifier of task in dag run
|
|
194
208
|
:param job_name: globally unique identifier of task between dags
|
|
209
|
+
:param parent_job_name: the name of the parent job (typically the DAG,
|
|
210
|
+
but possibly a task group)
|
|
211
|
+
:param parent_run_id: identifier of job spawning this task
|
|
195
212
|
:param end_time: time of task completion
|
|
196
213
|
:param task: metadata container with information extracted from operator
|
|
197
214
|
"""
|
|
198
215
|
event = RunEvent(
|
|
199
216
|
eventType=RunState.COMPLETE,
|
|
200
217
|
eventTime=end_time,
|
|
201
|
-
run=self._build_run(
|
|
218
|
+
run=self._build_run(
|
|
219
|
+
run_id=run_id,
|
|
220
|
+
job_name=job_name,
|
|
221
|
+
parent_job_name=parent_job_name,
|
|
222
|
+
parent_run_id=parent_run_id,
|
|
223
|
+
run_facets=task.run_facets,
|
|
224
|
+
),
|
|
202
225
|
job=self._build_job(job_name, job_facets=task.job_facets),
|
|
203
226
|
inputs=task.inputs,
|
|
204
227
|
outputs=task.outputs,
|
|
@@ -206,20 +229,37 @@ class OpenLineageAdapter(LoggingMixin):
|
|
|
206
229
|
)
|
|
207
230
|
self.emit(event)
|
|
208
231
|
|
|
209
|
-
def fail_task(
|
|
232
|
+
def fail_task(
|
|
233
|
+
self,
|
|
234
|
+
run_id: str,
|
|
235
|
+
job_name: str,
|
|
236
|
+
parent_job_name: str | None,
|
|
237
|
+
parent_run_id: str | None,
|
|
238
|
+
end_time: str,
|
|
239
|
+
task: OperatorLineage,
|
|
240
|
+
):
|
|
210
241
|
"""
|
|
211
242
|
Emits openlineage event of type FAIL.
|
|
212
243
|
|
|
213
244
|
:param run_id: globally unique identifier of task in dag run
|
|
214
245
|
:param job_name: globally unique identifier of task between dags
|
|
246
|
+
:param parent_job_name: the name of the parent job (typically the DAG,
|
|
247
|
+
but possibly a task group)
|
|
248
|
+
:param parent_run_id: identifier of job spawning this task
|
|
215
249
|
:param end_time: time of task completion
|
|
216
250
|
:param task: metadata container with information extracted from operator
|
|
217
251
|
"""
|
|
218
252
|
event = RunEvent(
|
|
219
253
|
eventType=RunState.FAIL,
|
|
220
254
|
eventTime=end_time,
|
|
221
|
-
run=self._build_run(
|
|
222
|
-
|
|
255
|
+
run=self._build_run(
|
|
256
|
+
run_id=run_id,
|
|
257
|
+
job_name=job_name,
|
|
258
|
+
parent_job_name=parent_job_name,
|
|
259
|
+
parent_run_id=parent_run_id,
|
|
260
|
+
run_facets=task.run_facets,
|
|
261
|
+
),
|
|
262
|
+
job=self._build_job(job_name, job_facets=task.job_facets),
|
|
223
263
|
inputs=task.inputs,
|
|
224
264
|
outputs=task.outputs,
|
|
225
265
|
producer=_PRODUCER,
|
|
@@ -28,7 +28,7 @@ class AirflowMappedTaskRunFacet(BaseFacet):
|
|
|
28
28
|
mapIndex: int
|
|
29
29
|
operatorClass: str
|
|
30
30
|
|
|
31
|
-
_additional_skip_redact
|
|
31
|
+
_additional_skip_redact = ["operatorClass"]
|
|
32
32
|
|
|
33
33
|
@classmethod
|
|
34
34
|
def from_task_instance(cls, task_instance):
|
|
@@ -63,7 +63,7 @@ class UnknownOperatorInstance(RedactMixin):
|
|
|
63
63
|
properties: dict[str, object]
|
|
64
64
|
type: str = "operator"
|
|
65
65
|
|
|
66
|
-
_skip_redact
|
|
66
|
+
_skip_redact = ["name", "type"]
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
@define(slots=False)
|
|
@@ -101,7 +101,6 @@ class OpenLineageListener:
|
|
|
101
101
|
owners=dag.owner.split(", "),
|
|
102
102
|
task=task_metadata,
|
|
103
103
|
run_facets={
|
|
104
|
-
**task_metadata.run_facets,
|
|
105
104
|
**get_custom_facets(task_instance),
|
|
106
105
|
**get_airflow_run_facet(dagrun, dag, task_instance, task, task_uuid),
|
|
107
106
|
},
|
|
@@ -115,6 +114,7 @@ class OpenLineageListener:
|
|
|
115
114
|
|
|
116
115
|
dagrun = task_instance.dag_run
|
|
117
116
|
task = task_instance.task
|
|
117
|
+
dag = task.dag
|
|
118
118
|
|
|
119
119
|
task_uuid = OpenLineageAdapter.build_task_instance_run_id(
|
|
120
120
|
task.task_id, task_instance.execution_date, task_instance.try_number - 1
|
|
@@ -122,6 +122,8 @@ class OpenLineageListener:
|
|
|
122
122
|
|
|
123
123
|
@print_warning(self.log)
|
|
124
124
|
def on_success():
|
|
125
|
+
parent_run_id = OpenLineageAdapter.build_dag_run_id(dag.dag_id, dagrun.run_id)
|
|
126
|
+
|
|
125
127
|
task_metadata = self.extractor_manager.extract_metadata(
|
|
126
128
|
dagrun, task, complete=True, task_instance=task_instance
|
|
127
129
|
)
|
|
@@ -131,6 +133,8 @@ class OpenLineageListener:
|
|
|
131
133
|
self.adapter.complete_task(
|
|
132
134
|
run_id=task_uuid,
|
|
133
135
|
job_name=get_job_name(task),
|
|
136
|
+
parent_job_name=dag.dag_id,
|
|
137
|
+
parent_run_id=parent_run_id,
|
|
134
138
|
end_time=end_date.isoformat(),
|
|
135
139
|
task=task_metadata,
|
|
136
140
|
)
|
|
@@ -143,13 +147,16 @@ class OpenLineageListener:
|
|
|
143
147
|
|
|
144
148
|
dagrun = task_instance.dag_run
|
|
145
149
|
task = task_instance.task
|
|
150
|
+
dag = task.dag
|
|
146
151
|
|
|
147
152
|
task_uuid = OpenLineageAdapter.build_task_instance_run_id(
|
|
148
|
-
task.task_id, task_instance.execution_date, task_instance.try_number
|
|
153
|
+
task.task_id, task_instance.execution_date, task_instance.try_number
|
|
149
154
|
)
|
|
150
155
|
|
|
151
156
|
@print_warning(self.log)
|
|
152
157
|
def on_failure():
|
|
158
|
+
parent_run_id = OpenLineageAdapter.build_dag_run_id(dag.dag_id, dagrun.run_id)
|
|
159
|
+
|
|
153
160
|
task_metadata = self.extractor_manager.extract_metadata(
|
|
154
161
|
dagrun, task, complete=True, task_instance=task_instance
|
|
155
162
|
)
|
|
@@ -159,6 +166,8 @@ class OpenLineageListener:
|
|
|
159
166
|
self.adapter.fail_task(
|
|
160
167
|
run_id=task_uuid,
|
|
161
168
|
job_name=get_job_name(task),
|
|
169
|
+
parent_job_name=dag.dag_id,
|
|
170
|
+
parent_run_id=parent_run_id,
|
|
162
171
|
end_time=end_date.isoformat(),
|
|
163
172
|
task=task_metadata,
|
|
164
173
|
)
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: apache-airflow-providers-openlineage
|
|
3
|
-
Version: 1.
|
|
4
|
-
Summary: Provider
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-openlineage/1.2.1/
|
|
11
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-openlineage/1.2.1/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: 1.3.0
|
|
4
|
+
Summary: Provider package apache-airflow-providers-openlineage for Apache Airflow
|
|
5
|
+
Keywords: airflow-provider,openlineage,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,17 +20,20 @@ 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-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist: apache-airflow
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
23
|
+
Requires-Dist: apache-airflow-providers-common-sql>=1.6.0
|
|
24
|
+
Requires-Dist: apache-airflow>=2.7.0
|
|
25
|
+
Requires-Dist: attrs>=22.2
|
|
26
|
+
Requires-Dist: openlineage-integration-common>=0.28.0
|
|
27
|
+
Requires-Dist: openlineage-python>=0.28.0
|
|
28
|
+
Requires-Dist: apache-airflow-providers-common-sql ; extra == "common.sql"
|
|
29
|
+
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
30
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-openlineage/1.3.0/changelog.html
|
|
31
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-openlineage/1.3.0
|
|
32
|
+
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
33
|
+
Project-URL: Source Code, https://github.com/apache/airflow
|
|
34
|
+
Project-URL: Twitter, https://twitter.com/ApacheAirflow
|
|
35
|
+
Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
39
36
|
Provides-Extra: common.sql
|
|
40
|
-
Requires-Dist: apache-airflow-providers-common-sql ; extra == 'common.sql'
|
|
41
37
|
|
|
42
38
|
|
|
43
39
|
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
@@ -56,7 +52,8 @@ Requires-Dist: apache-airflow-providers-common-sql ; extra == 'common.sql'
|
|
|
56
52
|
KIND, either express or implied. See the License for the
|
|
57
53
|
specific language governing permissions and limitations
|
|
58
54
|
under the License.
|
|
59
|
-
|
|
55
|
+
|
|
56
|
+
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
60
57
|
or more contributor license agreements. See the NOTICE file
|
|
61
58
|
distributed with this work for additional information
|
|
62
59
|
regarding copyright ownership. The ASF licenses this file
|
|
@@ -73,10 +70,16 @@ Requires-Dist: apache-airflow-providers-common-sql ; extra == 'common.sql'
|
|
|
73
70
|
specific language governing permissions and limitations
|
|
74
71
|
under the License.
|
|
75
72
|
|
|
73
|
+
.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
|
|
74
|
+
OVERWRITTEN WHEN PREPARING PACKAGES.
|
|
75
|
+
|
|
76
|
+
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
77
|
+
`PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
78
|
+
|
|
76
79
|
|
|
77
80
|
Package ``apache-airflow-providers-openlineage``
|
|
78
81
|
|
|
79
|
-
Release: ``1.
|
|
82
|
+
Release: ``1.3.0``
|
|
80
83
|
|
|
81
84
|
|
|
82
85
|
`OpenLineage <https://openlineage.io/>`__
|
|
@@ -89,7 +92,7 @@ This is a provider package for ``openlineage`` provider. All classes for this pr
|
|
|
89
92
|
are in ``airflow.providers.openlineage`` python package.
|
|
90
93
|
|
|
91
94
|
You can find package information and changelog for the provider
|
|
92
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/1.
|
|
95
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/1.3.0/>`_.
|
|
93
96
|
|
|
94
97
|
Installation
|
|
95
98
|
------------
|
|
@@ -133,4 +136,4 @@ Dependent package
|
|
|
133
136
|
============================================================================================================ ==============
|
|
134
137
|
|
|
135
138
|
The changelog for the provider package can be found in the
|
|
136
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/1.
|
|
139
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/1.3.0/changelog.html>`_.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
airflow/providers/openlineage/LICENSE,sha256=ywUBpKZc7Jb96rVt5I3IDbg7dIJAbUSHkuoDcF3jbH4,13569
|
|
2
|
+
airflow/providers/openlineage/__init__.py,sha256=Ow3OfosHPwFXc6zYN2nzFSz_Aek5D2AD3DmmMccn_GY,1586
|
|
3
|
+
airflow/providers/openlineage/get_provider_info.py,sha256=CeUPXb9rqnFOvAou9ryl21HwrcTB9phplZzxVl6AkrI,5402
|
|
4
|
+
airflow/providers/openlineage/sqlparser.py,sha256=cB2NFH9rPUnkHqZ4NGh7AsAnoR7Y0YeEtQN9kgMTtRg,13384
|
|
5
|
+
airflow/providers/openlineage/extractors/__init__.py,sha256=I0X4f6zUniclyD9zT0DFHRImpCpJVP4MkPJT3cd7X5I,1081
|
|
6
|
+
airflow/providers/openlineage/extractors/base.py,sha256=KUYdZa8B238BISeaKLPNghaAt4AGGGkC-ufzsI4FB5w,5897
|
|
7
|
+
airflow/providers/openlineage/extractors/bash.py,sha256=fz1nVywzk1kUsZWeEbQ8zV6osTGhmd_pLgAKoJla54g,2843
|
|
8
|
+
airflow/providers/openlineage/extractors/manager.py,sha256=x8sx4j2Z6q3JWU4JLqu8MkCe9-hHZmTbfS3VqDh5748,7875
|
|
9
|
+
airflow/providers/openlineage/extractors/python.py,sha256=HdSJi6r6EWNinLUroUdcVi3b_4vmuoc_-E51Xc8ocmo,3423
|
|
10
|
+
airflow/providers/openlineage/plugins/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
11
|
+
airflow/providers/openlineage/plugins/adapter.py,sha256=Pq_h4fGZ9m7kWVTfvDFakIkmg3wseZvBscsimIGx-hQ,13787
|
|
12
|
+
airflow/providers/openlineage/plugins/facets.py,sha256=pt8UvUHk-rXJdJreNq5B2NSWe-CtlfnmImdY5vesgjY,2202
|
|
13
|
+
airflow/providers/openlineage/plugins/listener.py,sha256=t0UuV0R__lBGSCT4W9RdegSE6aHlvKQGGdRJK0PR6u4,8511
|
|
14
|
+
airflow/providers/openlineage/plugins/macros.py,sha256=AtBwQZPqTOWO38OucjgYS2ooiKkMTuRKLnBXdQHnAuw,2356
|
|
15
|
+
airflow/providers/openlineage/plugins/openlineage.py,sha256=XiEznOts-q9Uq08rkorclK49FAmtIIsnkW5hsdoxeB0,1987
|
|
16
|
+
airflow/providers/openlineage/utils/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
17
|
+
airflow/providers/openlineage/utils/sql.py,sha256=9Hvzs_aKBRAmuxAO22Myaz-PwwY1XvcLEwRq0sAD33Q,7634
|
|
18
|
+
airflow/providers/openlineage/utils/utils.py,sha256=-i8W7LtBMlRZdIqlXuqEr8isDIUl6REyB0wOLdyv_KI,14281
|
|
19
|
+
apache_airflow_providers_openlineage-1.3.0.dist-info/entry_points.txt,sha256=GAx0_i2OeZzqaiiiYuA-xchICDXiCT5kVqpKSxsOjt4,214
|
|
20
|
+
apache_airflow_providers_openlineage-1.3.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
|
21
|
+
apache_airflow_providers_openlineage-1.3.0.dist-info/METADATA,sha256=5lLC7WNokRh0jt-BU6Lm72Fnw-0181_QXAekzZIXJPs,6312
|
|
22
|
+
apache_airflow_providers_openlineage-1.3.0.dist-info/RECORD,,
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
airflow/providers/openlineage/__init__.py,sha256=UydcYoRO-DTRA2snMhngV-yKrq3R5AMiXKpmzQIrUXM,1566
|
|
2
|
-
airflow/providers/openlineage/get_provider_info.py,sha256=EsuCjKsLOGpiml_J53NGos3116KnaUahALhMG34-Au4,5323
|
|
3
|
-
airflow/providers/openlineage/sqlparser.py,sha256=cB2NFH9rPUnkHqZ4NGh7AsAnoR7Y0YeEtQN9kgMTtRg,13384
|
|
4
|
-
airflow/providers/openlineage/extractors/__init__.py,sha256=I0X4f6zUniclyD9zT0DFHRImpCpJVP4MkPJT3cd7X5I,1081
|
|
5
|
-
airflow/providers/openlineage/extractors/base.py,sha256=KUYdZa8B238BISeaKLPNghaAt4AGGGkC-ufzsI4FB5w,5897
|
|
6
|
-
airflow/providers/openlineage/extractors/bash.py,sha256=fz1nVywzk1kUsZWeEbQ8zV6osTGhmd_pLgAKoJla54g,2843
|
|
7
|
-
airflow/providers/openlineage/extractors/manager.py,sha256=x8sx4j2Z6q3JWU4JLqu8MkCe9-hHZmTbfS3VqDh5748,7875
|
|
8
|
-
airflow/providers/openlineage/extractors/python.py,sha256=HdSJi6r6EWNinLUroUdcVi3b_4vmuoc_-E51Xc8ocmo,3423
|
|
9
|
-
airflow/providers/openlineage/plugins/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
10
|
-
airflow/providers/openlineage/plugins/adapter.py,sha256=1qb-chI9Lrvl_vZ_Z8sRoBBzm4dQfKcDdmUCK_f4Ik4,12518
|
|
11
|
-
airflow/providers/openlineage/plugins/facets.py,sha256=cCgs6x0-bLmHst0BusLGY2F0Owko9fkti9tbNdKuq-M,2224
|
|
12
|
-
airflow/providers/openlineage/plugins/listener.py,sha256=wNDtxk4AyXsIkE8kw7UMkVz4a0TszIUgkN3MYtbJ1n4,8155
|
|
13
|
-
airflow/providers/openlineage/plugins/macros.py,sha256=AtBwQZPqTOWO38OucjgYS2ooiKkMTuRKLnBXdQHnAuw,2356
|
|
14
|
-
airflow/providers/openlineage/plugins/openlineage.py,sha256=XiEznOts-q9Uq08rkorclK49FAmtIIsnkW5hsdoxeB0,1987
|
|
15
|
-
airflow/providers/openlineage/utils/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
16
|
-
airflow/providers/openlineage/utils/sql.py,sha256=9Hvzs_aKBRAmuxAO22Myaz-PwwY1XvcLEwRq0sAD33Q,7634
|
|
17
|
-
airflow/providers/openlineage/utils/utils.py,sha256=-i8W7LtBMlRZdIqlXuqEr8isDIUl6REyB0wOLdyv_KI,14281
|
|
18
|
-
apache_airflow_providers_openlineage-1.2.1rc1.dist-info/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
|
|
19
|
-
apache_airflow_providers_openlineage-1.2.1rc1.dist-info/METADATA,sha256=L4VuqsbqPrh9dBOPOiXhY3riMzqKvWKQwA-nzmqwl98,6111
|
|
20
|
-
apache_airflow_providers_openlineage-1.2.1rc1.dist-info/NOTICE,sha256=m-6s2XynUxVSUIxO4rVablAZCvFq-wmLrqV91DotRBw,240
|
|
21
|
-
apache_airflow_providers_openlineage-1.2.1rc1.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
|
|
22
|
-
apache_airflow_providers_openlineage-1.2.1rc1.dist-info/entry_points.txt,sha256=o3u5CDyGe9EFZZUzNErLIHC3iLPojedbWlqOBMiCNCI,217
|
|
23
|
-
apache_airflow_providers_openlineage-1.2.1rc1.dist-info/top_level.txt,sha256=OeMVH5md7fr2QQWpnZoOWWxWO-0WH1IP70lpTVwopPg,8
|
|
24
|
-
apache_airflow_providers_openlineage-1.2.1rc1.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
airflow
|