spolvero 0.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.
@@ -0,0 +1,106 @@
1
+ Metadata-Version: 2.4
2
+ Name: spolvero
3
+ Version: 0.3.0
4
+ Summary: Package docs-as-code diagrams into Visio-friendly handoff artifacts.
5
+ Author: Spolvero maintainers
6
+ License: MIT
7
+ Keywords: data-visualizer,diagram,handoff,mermaid,visio
8
+ Requires-Python: >=3.11
9
+ Provides-Extra: com
10
+ Requires-Dist: pywin32>=306; (platform_system == 'Windows') and extra == 'com'
11
+ Provides-Extra: topology
12
+ Requires-Dist: pyyaml>=6.0; extra == 'topology'
13
+ Provides-Extra: vsdx
14
+ Requires-Dist: vsdx>=0.5; extra == 'vsdx'
15
+ Description-Content-Type: text/markdown
16
+
17
+ # Spolvero
18
+
19
+ `spolvero` turns docs-as-code diagrams into a Visio handoff package with preserved source, normalized IR, SVG/PNG previews, Data Visualizer workbooks for Mermaid flowcharts and topology inputs, QA reports, and explicit editability declarations.
20
+
21
+ The package treats source diagrams as canonical unless a project deliberately moves to a Visio-first workflow. Native Visio generation is intentionally conservative: the Data Visualizer workbook is the default cross-platform path, the `vsdx-template` engine produces a real `.vsdx` when the `[vsdx]` extra is installed, and `visio-com` currently probes Windows/Visio availability before cascading to downstream engines. Every engine records fallback downgrades in the manifest; `native` is reserved for future COM-created shapes/connectors.
22
+
23
+ See [docs/using-the-package.md](docs/using-the-package.md) for what to do with the handoff folder once it has been generated.
24
+
25
+ ## Quick Start
26
+
27
+ ```bash
28
+ spolvero build input.md --out ./handoff --target data-visualizer
29
+ ```
30
+
31
+ From a checkout without installation:
32
+
33
+ ```bash
34
+ uv run spolvero build tests/fixtures/sample.md --out .tmp/sample-output --target data-visualizer
35
+ ```
36
+
37
+ Python usage:
38
+
39
+ ```python
40
+ from pathlib import Path
41
+
42
+ from spolvero import build_package
43
+
44
+ build_package(Path("input.md"), Path("handoff"), "data-visualizer", title="Review")
45
+ ```
46
+
47
+ ## Repository Layout
48
+
49
+ - `src/spolvero/`: neutral Python library and CLI.
50
+ - `src/spolvero/schemas/`: versioned manifest and IR schemas.
51
+ - `skills/codex/spolvero/`: Codex-installable skill bundle generated from canonical docs and wrappers.
52
+ - `adapters/`: Claude Code, GitHub Copilot, and generic agent install notes/instruction files.
53
+ - `tests/`: pytest coverage for extraction, Mermaid parsing, schemas, artifacts, adapters, and CLI smoke builds.
54
+
55
+ ## Validation
56
+
57
+ ```bash
58
+ uv run pytest
59
+ uv run python -m compileall src tests
60
+ uv run spolvero build tests/fixtures/sample.md --out .tmp/ci-smoke --target data-visualizer
61
+ ```
62
+
63
+ Generated packages are intentionally ignored by git.
64
+
65
+ Migration hygiene checks are also available:
66
+
67
+ ```bash
68
+ uv run spolvero hygiene --report .tmp/migration-hygiene.md
69
+ uv run spolvero inspect-vsdx src/spolvero/templates/minimal_flowchart.vsdx --report .tmp/minimal-flowchart-vsdx.md
70
+ ```
71
+
72
+ See [docs/declaratus-migration.md](docs/declaratus-migration.md) for the fresh-history Declaratus import checklist.
73
+
74
+ ## Optional Extras
75
+
76
+ The core install is stdlib-only. Each extra unlocks one optional engine or input format and is feature-detected at runtime so it never blocks the default path.
77
+
78
+ ```bash
79
+ pip install spolvero # stdlib-only default
80
+ pip install 'spolvero[vsdx]' # vsdx-template engine (cross-platform)
81
+ pip install 'spolvero[topology]' # YAML topology inputs (PyYAML)
82
+ pip install 'spolvero[com]' # visio-com engine (Windows + Visio Plan 2)
83
+ ```
84
+
85
+ A Mermaid CLI (`mmdc`) on `PATH` is auto-detected for higher-fidelity Mermaid previews. Set `SPOLVERO_DISABLE_MMDC=1` to force the built-in renderer.
86
+
87
+ ## Targets and Editability
88
+
89
+ | Target | Engine | Flowchart editability | Notes |
90
+ |---|---|---|---|
91
+ | `package-only` | `internal_preview` | `vector_reference` | Skips workbook generation. Even Mermaid flowcharts and topology IRs are downgraded to a vector reference because no Visio handoff artifact is produced. |
92
+ | `data-visualizer` | `data_visualizer_xlsx` | `semi_native` | Default semi-native path. Generates a Visio Data Visualizer workbook for supported Mermaid flowcharts and topology IRs with recognized nodes. Empty/failed topology parses are downgraded to reference previews with no empty workbook. |
93
+ | `vsdx-template` | `vsdx_template_mutation` | `semi_native` (real `.vsdx`) | Mutates a template via the [`vsdx`] extra to produce a real `.vsdx` for supported flowcharts. Use `--template PATH` to override the bundled template. Unsupported inputs and missing extras/templates cascade with clear warnings. |
94
+ | `visio-com` | `visio_com_automation` | delegated output editability | Probes Visio Plan 2 / Professional via COM (Windows + [`com`] extra), then currently delegates through `vsdx-template` and `data-visualizer`. A future true COM-native path will be the only source of `native` output. |
95
+
96
+ The manifest always records both `requested_engine` and `actual_engine` so engine fallbacks are visible without parsing warning strings.
97
+
98
+ ## Inputs
99
+
100
+ - Mermaid flowchart (`.mmd`, fenced ` ```mermaid ` in Markdown) — primary input; full IR + workbook.
101
+ - Mermaid sequence diagrams, PlantUML, Graphviz DOT, SVG, PNG, JPG, PDF — packaged as references with previews.
102
+ - Topology: `*.topology.yaml`, `*.topology.yml`, `*.topology.json`, or fenced ` ```topology ` blocks. Raw source accepts node-level `container` and `containers[].members`; normalized IR resolves memberships into node `container`. Stencil kinds: `router`, `switch`, `firewall`, `load_balancer`, `server`, `database`, `storage`, `client`, `cloud`, `internet`, `application`, `service`, `actor`, `datastore`, `external_system`. Container kinds: `subnet`, `zone`, `region`, `environment`, `vpc`, `system`, `boundary`.
103
+
104
+ ## The name
105
+
106
+ Spolvero (Italian, *spol-VEH-roh*) is the Renaissance pouncing technique: an artist pricks holes along the lines of a finished drawing, then dusts pigment through them to transfer the design onto a wall or panel. The pricked cartoon is a deliberate intermediate — made for transfer, distinct from the original. This tool works the same way: it produces a transfer-ready rendering of a source diagram for the Visio surface, while the source stays canonical.
@@ -0,0 +1,31 @@
1
+ spolvero/__init__.py,sha256=tGrQV3ohiHBqGteYV1dQqzDvAV5Y8996mlULpa0kvzU,179
2
+ spolvero/builder.py,sha256=ak4AsE1Zm7tBaKTPROfCgJvJDgDudavl28hUf4VRi2w,7946
3
+ spolvero/cli.py,sha256=tF2CQBjon5YDKo_GpObVtVqX_RzOqR9_pq1X6XIGHWo,4945
4
+ spolvero/constants.py,sha256=eL7aQ2s099hpEbBUT_8WmakRdIDP2HtQDAlqIcU25Y8,1173
5
+ spolvero/hygiene.py,sha256=_4uq0MlGaqLyBMRbeIvOsfDBd0s16zCE622ei5360M8,7121
6
+ spolvero/inspection.py,sha256=sztv3N-z1AElEyzwmRBuXtfEzztcdbSIKQqXcDw9xkI,7936
7
+ spolvero/ir.py,sha256=q67WbHeSsZ6XQX66lE3XeeZJDK6skIRXU0kZctYzyfU,10172
8
+ spolvero/models.py,sha256=YEMOTbqthVVj1YE-J4XyrNffKBXE1TE3wi_etk2HEuk,374
9
+ spolvero/render.py,sha256=0QTHafWsRbN8H-1uxbv-AG-MGjLJxSmqt35pXbfu-nE,24674
10
+ spolvero/reports.py,sha256=sHl4qLSbo1W5lqqExDI2_JW3PtXEtSlunIQZZkjoN_8,6194
11
+ spolvero/schema.py,sha256=HtAFFrEaR56EE2jKx6tY7a-ArzK0_tzHay2oclN7HII,2613
12
+ spolvero/source.py,sha256=gszOnmco0MYQUWrg40X0xbcBywz3jM26IK93LXcuQ2U,6018
13
+ spolvero/utils.py,sha256=s_FHCqf0eE7H1LKt9WSB3wXGwjGNeUOk_OgrChMHZgQ,1443
14
+ spolvero/workbook.py,sha256=NYmux1nUBgH2K1wS4BGqEOYoTaL6MWIDVFp29SZ_Z30,9728
15
+ spolvero/engines/__init__.py,sha256=g0tmHkKGnI3wKxJmrFO2cAzUubb2dBvv-jl08osd2Ic,2758
16
+ spolvero/engines/data_visualizer.py,sha256=5JVaP25tH7jafDWMrnmOOfNRMdb7KMJjJUiWhYTn5ME,2008
17
+ spolvero/engines/package_only.py,sha256=ac802y_je7JNzAsjGQyd0uyE0aIUR09rkeqvi2h9Efo,903
18
+ spolvero/engines/visio_com.py,sha256=bP_tz7vNa5qMJiJBp5ANQvqhLzQUO_NcaZX1d0SRWj8,3774
19
+ spolvero/engines/vsdx_template.py,sha256=RUfcPP6Z8-n2qlBsG9E5FgsqIWjAxFm1i7vldx-BBOQ,8920
20
+ spolvero/schemas/__init__.py,sha256=Dakdha5rmvrebhFo0pg64RMZZftGchOksVYoM90iyNU,29
21
+ spolvero/schemas/ir.schema.json,sha256=FADzmrptNQFg7BQRD1LkYKOvB4jq5jbFVg4k5lev_Mk,2138
22
+ spolvero/schemas/manifest.schema.json,sha256=jfUarlQLHvcdFH6wsbYACMTyHqCJBoewH4rvvFgrlG0,2112
23
+ spolvero/schemas/topology.schema.json,sha256=6kt3zCxh_HSFNzp5rEGSfKFyEu4YRnNTEs7lhfXSpC8,2278
24
+ spolvero/topology/__init__.py,sha256=8-UWbg8xFZ4cdUUh3jaAuY6Nv_W6glDZ8aqzEg2UFFw,713
25
+ spolvero/topology/model.py,sha256=nhTu7C42t_WjI4QCFVEJHzbLbdLX90EZhQvWuTQjp_g,10541
26
+ spolvero/templates/LICENSE.txt,sha256=IYhqC5QZOzDfwuFON7YZ-xbU3NLQQYaaFYic1TG-eNA,2085
27
+ spolvero/templates/minimal_flowchart.vsdx,sha256=9erSIFW-N7hnqFjPlPHsyk_gbZVMfDn0TMpylYpEEK8,20056
28
+ spolvero-0.3.0.dist-info/METADATA,sha256=FdHE54n_-n0T37b_v3ZqyX9hnIxb_HGTCERmUeblwto,6072
29
+ spolvero-0.3.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
30
+ spolvero-0.3.0.dist-info/entry_points.txt,sha256=N2k4uQO4yEtBGmAduU1-Yp5ScyFTN5Qz2uNMCj7MDuY,47
31
+ spolvero-0.3.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ spolvero = spolvero.cli:main