acryl-datahub-gx-plugin 1.3.1.10rc1__tar.gz → 1.4.0rc2__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 (15) hide show
  1. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/PKG-INFO +57 -57
  2. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/acryl_datahub_gx_plugin.egg-info/PKG-INFO +57 -57
  3. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/acryl_datahub_gx_plugin.egg-info/requires.txt +56 -56
  4. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/datahub_gx_plugin/_version.py +1 -1
  5. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/datahub_gx_plugin/action.py +83 -4
  6. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/README.md +0 -0
  7. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/pyproject.toml +0 -0
  8. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/setup.cfg +0 -0
  9. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/setup.py +0 -0
  10. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/acryl_datahub_gx_plugin.egg-info/SOURCES.txt +0 -0
  11. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/acryl_datahub_gx_plugin.egg-info/dependency_links.txt +0 -0
  12. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/acryl_datahub_gx_plugin.egg-info/entry_points.txt +0 -0
  13. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/acryl_datahub_gx_plugin.egg-info/not-zip-safe +0 -0
  14. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/acryl_datahub_gx_plugin.egg-info/top_level.txt +0 -0
  15. {acryl_datahub_gx_plugin-1.3.1.10rc1 → acryl_datahub_gx_plugin-1.4.0rc2}/src/datahub_gx_plugin/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acryl-datahub-gx-plugin
3
- Version: 1.3.1.10rc1
3
+ Version: 1.4.0rc2
4
4
  Summary: Datahub GX plugin to capture executions and send to Datahub
5
5
  Home-page: https://docs.datahub.com/
6
6
  License: Apache-2.0
@@ -21,88 +21,88 @@ Classifier: Environment :: MacOS X
21
21
  Classifier: Topic :: Software Development
22
22
  Requires-Python: >=3.10
23
23
  Description-Content-Type: text/markdown
24
- Requires-Dist: traitlets!=5.2.2
25
- Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1
26
- Requires-Dist: requests_file
27
24
  Requires-Dist: sqlalchemy<2,>=1.4.39
25
+ Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2
26
+ Requires-Dist: pydantic>=2.1.0
28
27
  Requires-Dist: great-expectations<1.0.0,>=0.17.15
28
+ Requires-Dist: requests_file
29
29
  Requires-Dist: requests
30
- Requires-Dist: pydantic>=2.1.0
30
+ Requires-Dist: traitlets!=5.2.2
31
31
  Provides-Extra: ignore
32
32
  Provides-Extra: dev
33
- Requires-Dist: requests-mock; extra == "dev"
34
- Requires-Dist: freezegun; extra == "dev"
33
+ Requires-Dist: types-toml; extra == "dev"
34
+ Requires-Dist: types-setuptools; extra == "dev"
35
+ Requires-Dist: types-freezegun; extra == "dev"
35
36
  Requires-Dist: types-tabulate; extra == "dev"
36
- Requires-Dist: pytest-cov>=2.8.1; extra == "dev"
37
- Requires-Dist: types-dataclasses; extra == "dev"
38
- Requires-Dist: deepdiff!=8.0.0; extra == "dev"
37
+ Requires-Dist: types-python-dateutil; extra == "dev"
38
+ Requires-Dist: great-expectations<1.0.0,>=0.17.15; extra == "dev"
39
+ Requires-Dist: types-six; extra == "dev"
39
40
  Requires-Dist: sqlalchemy-stubs; extra == "dev"
40
- Requires-Dist: pytest>=6.2.2; extra == "dev"
41
- Requires-Dist: pydantic>=2.1.0; extra == "dev"
42
- Requires-Dist: twine; extra == "dev"
41
+ Requires-Dist: mypy==1.17.1; extra == "dev"
42
+ Requires-Dist: types-click==0.1.12; extra == "dev"
43
43
  Requires-Dist: sqlalchemy<2,>=1.4.39; extra == "dev"
44
+ Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2; extra == "dev"
44
45
  Requires-Dist: types-PyYAML; extra == "dev"
46
+ Requires-Dist: pydantic>=2.1.0; extra == "dev"
45
47
  Requires-Dist: coverage>=5.1; extra == "dev"
