dlin-cli 0.1.2__tar.gz → 0.2.0a1__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 (96) hide show
  1. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/Cargo.lock +45 -5
  2. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/Cargo.toml +8 -3
  3. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/PKG-INFO +1 -1
  4. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin/Cargo.toml +2 -1
  5. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin/src/cli.rs +728 -13
  6. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin/src/main.rs +476 -3
  7. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin/tests/integration_test.rs +304 -0
  8. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/Cargo.toml +2 -0
  9. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/cache.rs +184 -0
  10. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/cross_model.rs +242 -0
  11. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/impact.rs +163 -0
  12. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/mod.rs +219 -0
  13. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/schema.rs +245 -0
  14. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/single_model.rs +172 -0
  15. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/tests/cache.rs +217 -0
  16. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/tests/core.rs +1462 -0
  17. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/tests/impact.rs +238 -0
  18. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/tests/mod.rs +645 -0
  19. dlin_cli-0.2.0a1/crates/dlin-core/src/graph/column_lineage/types.rs +88 -0
  20. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/mod.rs +2 -0
  21. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/cache.rs +1 -1
  22. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/columns.rs +105 -19
  23. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/manifest.rs +69 -0
  24. dlin_cli-0.2.0a1/crates/dlin-core/tests/column_lineage_test.rs +346 -0
  25. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/LICENSE +0 -0
  26. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/README.md +0 -0
  27. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin/README.md +0 -0
  28. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/README.md +0 -0
  29. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/error.rs +0 -0
  30. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/builder.rs +0 -0
  31. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/filter.rs +0 -0
  32. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/impact.rs +0 -0
  33. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__collapse_snapshot.snap +0 -0
  34. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__collapse_snapshot_bfs_pseudoendpoint.snap +0 -0
  35. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__collapse_snapshot_endpoints_fan_out.snap +0 -0
  36. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__collapse_snapshot_endpoints_leaf_model.snap +0 -0
  37. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__collapse_snapshot_multiple_focus_models.snap +0 -0
  38. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__collapse_snapshot_no_source_exposure.snap +0 -0
  39. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__collapse_snapshot_preserve_focus.snap +0 -0
  40. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__snapshot_transitive_node_type_filter.snap +0 -0
  41. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__snapshot_transitive_select_filter.snap +0 -0
  42. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/snapshots/dlin_core__graph__filter__tests__snapshot_transitive_select_with_node_type.snap +0 -0
  43. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/graph/types.rs +0 -0
  44. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/input.rs +0 -0
  45. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/lib.rs +0 -0
  46. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/discovery.rs +0 -0
  47. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/jinja.rs +0 -0
  48. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/mod.rs +0 -0
  49. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/project.rs +0 -0
  50. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/sql.rs +0 -0
  51. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/parser/yaml_schema.rs +0 -0
  52. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/ascii.rs +0 -0
  53. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/dot.rs +0 -0
  54. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/html.rs +0 -0
  55. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/impact.rs +0 -0
  56. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/json.rs +0 -0
  57. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/layout.rs +0 -0
  58. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/list.rs +0 -0
  59. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/mermaid.rs +0 -0
  60. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/mod.rs +0 -0
  61. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/plain.rs +0 -0
  62. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__dot__tests__group_by_node_type.snap +0 -0
  63. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__dot__tests__snapshot_all_edge_types.snap +0 -0
  64. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__dot__tests__snapshot_direction_tb.snap +0 -0
  65. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__dot__tests__snapshot_direction_tb_grouped.snap +0 -0
  66. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__dot__tests__snapshot_group_by_directory.snap +0 -0
  67. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__dot__tests__snapshot_lineage.snap +0 -0
  68. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__dot__tests__snapshot_transitive_edges.snap +0 -0
  69. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__html__tests__snapshot_html_json.snap +0 -0
  70. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__impact__tests__snapshot_impact_json.snap +0 -0
  71. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__impact__tests__snapshot_impact_json_with_sql.snap +0 -0
  72. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__impact__tests__snapshot_impact_text.snap +0 -0
  73. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__impact__tests__snapshot_impact_text_with_sql.snap +0 -0
  74. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__json__tests__snapshot_json_with_sql.snap +0 -0
  75. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__json__tests__snapshot_lineage.snap +0 -0
  76. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__json__tests__snapshot_node_metadata.snap +0 -0
  77. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__list__tests__snapshot_list_json.snap +0 -0
  78. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__list__tests__snapshot_list_plain.snap +0 -0
  79. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__group_by_node_type.snap +0 -0
  80. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__mixed_direct_and_transitive_edges.snap +0 -0
  81. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__show_columns_escapes_quotes.snap +0 -0
  82. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__show_columns_lineage.snap +0 -0
  83. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__show_columns_single_model.snap +0 -0
  84. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__show_columns_with_collapse.snap +0 -0
  85. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__show_columns_with_grouping.snap +0 -0
  86. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__snapshot_direction_tb.snap +0 -0
  87. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__snapshot_direction_tb_grouped.snap +0 -0
  88. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__snapshot_group_by_directory.snap +0 -0
  89. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__snapshot_lineage.snap +0 -0
  90. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__mermaid__tests__transitive_edge_rendering.snap +0 -0
  91. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__plain__tests__snapshot_plain.snap +0 -0
  92. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__summary__tests__snapshot_summary_json.snap +0 -0
  93. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/snapshots/dlin_core__render__summary__tests__snapshot_summary_text.snap +0 -0
  94. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/summary.rs +0 -0
  95. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/crates/dlin-core/src/render/svg.rs +0 -0
  96. {dlin_cli-0.1.2 → dlin_cli-0.2.0a1}/pyproject.toml +0 -0
