Skip to main content

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)

Source distribution for openom-cli 0.1.5
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)

Table of built distributions (wheels) for openom-cli 0.1.5
File Interpreter ABI Platform Actions
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.

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