46
- Requires-Dist: types-six; extra == "dev"
47
- Requires-Dist: jsonpickle; extra == "dev"
48
- Requires-Dist: types-python-dateutil; extra == "dev"
48
+ Requires-Dist: requests_file; extra == "dev"
49
+ Requires-Dist: requests; extra == "dev"
50
+ Requires-Dist: ruff==0.11.7; extra == "dev"
51
+ Requires-Dist: freezegun; extra == "dev"
52
+ Requires-Dist: pytest>=6.2.2; extra == "dev"
53
+ Requires-Dist: pytest-cov>=2.8.1; extra == "dev"
49
54
  Requires-Dist: types-requests; extra == "dev"
50
- Requires-Dist: packaging; extra == "dev"
51
- Requires-Dist: types-setuptools; extra == "dev"
55
+ Requires-Dist: types-dataclasses; extra == "dev"
52
56
  Requires-Dist: traitlets!=5.2.2; extra == "dev"
53
- Requires-Dist: types-toml; extra == "dev"
54
- Requires-Dist: mypy==1.17.1; extra == "dev"
55
- Requires-Dist: types-click==0.1.12; extra == "dev"
57
+ Requires-Dist: deepdiff!=8.0.0; extra == "dev"
58
+ Requires-Dist: twine; extra == "dev"
59
+ Requires-Dist: pytest-asyncio>=0.16.0; extra == "dev"
60
+ Requires-Dist: jsonpickle; extra == "dev"
56
61
  Requires-Dist: build; extra == "dev"
57
- Requires-Dist: tox; extra == "dev"
58
- Requires-Dist: great-expectations<1.0.0,>=0.17.15; extra == "dev"
59
62
  Requires-Dist: types-pytz; extra == "dev"
60
- Requires-Dist: types-freezegun; extra == "dev"
61
63
  Requires-Dist: types-cachetools; extra == "dev"
62
- Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1; extra == "dev"
63
- Requires-Dist: ruff==0.11.7; extra == "dev"
64
- Requires-Dist: requests_file; extra == "dev"
65
- Requires-Dist: requests; extra == "dev"
66
- Requires-Dist: pytest-asyncio>=0.16.0; extra == "dev"
64
+ Requires-Dist: tox; extra == "dev"
65
+ Requires-Dist: packaging; extra == "dev"
66
+ Requires-Dist: requests-mock; extra == "dev"
67
67
  Provides-Extra: integration-tests
68
- Requires-Dist: requests-mock; extra == "integration-tests"
69
- Requires-Dist: freezegun; extra == "integration-tests"
68
+ Requires-Dist: types-toml; extra == "integration-tests"
69
+ Requires-Dist: types-setuptools; extra == "integration-tests"
70
+ Requires-Dist: types-freezegun; extra == "integration-tests"
70
71
  Requires-Dist: types-tabulate; extra == "integration-tests"
71
- Requires-Dist: acryl-datahub[testing-utils]==1.3.1.10rc1; extra == "integration-tests"
72
- Requires-Dist: pytest-cov>=2.8.1; extra == "integration-tests"
73
- Requires-Dist: types-dataclasses; extra == "integration-tests"
74
- Requires-Dist: deepdiff!=8.0.0; extra == "integration-tests"
72
+ Requires-Dist: acryl-datahub[testing-utils]==1.4.0rc2; extra == "integration-tests"
73
+ Requires-Dist: types-python-dateutil; extra == "integration-tests"
74
+ Requires-Dist: great-expectations<1.0.0,>=0.17.15; extra == "integration-tests"
75
+ Requires-Dist: types-six; extra == "integration-tests"
75
76
  Requires-Dist: sqlalchemy-stubs; extra == "integration-tests"
76
- Requires-Dist: pytest>=6.2.2; extra == "integration-tests"
77
- Requires-Dist: pydantic>=2.1.0; extra == "integration-tests"
78
- Requires-Dist: twine; extra == "integration-tests"
77
+ Requires-Dist: mypy==1.17.1; extra == "integration-tests"
78
+ Requires-Dist: types-click==0.1.12; extra == "integration-tests"
79
79
  Requires-Dist: sqlalchemy<2,>=1.4.39; extra == "integration-tests"
