Skip to main content

CLI-first FileMaker DDR extraction and analysis toolkit

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ddr_docs-0.2.1.tar.gz (282.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ddr_docs-0.2.1-py3-none-any.whl (281.5 kB view details)

Uploaded Python 3

File details

Details for the file ddr_docs-0.2.1.tar.gz.

File metadata

  • Download URL: ddr_docs-0.2.1.tar.gz
  • Upload date:
  • Size: 282.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for ddr_docs-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f3f5330481756297ccf12de8fe2c439be1df58ec80795cb967aee146e1303f88
MD5 a52388f22b1ab666b682357fc8bd0b4c
BLAKE2b-256 79bd511286e1a94d7e02f620cef7b0b0ea5b11dea68c348b84551dd99ec7eddd

See more details on using hashes here.

File details

Details for the file ddr_docs-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: ddr_docs-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 281.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for ddr_docs-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7dbfb264764585044548616408eafa57884c8f2e007f4264331157d2fc7204c0
MD5 db6fcf060ad6e9a2b9f89616a1884dcc
BLAKE2b-256 4335a61c877f0870fd8742104c2b0568375d77b0980e120193760c02b432e440

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page