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.
Metadata
Release files for openom-cli 0.1.5
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 | Actions |
|---|---|---|---|---|
| openom_cli-0.1.5.tar.gz | 46.2 kB | Without provenance | Details for openom_cli-0.1.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openom_cli-0.1.5-py3-none-any.whl | Python 3 | none | any | Details for openom_cli-0.1.5-py3-none-any.whl |
Total release size: 81.1 kB
Release files / openom_cli-0.1.5.tar.gz
| Download URL | openom_cli-0.1.5.tar.gz |
|---|---|
| Size | 46.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23114eb18657f551da37b3837078291a1d0221745323f64235b383ae89d8d1ed
|
|
BLAKE2b-256 checksum How to use checksums |
fc275b50597cb988708d8a414feaf14ebad58e2bf143df01d76f2834c8c0fff4
|
| 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.5-py3-none-any.whl
| Download URL | openom_cli-0.1.5-py3-none-any.whl |
|---|---|
| Size | 34.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9c704ad4def6de0d689a220059c48e609d378d8cd74c037f105ca0845bd5e7d
|
|
BLAKE2b-256 checksum How to use checksums |
d5f18143454b79bf6073a7ef95592d9a732d3f0d4fafc2254fbea05d04458a87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.7
|
Security for openom-cli 0.1.5
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.