80
+ Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2; extra == "integration-tests"
80
81
  Requires-Dist: types-PyYAML; extra == "integration-tests"
82
+ Requires-Dist: pydantic>=2.1.0; extra == "integration-tests"
81
83
  Requires-Dist: coverage>=5.1; extra == "integration-tests"
82
- Requires-Dist: pytest-docker>=1.1.0; extra == "integration-tests"
83
- Requires-Dist: types-six; extra == "integration-tests"
84
- Requires-Dist: jsonpickle; extra == "integration-tests"
85
- Requires-Dist: types-python-dateutil; extra == "integration-tests"
84
+ Requires-Dist: requests_file; extra == "integration-tests"
85
+ Requires-Dist: requests; extra == "integration-tests"
86
+ Requires-Dist: ruff==0.11.7; extra == "integration-tests"
87
+ Requires-Dist: freezegun; extra == "integration-tests"
88
+ Requires-Dist: pytest>=6.2.2; extra == "integration-tests"
89
+ Requires-Dist: pytest-cov>=2.8.1; extra == "integration-tests"
86
90
  Requires-Dist: types-requests; extra == "integration-tests"
87
- Requires-Dist: packaging; extra == "integration-tests"
88
- Requires-Dist: types-setuptools; extra == "integration-tests"
91
+ Requires-Dist: pyspark; extra == "integration-tests"
92
+ Requires-Dist: types-dataclasses; extra == "integration-tests"
89
93
  Requires-Dist: traitlets!=5.2.2; extra == "integration-tests"
90
- Requires-Dist: types-toml; extra == "integration-tests"
91
- Requires-Dist: mypy==1.17.1; extra == "integration-tests"
92
- Requires-Dist: types-click==0.1.12; extra == "integration-tests"
94
+ Requires-Dist: deepdiff!=8.0.0; extra == "integration-tests"
95
+ Requires-Dist: pytest-docker>=1.1.0; extra == "integration-tests"
96
+ Requires-Dist: twine; extra == "integration-tests"
97
+ Requires-Dist: pytest-asyncio>=0.16.0; extra == "integration-tests"
98
+ Requires-Dist: jsonpickle; extra == "integration-tests"
93
99
  Requires-Dist: build; extra == "integration-tests"
94
- Requires-Dist: pyspark; extra == "integration-tests"
95
- Requires-Dist: tox; extra == "integration-tests"
96
- Requires-Dist: great-expectations<1.0.0,>=0.17.15; extra == "integration-tests"
97
100
  Requires-Dist: types-pytz; extra == "integration-tests"
98
- Requires-Dist: types-freezegun; extra == "integration-tests"
99
- Requires-Dist: psycopg2-binary; extra == "integration-tests"
100
101
  Requires-Dist: types-cachetools; extra == "integration-tests"
101
- Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1; extra == "integration-tests"
102
- Requires-Dist: ruff==0.11.7; extra == "integration-tests"
103
- Requires-Dist: requests_file; extra == "integration-tests"
104
- Requires-Dist: requests; extra == "integration-tests"
105
- Requires-Dist: pytest-asyncio>=0.16.0; extra == "integration-tests"
102
+ Requires-Dist: tox; extra == "integration-tests"
103
+ Requires-Dist: packaging; extra == "integration-tests"
104
+ Requires-Dist: psycopg2-binary; extra == "integration-tests"
105
+ Requires-Dist: requests-mock; extra == "integration-tests"
106
106
  Dynamic: classifier
107
107
  Dynamic: description
108
108
  Dynamic: description-content-type
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acryl-datahub-gx-plugin
3
- Version: 1.3.1.10rc1
3
+ Version: 1.4.0rc2
4
4
  Summary: Datahub GX plugin to capture executions and send to Datahub
5
5
  Home-page: https://docs.datahub.com/
6
6
  License: Apache-2.0
@@ -21,88 +21,88 @@ Classifier: Environment :: MacOS X
21
21
  Classifier: Topic :: Software Development
22
22
  Requires-Python: >=3.10
23
23
  Description-Content-Type: text/markdown
