ssot-cli 0.1.17__tar.gz → 0.1.18.dev1__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 (38) hide show
  1. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/PKG-INFO +10 -5
  2. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/README.md +6 -1
  3. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/pyproject.toml +4 -4
  4. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/graph_cmd.py +33 -1
  5. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli.egg-info/PKG-INFO +10 -5
  6. ssot_cli-0.1.18.dev1/src/ssot_cli.egg-info/requires.txt +7 -0
  7. ssot_cli-0.1.17/src/ssot_cli.egg-info/requires.txt +0 -7
  8. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/setup.cfg +0 -0
  9. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/__init__.py +0 -0
  10. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/adr_cmd.py +0 -0
  11. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/boundary_cmd.py +0 -0
  12. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/campaign_cmd.py +0 -0
  13. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/claim_cmd.py +0 -0
  14. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/common.py +0 -0
  15. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/config_cmd.py +0 -0
  16. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/conformance_cmd.py +0 -0
  17. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/evidence_cmd.py +0 -0
  18. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/feature_cmd.py +0 -0
  19. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/init_cmd.py +0 -0
  20. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/issue_cmd.py +0 -0
  21. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/leases_cmd.py +0 -0
  22. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/main.py +0 -0
  23. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/maturity_cmd.py +0 -0
  24. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/pack_cmd.py +0 -0
  25. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/profile_cmd.py +0 -0
  26. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/registry_cmd.py +0 -0
  27. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/release_cmd.py +0 -0
  28. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/repo_watch_cmd.py +0 -0
  29. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/risk_cmd.py +0 -0
  30. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/spec_cmd.py +0 -0
  31. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/test_cmd.py +0 -0
  32. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/upgrade_cmd.py +0 -0
  33. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/validate_cmd.py +0 -0
  34. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli/worker_cmd.py +0 -0
  35. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli.egg-info/SOURCES.txt +0 -0
  36. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli.egg-info/dependency_links.txt +0 -0
  37. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli.egg-info/entry_points.txt +0 -0
  38. {ssot_cli-0.1.17 → ssot_cli-0.1.18.dev1}/src/ssot_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ssot-cli
3
- Version: 0.1.17
3
+ Version: 0.1.18.dev1
4
4
  Summary: Primary CLI distribution for ssot-registry.
5
5
  Author-email: Jacob Stewart <jacob@swarmauri.com>
6
6
  License-Expression: Apache-2.0
@@ -25,9 +25,9 @@ Classifier: Topic :: Software Development :: Quality Assurance
25
25
  Classifier: Topic :: Utilities
26
26
  Requires-Python: <3.15,>=3.10
27
27
  Description-Content-Type: text/markdown
28
- Requires-Dist: ssot-contracts<0.3.0,>=0.2.23
29
- Requires-Dist: ssot-core<0.3.0,>=0.2.23
30
- Requires-Dist: ssot-conformance<0.3.0,>=0.2.23
28
+ Requires-Dist: ssot-contracts<0.3.0,>=0.2.24.dev1
29
+ Requires-Dist: ssot-core<0.3.0,>=0.2.24.dev1
30
+ Requires-Dist: ssot-conformance<0.3.0,>=0.2.24.dev1
31
31
  Requires-Dist: ssot-pack-contracts<0.3.0,>=0.2.23
32
32
  Requires-Dist: tomli>=2.0.1; python_version < "3.11"
33
33
 
@@ -258,6 +258,7 @@ Global flags: `--output-file`, `--output-format`, `--version`
258
258
  | `ssot-registry feature update` | `--body`, `--body-file`, `--description`, `--id`, `--implementation-status`, `--origin`, `--title` |
259
259
  | `ssot-registry graph` | none |
260
260
  | `ssot-registry graph export` | `--format`, `--output` |
261
+ | `ssot-registry graph lineage` | `--open`, `--output` |
261
262
  | `ssot-registry init` | `--force`, `--repo-id`, `--repo-name`, `--version` |
262
263
  | `ssot-registry issue` | none |
263
264
  | `ssot-registry issue close` | `--id` |
@@ -1087,12 +1088,16 @@ ssot-registry release revoke [path]
1087
1088
 
1088
1089
  Subcommands:
1089
1090
 