@@ -231,13 +231,14 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
231
231
 
232
232
  [[package]]
233
233
  name = "dlin"
234
- version = "0.1.2"
234
+ version = "0.2.0-alpha.1"
235
235
  dependencies = [
236
236
  "anyhow",
237
237
  "clap",
238
238
  "dlin-core",
239
239
  "libc",
240
240
  "path-slash",
241
+ "polyglot-sql",
241
242
  "regex",
242
243
  "serde-saphyr",
243
244
  "serde_json",
@@ -246,7 +247,7 @@ dependencies = [
246
247
 
247
248
  [[package]]
248
249
  name = "dlin-core"
249
- version = "0.1.2"
250
+ version = "0.2.0-alpha.1"
250
251
  dependencies = [
251
252
  "anyhow",
252
253
  "clap",
@@ -257,6 +258,7 @@ dependencies = [
257
258
  "minijinja",
258
259
  "path-slash",
259
260
  "petgraph",
261
+ "polyglot-sql",
260
262
  "rayon",
261
263
  "regex",
262
264
  "serde",
@@ -264,7 +266,7 @@ dependencies = [
264
266
  "serde_json",
265
267
  "serial_test",
266
268
  "tempfile",
267
- "thiserror",
269
+ "thiserror 2.0.18",
268
270
  "walkdir",
269
271
  ]
270
272
 
@@ -613,6 +615,18 @@ version = "0.2.17"
613
615
  source = "registry+https://github.com/rust-lang/crates.io-index"
614
616
  checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
615
617
 
618
+ [[package]]
619
+ name = "polyglot-sql"
620
+ version = "0.4.0"
621
+ source = "registry+https://github.com/rust-lang/crates.io-index"
622
+ checksum = "b155f49ed6a6bb331a4aead9dc2f5f69a70f2130edd2614a0387a82ac1eee5e6"
623
+ dependencies = [
624
+ "serde",
625
+ "serde_json",
626
+ "thiserror 1.0.69",
627
+ "unicode-segmentation",
628
+ ]
629
+
616
630
  [[package]]
617
631
  name = "prettyplease"
618
632
  version = "0.2.37"
@@ -747,7 +761,7 @@ checksum = "d55ae5ea09894b6d5382621db78f586df37ef18ab581bf32c754e75076b124b1"
747
761
  dependencies = [
748
762
  "arraydeque",
749
763
  "smallvec",
750
- "thiserror",
764
+ "thiserror 2.0.18",
751
765
  ]
752
766
 
753
767
  [[package]]
@@ -914,13 +928,33 @@ dependencies = [
914
928
  "windows-sys 0.61.2",
915
929
  ]
916
930
 
931
+ [[package]]
932
+ name = "thiserror"
933
+ version = "1.0.69"
934
+ source = "registry+https://github.com/rust-lang/crates.io-index"
935
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
936
+ dependencies = [
937
+ "thiserror-impl 1.0.69",
938
+ ]
939
+
917
940
  [[package]]
918
941
  name = "thiserror"
919
942
  version = "2.0.18"
920
943
  source = "registry+https://github.com/rust-lang/crates.io-index"
921
944
  checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
922
945
  dependencies = [
923
- "thiserror-impl",
946
+ "thiserror-impl 2.0.18",
947
+ ]
948
+
949
+ [[package]]
950
+ name = "thiserror-impl"
951
+ version = "1.0.69"
952
+ source = "registry+https://github.com/rust-lang/crates.io-index"
953
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
954
+ dependencies = [
955
+ "proc-macro2",
956
+ "quote",
957
+ "syn",
924
958
  ]
925
959
 
926
960
  [[package]]
@@ -940,6 +974,12 @@ version = "1.0.24"
940
974
  source = "registry+https://github.com/rust-lang/crates.io-index"
941
975
  checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
942
976
 
977
+ [[package]]
978
+ name = "unicode-segmentation"
979
+ version = "1.13.2"
980
+ source = "registry+https://github.com/rust-lang/crates.io-index"
981
+ checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
982
+
943
983
  [[package]]
944
984
  name = "unicode-width"
945
985
  version = "0.2.2"
@@ -3,7 +3,7 @@ members = ["crates/*"]
3
3
  resolver = "3"
4
4
 
5
5
  [workspace.package]
6
- version = "0.1.2"
6
+ version = "0.2.0-alpha.1"
7
7
  edition = "2024"
8
8
  license = "MIT"
9
9
  repository = "https://github.com/eitsupi/dlin"
@@ -23,6 +23,7 @@ indexmap = "2"
23
23
  minijinja = "2"
24
24
  rayon = "1"
25
25
  globset = "0.4"
26
+ polyglot-sql = { version = "0.4.0", default-features = false, features = ["all-dialects", "semantic"] }
26
27
  path-slash = "0.2.1"
27
28
  clap = { version = "4", features = ["derive", "env"] }
28
29
  libc = "0.2"
@@ -33,14 +34,18 @@ insta = "1"
33
34
  serial_test = "3.4.0"
34
35
 
35
36
  # internal
36
- dlin-core = { version = "0.1.2", path = "crates/dlin-core" }
37
+ dlin-core = { version = "0.2.0-alpha.1", path = "crates/dlin-core" }
37
38
 
38
39
  [workspace.lints.rust]
39
40
  unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin_include)'] }
40
41
 
41
42
  [profile.dist]
42
43
  inherits = "release"
43
- lto = "fat"
44
+ # FIXME: fat LTO causes polyglot-sql's large match statements to be inlined into
45
+ # the dlin binary, bloating it from ~7.5 MB to ~12 MB. Use thin LTO until the
46
+ # upstream semantic→generate feature dependency is removed from polyglot-sql,
47
+ # after which generator.rs will be excluded from the build entirely.
48
+ lto = "thin"
44
49
  codegen-units = 1
45
50
  strip = true
46
51
  opt-level = "s"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dlin-cli
3
- Version: 0.1.2
3
+ Version: 0.2.0a1
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -15,11 +15,12 @@ name = "dlin"
15
15
  path = "src/main.rs"
16
16
 
17
17
  [dependencies]
18
- dlin-core = { workspace = true, features = ["clap"] }
18
+ dlin-core = { workspace = true, features = ["clap", "column-lineage"] }
19
19
  clap = { workspace = true }
20
20
  anyhow = { workspace = true }
21
21
  serde_json = { workspace = true }
22
22
  path-slash = { workspace = true }
23
+ polyglot-sql = { workspace = true }
23
24
 
24
25
  [target.'cfg(unix)'.dependencies]
25
26
  libc = { workspace = true }