24
- Requires-Dist: traitlets!=5.2.2
25
- Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1
26
- Requires-Dist: requests_file
27
24
  Requires-Dist: sqlalchemy<2,>=1.4.39
25
+ Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2
26
+ Requires-Dist: pydantic>=2.1.0
28
27
  Requires-Dist: great-expectations<1.0.0,>=0.17.15
28
+ Requires-Dist: requests_file
29
29
  Requires-Dist: requests
30
- Requires-Dist: pydantic>=2.1.0
30
+ Requires-Dist: traitlets!=5.2.2
31
31
  Provides-Extra: ignore
32
32
  Provides-Extra: dev
33
- Requires-Dist: requests-mock; extra == "dev"
34
- Requires-Dist: freezegun; extra == "dev"
33
+ Requires-Dist: types-toml; extra == "dev"
34
+ Requires-Dist: types-setuptools; extra == "dev"
35
+ Requires-Dist: types-freezegun; extra == "dev"
35
36
  Requires-Dist: types-tabulate; extra == "dev"
36
- Requires-Dist: pytest-cov>=2.8.1; extra == "dev"
37
- Requires-Dist: types-dataclasses; extra == "dev"
38
- Requires-Dist: deepdiff!=8.0.0; extra == "dev"
37
+ Requires-Dist: types-python-dateutil; extra == "dev"
38
+ Requires-Dist: great-expectations<1.0.0,>=0.17.15; extra == "dev"
39
+ Requires-Dist: types-six; extra == "dev"
39
40
  Requires-Dist: sqlalchemy-stubs; extra == "dev"
40
- Requires-Dist: pytest>=6.2.2; extra == "dev"
41
- Requires-Dist: pydantic>=2.1.0; extra == "dev"
42
- Requires-Dist: twine; extra == "dev"
41
+ Requires-Dist: mypy==1.17.1; extra == "dev"
42
+ Requires-Dist: types-click==0.1.12; extra == "dev"
43
43
  Requires-Dist: sqlalchemy<2,>=1.4.39; extra == "dev"
44
+ Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2; extra == "dev"
44
45
  Requires-Dist: types-PyYAML; extra == "dev"
46
+ Requires-Dist: pydantic>=2.1.0; extra == "dev"
45
47
  Requires-Dist: coverage>=5.1; extra == "dev"
46
- Requires-Dist: types-six; extra == "dev"
47
- Requires-Dist: jsonpickle; extra == "dev"
48
- Requires-Dist: types-python-dateutil; extra == "dev"
48
+ Requires-Dist: requests_file; extra == "dev"
49
+ Requires-Dist: requests; extra == "dev"
50
+ Requires-Dist: ruff==0.11.7; extra == "dev"
51
+ Requires-Dist: freezegun; extra == "dev"
52
+ Requires-Dist: pytest>=6.2.2; extra == "dev"
53
+ Requires-Dist: pytest-cov>=2.8.1; extra == "dev"
49
54
  Requires-Dist: types-requests; extra == "dev"
50
- Requires-Dist: packaging; extra == "dev"
51
- Requires-Dist: types-setuptools; extra == "dev"
55
+ Requires-Dist: types-dataclasses; extra == "dev"
52
56
  Requires-Dist: traitlets!=5.2.2; extra == "dev"
53
- Requires-Dist: types-toml; extra == "dev"
54
- Requires-Dist: mypy==1.17.1; extra == "dev"
55
- Requires-Dist: types-click==0.1.12; extra == "dev"
57
+ Requires-Dist: deepdiff!=8.0.0; extra == "dev"
58
+ Requires-Dist: twine; extra == "dev"
59
+ Requires-Dist: pytest-asyncio>=0.16.0; extra == "dev"
60
+ Requires-Dist: jsonpickle; extra == "dev"
56
61
  Requires-Dist: build; extra == "dev"
57
- Requires-Dist: tox; extra == "dev"
58
- Requires-Dist: great-expectations<1.0.0,>=0.17.15; extra == "dev"
59
62
  Requires-Dist: types-pytz; extra == "dev"
60
- Requires-Dist: types-freezegun; extra == "dev"
61
63
  Requires-Dist: types-cachetools; extra == "dev"