1090
- - `export`, `sync-statuses`
1091
+ - `export`, `lineage`
1091
1092
 
1092
1093
  ```text
1093
1094
  ssot-registry graph export [path]
1094
1095
  --format {json,dot,png,svg} (required)
1095
1096
  --output OUTPUT
1097
+
1098
+ ssot-registry graph lineage [path]
1099
+ --output OUTPUT
1100
+ --open
1096
1101
  ```
1097
1102
 
1098
1103
  ### `registry`
@@ -225,6 +225,7 @@ Global flags: `--output-file`, `--output-format`, `--version`
225
225
  | `ssot-registry feature update` | `--body`, `--body-file`, `--description`, `--id`, `--implementation-status`, `--origin`, `--title` |
226
226
  | `ssot-registry graph` | none |
227
227
  | `ssot-registry graph export` | `--format`, `--output` |
228
+ | `ssot-registry graph lineage` | `--open`, `--output` |
228
229
  | `ssot-registry init` | `--force`, `--repo-id`, `--repo-name`, `--version` |
229
230
  | `ssot-registry issue` | none |
230
231
  | `ssot-registry issue close` | `--id` |
@@ -1054,12 +1055,16 @@ ssot-registry release revoke [path]
1054
1055
 
1055
1056
  Subcommands:
1056
1057
 
1057
- - `export`, `sync-statuses`
1058
+ - `export`, `lineage`
1058
1059
 
1059
1060
  ```text
1060
1061
  ssot-registry graph export [path]
1061
1062
  --format {json,dot,png,svg} (required)
1062
1063
  --output OUTPUT
1064
+
1065
+ ssot-registry graph lineage [path]
1066
+ --output OUTPUT
1067
+ --open
1063
1068
  ```
1064
1069
 
1065
1070
  ### `registry`
@@ -4,16 +4,16 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ssot-cli"
7
- version = "0.1.17"
7
+ version = "0.1.18.dev1"
8
8
  description = "Primary CLI distribution for ssot-registry."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10,<3.15"
11
11
  license = "Apache-2.0"
12
12
  authors = [{ name = "Jacob Stewart", email = "jacob@swarmauri.com" }]
13
13
  dependencies = [
14
- "ssot-contracts>=0.2.23,<0.3.0",
15
- "ssot-core>=0.2.23,<0.3.0",
16
- "ssot-conformance>=0.2.23,<0.3.0",
14
+ "ssot-contracts>=0.2.24.dev1,<0.3.0",
15
+ "ssot-core>=0.2.24.dev1,<0.3.0",
16
+ "ssot-conformance>=0.2.24.dev1,<0.3.0",
17
17
  "ssot-pack-contracts>=0.2.23,<0.3.0",
18
18
  "tomli>=2.0.1; python_version < '3.11'",
19
19
  ]
@@ -1,6 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import argparse
4
+ import os
5
+ import subprocess
6
+ import sys
7
+ from pathlib import Path
4
8
 
5
9
  from ssot_registry.api import export_graph, export_lineage_graph
6
10
 
@@ -30,6 +34,7 @@ def register_graph(subparsers: argparse._SubParsersAction) -> None:
30
34
  )
31
35
  lineage.add_argument("path", nargs="?", default=".", help="Repository root or registry file to render from.")
32
36
  lineage.add_argument("--output", default=None, help="Destination HTML file. Defaults under `.ssot/graphs`.")
37
+ lineage.add_argument("--open", action="store_true", help="Open the generated HTML file with the local platform opener after export.")
33
38
  lineage.set_defaults(func=run_lineage)
34
39
 
35
40
 
@@ -38,4 +43,31 @@ def run_export(args: argparse.Namespace) -> dict[str, object]:
38
43
 
39
44
 
40
45
  def run_lineage(args: argparse.Namespace) -> dict[str, object]:
