FM2WEB_CLI
Standalone CLI-first extraction of the ddr-docs toolkit from the broader FM2Web repo.
This repo is meant to be the first private-repo candidate Marcus can own separately. It keeps the Python CLI, extraction pipeline, SQLite ingestion, and analyzer-backed analysis flows. It intentionally drops the desktop/Tauri app, Streamlit UI, and other non-CLI project baggage.
What this repo includes
ddr_docs/, the CLI and DDR extraction pipelineanalyzer/, the SQLite-backed ingestion and analysis services used by CLI analysis commandsscripts/, extractor and rendering scripts invoked by the pipelinetests/, CLI, extractor, ingestion, pipeline, and smoke testsdocs/, architecture and schema notes still relevant to the CLI/analyzer workflow
What this repo intentionally excludes
- desktop/Tauri app code
- Streamlit UI
- export2web prompt packs and workflow assets
- playgrounds, bundled build artifacts, temp outputs, and egg metadata
- analyzer API server and DAG workflow runtime from the original monorepo
Package identity
- Repository name:
FM2WEB_CLI - Python package name:
ddr-docs - Console command:
ddr-docs
Keeping the package name avoids unnecessary churn for the CLI while making the repo identity clearly standalone.
Install
From a local checkout
python -m pip install -e .
# or with analyzer extras
python -m pip install -e '.[analyzer,dev]'
Quick start
Generate extracted docs from a DDR XML file
ddr-docs generate /path/to/file.ddr.xml -o ./out/ddr-run
Run the full analyzer-backed flow
ddr-docs analyze full-analysis \
--input /path/to/file.ddr.xml \
--output-dir ./out/full-analysis \
--sqlite-path ./out/full-analysis/fm2web.sqlite3
Common commands
ddr-docs --help
ddr-docs generate --help
ddr-docs analyze --help
ddr-docs analyze full-analysis --help
Development
Run a focused validation pass:
python -m pytest \
tests/test_cli_full_analysis.py \
tests/test_cli_optional_deps.py \
tests/test_pipeline.py \
tests/test_ingestion_idempotency.py \
tests/test_ingestion_offline_policy.py \
tests/test_smoke.py
Build package artifacts:
python -m build
Notes on extraction scope
This repo was extracted from FM2Web as a practical first standalone candidate, not a full architectural rewrite. A few internals still reflect the original FM2Web naming and workspace assumptions.
The biggest known coupling is that the pipeline still depends on top-level scripts/ helpers at runtime, so source-checkout usage is the most trustworthy path for now.
License
MIT
Metadata
Release files for ddr-docs 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ddr_docs-0.2.1.tar.gz | 282.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ddr_docs-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 564.1 kB
Release files / ddr_docs-0.2.1.tar.gz
| Download URL | ddr_docs-0.2.1.tar.gz |
|---|---|
| Size | 282.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f3f5330481756297ccf12de8fe2c439be1df58ec80795cb967aee146e1303f88
|
|
BLAKE2b-256 checksum How to use checksums |
79bd511286e1a94d7e02f620cef7b0b0ea5b11dea68c348b84551dd99ec7eddd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / ddr_docs-0.2.1-py3-none-any.whl
| Download URL | ddr_docs-0.2.1-py3-none-any.whl |
|---|---|
| Size | 281.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7dbfb264764585044548616408eafa57884c8f2e007f4264331157d2fc7204c0
|
|
BLAKE2b-256 checksum How to use checksums |
4335a61c877f0870fd8742104c2b0568375d77b0980e120193760c02b432e440
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for ddr-docs 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.