62
- Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1; extra == "dev"
63
- Requires-Dist: ruff==0.11.7; extra == "dev"
64
- Requires-Dist: requests_file; extra == "dev"
65
- Requires-Dist: requests; extra == "dev"
66
- Requires-Dist: pytest-asyncio>=0.16.0; extra == "dev"
64
+ Requires-Dist: tox; extra == "dev"
65
+ Requires-Dist: packaging; extra == "dev"
66
+ Requires-Dist: requests-mock; extra == "dev"
67
67
  Provides-Extra: integration-tests
68
- Requires-Dist: requests-mock; extra == "integration-tests"
69
- Requires-Dist: freezegun; extra == "integration-tests"
68
+ Requires-Dist: types-toml; extra == "integration-tests"
69
+ Requires-Dist: types-setuptools; extra == "integration-tests"
70
+ Requires-Dist: types-freezegun; extra == "integration-tests"
70
71
  Requires-Dist: types-tabulate; extra == "integration-tests"
71
- Requires-Dist: acryl-datahub[testing-utils]==1.3.1.10rc1; extra == "integration-tests"
72
- Requires-Dist: pytest-cov>=2.8.1; extra == "integration-tests"
73
- Requires-Dist: types-dataclasses; extra == "integration-tests"
74
- Requires-Dist: deepdiff!=8.0.0; extra == "integration-tests"
72
+ Requires-Dist: acryl-datahub[testing-utils]==1.4.0rc2; extra == "integration-tests"
73
+ Requires-Dist: types-python-dateutil; extra == "integration-tests"
74
+ Requires-Dist: great-expectations<1.0.0,>=0.17.15; extra == "integration-tests"
75
+ Requires-Dist: types-six; extra == "integration-tests"
75
76
  Requires-Dist: sqlalchemy-stubs; extra == "integration-tests"
76
- Requires-Dist: pytest>=6.2.2; extra == "integration-tests"
77
- Requires-Dist: pydantic>=2.1.0; extra == "integration-tests"
78
- Requires-Dist: twine; extra == "integration-tests"
77
+ Requires-Dist: mypy==1.17.1; extra == "integration-tests"
78
+ Requires-Dist: types-click==0.1.12; extra == "integration-tests"
79
79
  Requires-Dist: sqlalchemy<2,>=1.4.39; extra == "integration-tests"
80
+ Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2; extra == "integration-tests"
80
81
  Requires-Dist: types-PyYAML; extra == "integration-tests"
82
+ Requires-Dist: pydantic>=2.1.0; extra == "integration-tests"
81
83
  Requires-Dist: coverage>=5.1; extra == "integration-tests"
82
- Requires-Dist: pytest-docker>=1.1.0; extra == "integration-tests"
83
- Requires-Dist: types-six; extra == "integration-tests"
84
- Requires-Dist: jsonpickle; extra == "integration-tests"
85
- Requires-Dist: types-python-dateutil; extra == "integration-tests"
84
+ Requires-Dist: requests_file; extra == "integration-tests"
85
+ Requires-Dist: requests; extra == "integration-tests"
86
+ Requires-Dist: ruff==0.11.7; extra == "integration-tests"
87
+ Requires-Dist: freezegun; extra == "integration-tests"
88
+ Requires-Dist: pytest>=6.2.2; extra == "integration-tests"
89
+ Requires-Dist: pytest-cov>=2.8.1; extra == "integration-tests"
86
90
  Requires-Dist: types-requests; extra == "integration-tests"
87
- Requires-Dist: packaging; extra == "integration-tests"
88
- Requires-Dist: types-setuptools; extra == "integration-tests"
91
+ Requires-Dist: pyspark; extra == "integration-tests"
92
+ Requires-Dist: types-dataclasses; extra == "integration-tests"
89
93
  Requires-Dist: traitlets!=5.2.2; extra == "integration-tests"