41
- return export_lineage_graph(path=args.path, output=args.output)
46
+ payload = export_lineage_graph(path=args.path, output=args.output)
47
+ if args.open:
48
+ output_path = payload.get("output_path")
49
+ if not isinstance(output_path, str) or not output_path:
50
+ raise ValueError("lineage graph export did not return an output_path to open")
51
+ _open_file(Path(output_path))
52
+ payload["opened"] = True
53
+ else:
54
+ payload["opened"] = False
55
+ return payload
56
+
57
+
58
+ def _open_file(path: Path) -> None:
59
+ target = path.resolve()
60
+ if not target.exists():
61
+ raise ValueError(f"Cannot open missing lineage graph artifact: {target}")
62
+ if target.is_dir():
63
+ raise ValueError(f"Cannot open lineage graph artifact because output path is a directory: {target}")
64
+
65
+ try:
66
+ if sys.platform.startswith("win"):
67
+ os.startfile(target) # type: ignore[attr-defined]
68
+ elif sys.platform == "darwin":
69
+ subprocess.Popen(["open", str(target)], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
70
+ else:
71
+ subprocess.Popen(["xdg-open", str(target)], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
72
+ except OSError as exc:
73
+ raise ValueError(f"Failed to open lineage graph artifact {target}: {exc}") from exc
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ssot-cli
3
- Version: 0.1.17
3
+ Version: 0.1.18.dev1
4
4
  Summary: Primary CLI distribution for ssot-registry.
5
5
  Author-email: Jacob Stewart <jacob@swarmauri.com>
6
6
  License-Expression: Apache-2.0
@@ -25,9 +25,9 @@ Classifier: Topic :: Software Development :: Quality Assurance
25
25
  Classifier: Topic :: Utilities
26
26
  Requires-Python: <3.15,>=3.10
27
27
  Description-Content-Type: text/markdown
28
- Requires-Dist: ssot-contracts<0.3.0,>=0.2.23
29
- Requires-Dist: ssot-core<0.3.0,>=0.2.23
30
- Requires-Dist: ssot-conformance<0.3.0,>=0.2.23
28
+ Requires-Dist: ssot-contracts<0.3.0,>=0.2.24.dev1
29
+ Requires-Dist: ssot-core<0.3.0,>=0.2.24.dev1
30
+ Requires-Dist: ssot-conformance<0.3.0,>=0.2.24.dev1
31
31
  Requires-Dist: ssot-pack-contracts<0.3.0,>=0.2.23
32
32
  Requires-Dist: tomli>=2.0.1; python_version < "3.11"
33
33
 
@@ -258,6 +258,7 @@ Global flags: `--output-file`, `--output-format`, `--version`
258
258
  | `ssot-registry feature update` | `--body`, `--body-file`, `--description`, `--id`, `--implementation-status`, `--origin`, `--title` |
259
259
  | `ssot-registry graph` | none |
260
260
  | `ssot-registry graph export` | `--format`, `--output` |
261
+ | `ssot-registry graph lineage` | `--open`, `--output` |
261
262
  | `ssot-registry init` | `--force`, `--repo-id`, `--repo-name`, `--version` |
262
263
  | `ssot-registry issue` | none |
263
264
  | `ssot-registry issue close` | `--id` |
@@ -1087,12 +1088,16 @@ ssot-registry release revoke [path]
1087
1088
 
1088
1089
  Subcommands:
1089
1090
 
1090
- - `export`, `sync-statuses`
1091
+ - `export`, `lineage`
1091
1092
 
1092
1093
  ```text
1093
1094
  ssot-registry graph export [path]
1094
1095
  --format {json,dot,png,svg} (required)
1095
1096
  --output OUTPUT
1097
+
1098
+ ssot-registry graph lineage [path]
1099
+ --output OUTPUT
1100
+ --open
1096
1101
  ```
1097
1102
 
1098
1103
  ### `registry`
@@ -0,0 +1,7 @@
1
+ ssot-contracts<0.3.0,>=0.2.24.dev1
2
+ ssot-core<0.3.0,>=0.2.24.dev1
3
+ ssot-conformance<0.3.0,>=0.2.24.dev1
4
+ ssot-pack-contracts<0.3.0,>=0.2.23
5
+
6
+ [:python_version < "3.11"]
7
+ tomli>=2.0.1
@@ -1,7 +0,0 @@
1
- ssot-contracts<0.3.0,>=0.2.23
2
- ssot-core<0.3.0,>=0.2.23
3
- ssot-conformance<0.3.0,>=0.2.23
4
- ssot-pack-contracts<0.3.0,>=0.2.23
5
-
6
- [:python_version < "3.11"]
7
- tomli>=2.0.1
File without changes