Skip to main content

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 pipeline
  • analyzer/, the SQLite-backed ingestion and analysis services used by CLI analysis commands
  • scripts/, extractor and rendering scripts invoked by the pipeline
  • tests/, CLI, extractor, ingestion, pipeline, and smoke tests
  • docs/, 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)

Source distribution for ddr-docs 0.2.1
File Size Uploaded Provenance
ddr_docs-0.2.1.tar.gz 282.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ddr-docs 0.2.1
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page