90
- Requires-Dist: types-toml; extra == "integration-tests"
91
- Requires-Dist: mypy==1.17.1; extra == "integration-tests"
92
- Requires-Dist: types-click==0.1.12; extra == "integration-tests"
94
+ Requires-Dist: deepdiff!=8.0.0; extra == "integration-tests"
95
+ Requires-Dist: pytest-docker>=1.1.0; extra == "integration-tests"
96
+ Requires-Dist: twine; extra == "integration-tests"
97
+ Requires-Dist: pytest-asyncio>=0.16.0; extra == "integration-tests"
98
+ Requires-Dist: jsonpickle; extra == "integration-tests"
93
99
  Requires-Dist: build; extra == "integration-tests"
94
- Requires-Dist: pyspark; extra == "integration-tests"
95
- Requires-Dist: tox; extra == "integration-tests"
96
- Requires-Dist: great-expectations<1.0.0,>=0.17.15; extra == "integration-tests"
97
100
  Requires-Dist: types-pytz; extra == "integration-tests"
98
- Requires-Dist: types-freezegun; extra == "integration-tests"
99
- Requires-Dist: psycopg2-binary; extra == "integration-tests"
100
101
  Requires-Dist: types-cachetools; extra == "integration-tests"
101
- Requires-Dist: acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1; extra == "integration-tests"
102
- Requires-Dist: ruff==0.11.7; extra == "integration-tests"
103
- Requires-Dist: requests_file; extra == "integration-tests"
104
- Requires-Dist: requests; extra == "integration-tests"
105
- Requires-Dist: pytest-asyncio>=0.16.0; extra == "integration-tests"
102
+ Requires-Dist: tox; extra == "integration-tests"
103
+ Requires-Dist: packaging; extra == "integration-tests"
104
+ Requires-Dist: psycopg2-binary; extra == "integration-tests"
105
+ Requires-Dist: requests-mock; extra == "integration-tests"
106
106
  Dynamic: classifier
107
107
  Dynamic: description
108
108
  Dynamic: description-content-type
@@ -1,85 +1,85 @@
1
- traitlets!=5.2.2
2
- acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1
3
- requests_file
4
1
  sqlalchemy<2,>=1.4.39
2
+ acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2
3
+ pydantic>=2.1.0
5
4
  great-expectations<1.0.0,>=0.17.15
5
+ requests_file
6
6
  requests
7
- pydantic>=2.1.0
7
+ traitlets!=5.2.2
8
8
 
9
9
  [dev]
10
- requests-mock
11
- freezegun
10
+ types-toml
11
+ types-setuptools
12
+ types-freezegun
12
13
  types-tabulate
13
- pytest-cov>=2.8.1
14
- types-dataclasses
15
- deepdiff!=8.0.0
14
+ types-python-dateutil
15
+ great-expectations<1.0.0,>=0.17.15
16
+ types-six
16
17
  sqlalchemy-stubs
17
- pytest>=6.2.2
18
- pydantic>=2.1.0
19
- twine
18
+ mypy==1.17.1
19
+ types-click==0.1.12
20
20
  sqlalchemy<2,>=1.4.39
21
+ acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2
21
22
  types-PyYAML
23
+ pydantic>=2.1.0
22
24
  coverage>=5.1
23
- types-six
24
- jsonpickle
25
- types-python-dateutil
25
+ requests_file
26
+ requests
27
+ ruff==0.11.7
28
+ freezegun
29
+ pytest>=6.2.2
30
+ pytest-cov>=2.8.1
26
31
  types-requests
27
- packaging
28
- types-setuptools
32
+ types-dataclasses
29
33
  traitlets!=5.2.2
30
- types-toml
31
- mypy==1.17.1
32
- types-click==0.1.12
34
+ deepdiff!=8.0.0
35
+ twine
36
+ pytest-asyncio>=0.16.0
37
+ jsonpickle
33
38
  build
34
- tox
35
- great-expectations<1.0.0,>=0.17.15
36
39
  types-pytz
37
- types-freezegun
38
40
  types-cachetools
39
- acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1
40
- ruff==0.11.7
41
- requests_file
42
- requests
43
- pytest-asyncio>=0.16.0
41
+ tox
42
+ packaging
43
+ requests-mock
44
44
 
45
45
  [ignore]
46
46
 
47
47
  [integration-tests]
48
- requests-mock
49
- freezegun
48
+ types-toml
49
+ types-setuptools
50
+ types-freezegun
50
51
  types-tabulate
