openom-cli
The om command over openom-core - no UI, no inference; also the server-side path.
# From a clone (not yet on PyPI): install core first, then cli.
pip install -e core && pip install -e cli # add [dev] to either only to contribute
# Once published: pip install openom-cli
om inspect offering.pdf
om embed offering.pdf --payload deal.json --out out.pdf --asserted-date 2026-08-16 --validate
om read out.pdf
om validate deal.json
om check out.pdf # consistency only
om --version
Conformance (CI integrity gate)
om conformance reproduces the pinned spec vectors + samples with your installed openOM - run it in
CI so an environment/version change can't silently drift from the standard. It reads the repo's
spec/ tree (pass --spec-dir <path>/spec from outside a checkout):
om --quiet conformance # exit 0 = conformant, 1 = a check failed
om conformance --impl-dir ./my-output # certify a THIRD-PARTY implementation's output
Bulk / back-catalog embed
Embed openOM data into many OMs in one run - the adoption path (seed supply at the source):
# a folder of *.pdf, each paired with a sibling <name>.om.json payload:
om embed-batch --dir ./catalog --out-dir ./embedded --asserted-date 2026-08-22 \
--schema ../spec/om-0.1.schema.json
# --dry-run preview (validate + report, write nothing)
# --skip-existing resume a large run; --force overwrite; --jobs 4 parallel
# or a JSON manifest of {pdf, payload, out?, assertedDate?} items:
om embed-batch --manifest ./manifest.json --out-dir ./embedded --schema ../spec/om-0.1.schema.json
Deterministic, non-destructive, idempotent (re-embed replaces + records supersedes); schema errors
skip that item (never embedded); emits a JSON summary (per-status counts) and --report FILE.
From Buildout (connector -> manifest)
Turn fetched Buildout listings into an embed-batch manifest. Save each buildout_get_listing JSON
as <id>.json and its OM PDF as <id>.pdf, then:
om buildout-manifest --listings-dir ./listings --pdf-dir ./oms --out-dir ./staged \
--broker "Jane Broker" --brokerage "Acme NNN" --license "MI 000" \
--asserted-date 2026-08-22 --noi-type in-place
om embed-batch --manifest ./staged/manifest.json --out-dir ./embedded --schema ../spec/om-0.1.schema.json
The map is deterministic (names/units normalized, absent fields omitted, cap_rate_derived used);
the assertion identity is yours (flags), never inferred. Review the staged payloads before embedding.
Watch-folder (server-side automation)
Drop <name>.pdf + <name>.json pairs into a folder and get embedded OMs out - no UI:
om watch ./inbox --out ./outbox --asserted-date 2026-08-18 \
--schema ../spec/om-0.1.schema.json # a payload with schema errors is skipped, not embedded
om watch ./inbox --out ./outbox --asserted-date 2026-08-18 --once # drain the backlog + exit (cron/CI)
Deterministic, zero inference. A pair is re-embedded when its pdf/json changes; --once processes
the current backlog and exits (otherwise it polls every --interval seconds until Ctrl-C).
Reads stdin / writes stdout with --format/--quiet; exit codes follow the §I contract.
Tests: pytest cli -q.
Release files for openom-cli 0.1.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 | |
|---|---|---|---|
| openom_cli-0.1.1.tar.gz | 41.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openom_cli-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 73.8 kB
Release files / openom_cli-0.1.1.tar.gz
| Download URL | openom_cli-0.1.1.tar.gz |
|---|---|
| Size | 41.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a2c95d314f04b63a2ce7a3a34c8a77428bfa65f928077020acefb26eeb09307
|
|
BLAKE2b-256 checksum How to use checksums |
b222730c6d05190bf53d77c9f4a403b578a31fd47881e61cee592eb2aea8dbc5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.7
|
Release files / openom_cli-0.1.1-py3-none-any.whl
| Download URL | openom_cli-0.1.1-py3-none-any.whl |
|---|---|
| Size | 32.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
35bcd25d8f28af3124d4840796f0ae5dcb08b7f29d1398a0763cfcfc8d8a8aa3
|
|
BLAKE2b-256 checksum How to use checksums |
cd1dc6c72ce5cb1b2219083b9382f3ed581f2f29e190da6ec2007c0030e216d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.7
|