-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathanalyze_dependencies.py
More file actions
53 lines (51 loc) · 2.64 KB
/
analyze_dependencies.py
File metadata and controls
53 lines (51 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from data_pipeline import Pipeline, PipelineElement, ElType
if __name__ == '__main__':
pipeline = Pipeline("Dependency Test",
[
PipelineElement(ElType.SOURCE, "CRM"),
PipelineElement(ElType.SOURCE, "ERP"),
PipelineElement(ElType.SOURCE, "Product Hierarchies"),
PipelineElement(ElType.TRANSFORMATION, "Extract Opportunities"),
PipelineElement(ElType.TRANSFORMATION, "Extract ERP"),
PipelineElement(ElType.TRANSFORMATION, "Extract Product Hierarchies"),
PipelineElement(ElType.TABLE, "OPPORTUNITIES STG"),
PipelineElement(ElType.TABLE, "CUSTOMERS STG"),
PipelineElement(ElType.TABLE, "SALES STG"),
PipelineElement(ElType.TABLE, "PRODUCT STG"),
PipelineElement(ElType.TRANSFORMATION, "TRANSFORM OPPORTUNITIES"),
PipelineElement(ElType.TRANSFORMATION, "TRANSFORM SALES CUSTOMER"),
PipelineElement(ElType.TRANSFORMATION, "TRANSFORM PRODUCT"),
PipelineElement(ElType.TABLE, "OPPORTUNITIES FACTS"),
PipelineElement(ElType.TABLE, "SALES FACTS"),
PipelineElement(ElType.TABLE, "CUSTOMER DIM"),
PipelineElement(ElType.TABLE, "PRODUCT DIM"),
PipelineElement(ElType.REPORT, "Quarterly Sales"),
PipelineElement(ElType.REPORT, "Opportunities Pipeline")
],
[
(0, 3),
(1, 4),
(2, 5),
(3, 6),
(4, 7),
(4, 8),
(5, 9),
(6, 10),
(7, 11),
(8, 11),
(9, 12),
(10, 13),
(11, 14),
(11, 15),
(12, 16),
(13, 17),
(14, 17),
(16, 17),
(15, 18),
(16, 18)
]
)
print(pipeline.find_dependencies(1))
for i in pipeline.find_dependencies(1):
print(pipeline.vertices[i])
print(pipeline.trace_lineage(18))