51
- acryl-datahub[testing-utils]==1.3.1.10rc1
52
- pytest-cov>=2.8.1
53
- types-dataclasses
54
- deepdiff!=8.0.0
52
+ acryl-datahub[testing-utils]==1.4.0rc2
53
+ types-python-dateutil
54
+ great-expectations<1.0.0,>=0.17.15
55
+ types-six
55
56
  sqlalchemy-stubs
56
- pytest>=6.2.2
57
- pydantic>=2.1.0
58
- twine
57
+ mypy==1.17.1
58
+ types-click==0.1.12
59
59
  sqlalchemy<2,>=1.4.39
60
+ acryl-datahub[datahub-rest,sql-parser]==1.4.0rc2
60
61
  types-PyYAML
62
+ pydantic>=2.1.0
61
63
  coverage>=5.1
62
- pytest-docker>=1.1.0
63
- types-six
64
- jsonpickle
65
- types-python-dateutil
64
+ requests_file
65
+ requests
66
+ ruff==0.11.7
67
+ freezegun
68
+ pytest>=6.2.2
69
+ pytest-cov>=2.8.1
66
70
  types-requests
67
- packaging
68
- types-setuptools
71
+ pyspark
72
+ types-dataclasses
69
73
  traitlets!=5.2.2
70
- types-toml
71
- mypy==1.17.1
72
- types-click==0.1.12
74
+ deepdiff!=8.0.0
75
+ pytest-docker>=1.1.0
76
+ twine
77
+ pytest-asyncio>=0.16.0
78
+ jsonpickle
73
79
  build
74
- pyspark
75
- tox
76
- great-expectations<1.0.0,>=0.17.15
77
80
  types-pytz
78
- types-freezegun
79
- psycopg2-binary
80
81
  types-cachetools
81
- acryl-datahub[datahub-rest,sql-parser]==1.3.1.10rc1
82
- ruff==0.11.7
83
- requests_file
84
- requests
85
- pytest-asyncio>=0.16.0
82
+ tox
83
+ packaging
84
+ psycopg2-binary
85
+ requests-mock
@@ -1,3 +1,3 @@
1
1
  # Published at https://pypi.org/project/acryl-datahub-gx-plugin/.
2
2
  __package_name__ = "acryl-datahub-gx-plugin"
3
- __version__ = "1.3.1.10rc1"
3
+ __version__ = "1.4.0rc2"
@@ -38,9 +38,11 @@ from sqlalchemy.engine.url import make_url
38
38
 
39
39
  import datahub.emitter.mce_builder as builder
40
40
  from datahub.cli.env_utils import get_boolean_env_variable
41
+ from datahub.emitter.aspect import JSON_PATCH_CONTENT_TYPE
41
42
  from datahub.emitter.mcp import MetadataChangeProposalWrapper
42
43
  from datahub.emitter.rest_emitter import DatahubRestEmitter
43
44
  from datahub.emitter.serialization_helper import pre_json_transform
45
+ from datahub.ingestion.graph.client import DataHubGraph
44
46
  from datahub.ingestion.graph.config import ClientMode
45
47
  from datahub.ingestion.source.sql.sqlalchemy_uri_mapper import (
46
48
  get_platform_from_sqlalchemy_uri,
@@ -62,9 +64,16 @@ from datahub.metadata.com.linkedin.pegasus2avro.assertion import (
62
64
  DatasetAssertionScope,
63
65
  )
64
66
  from datahub.metadata.com.linkedin.pegasus2avro.common import DataPlatformInstance
65
- from datahub.metadata.schema_classes import PartitionSpecClass, PartitionTypeClass
67
+ from datahub.metadata.schema_classes import (
68
+ ChangeTypeClass,
69
+ GenericAspectClass,
70
+ MetadataChangeProposalClass,
71
+ PartitionSpecClass,
72
+ PartitionTypeClass,
73
+ )
66
74
  from datahub.sql_parsing.sqlglot_lineage import create_lineage_sql_parsed_result
67
75
  from datahub.utilities.urns.dataset_urn import DatasetUrn
76
+ from datahub.utilities.urns.urn import guess_entity_type
68
77
 
69
78
  # TODO: move this and version check used in tests to some common module
70
79
  try:
@@ -192,15 +201,16 @@ class DataHubValidationAction(ValidationAction):
192
201
  logger.info("Sending metadata to datahub ...")
193
202
  logger.info("Dataset URN - {urn}".format(urn=datasets[0]["dataset_urn"]))
194
203
 
204
+ graph = emitter.to_graph()
205
+
195
206
  for assertion in assertions:
196
207
  logger.info(
197
208
  "Assertion URN - {urn}".format(urn=assertion["assertionUrn"])
198
209
  )
199
210
 
200
211
  # Construct a MetadataChangeProposalWrapper object.
201
- assertion_info_mcp = MetadataChangeProposalWrapper(
202
- entityUrn=assertion["assertionUrn"],
203
- aspect=assertion["assertionInfo"],
212
+ assertion_info_mcp = self._build_assertion_info_mcp(
213
+ graph, assertion["assertionUrn"], assertion["assertionInfo"]
204
214
  )
205
215
  emitter.emit_mcp(assertion_info_mcp)
206
216
 
@@ -231,6 +241,75 @@ class DataHubValidationAction(ValidationAction):
231
241
 
232
242
  return {"datahub_notification_result": result}
233
243
 
244
+ def _build_assertion_info_mcp(
245
+ self,
246
+ graph: DataHubGraph,
247
+ assertion_urn: str,
248
+ assertion_info: AssertionInfo,
249
+ ) -> Union[MetadataChangeProposalWrapper, MetadataChangeProposalClass]:
250
+ try:
251
+ existing_info = graph.get_aspect(assertion_urn, AssertionInfo)
252
+ except Exception:
253
+ logger.warning(
254
+ "Failed to check existing assertionInfo. Falling back to upsert.",
255
+ exc_info=True,
256
+ )
257
+ existing_info = None
258
+
259
+ if existing_info is None:
260
+ return MetadataChangeProposalWrapper(
261
+ entityUrn=assertion_urn,
262
+ aspect=assertion_info,
263
+ )
264
+
265
+ return self._build_assertion_info_patch(assertion_urn, assertion_info)
266
+
267
+ def _build_assertion_info_patch(
268
+ self,
269
+ assertion_urn: str,
270
+ assertion_info: AssertionInfo,
271
+ ) -> MetadataChangeProposalClass:
272
+ assertion_info_obj = assertion_info.to_obj()
273
+ patch_ops = []
274
+
275
+ if "type" in assertion_info_obj:
276
+ patch_ops.append(
277
+ {"op": "add", "path": "/type", "value": assertion_info_obj["type"]}
278
+ )
279
+ if "datasetAssertion" in assertion_info_obj:
280
+ patch_ops.append(
281
+ {
282
+ "op": "add",
283
+ "path": "/datasetAssertion",
284
+ "value": assertion_info_obj["datasetAssertion"],
285
+ }
286
+ )
287
+ custom_properties = assertion_info_obj.get("customProperties") or {}
288
+ expectation_suite_name = custom_properties.get("expectation_suite_name")
289
+ if expectation_suite_name is not None:
290
+ patch_ops.append(
291
+ {
292
+ "op": "add",
293
+ "path": "/customProperties/expectation_suite_name",
294
+ "value": expectation_suite_name,
295
+ }
296
+ )
297
+
298
+ aspect_payload = {
299
+ "patch": pre_json_transform(patch_ops),
300
+ "forceGenericPatch": True,
301
+ }
302
+ return MetadataChangeProposalClass(
303
+ entityUrn=assertion_urn,
304
+ entityType=guess_entity_type(assertion_urn),
305
+ changeType=ChangeTypeClass.PATCH,
306
+ aspectName="assertionInfo",
307
+ aspect=GenericAspectClass(
308
+ value=json.dumps(pre_json_transform(aspect_payload)).encode(),
309
+ contentType=JSON_PATCH_CONTENT_TYPE,
310
+ ),
311
+ )
312
+
234
313
  def get_assertions_with_results(
235
314
  self,
236
315
  validation_result_suite,