Skip to main content

qlm-measure

Open measurement SDK for education AI — evidence events, record verification, and dataset clients.

Apache-2.0 · Documentation · JS package

Limitations (read first)

  • This SDK is the public interface layer, not the measurement engine. The estimation service (Bayesian posteriors, calibration) is QLM's hosted engine.
  • The verifier checks bookkeeping integrity, not estimation correctness. It can tell you if a record was tampered with. It cannot tell you if the posteriors are accurate. That distinction is the design.
  • Evidence event schemas are v0.2 and may change in minor versions. Pin your dependency.
  • verify makes no network calls. Records never leave your machine.

What the verifier deliberately cannot check

  • Whether posteriors are correctly computed (that requires the engine's update rule; see ESTIMATE.REPRODUCE, planned)
  • Whether evidential weights are appropriate (those are calibrated server-side)
  • Whether triage classifications are accurate (those use rules not in this package)

Install

pip install qlm-measure

Verify a file

qlm-measure verify record.json
qlm-measure verify records.jsonl --format json --report report.json
qlm-measure explain HASH.ENTRY_RECOMPUTE
qlm-measure version

Exit codes: 0 all valid, 1 at least one invalid, 2 usage or parse error.

Report formats

Text (default):

record syn-8f2c-0042  (schema 0.2, 6 entries)
  Schema
    ✓ Required fields present
    ✓ Field types valid
    ✓ Timestamp is ISO 8601
  ...
  VERDICT: CLEAN — record is verifiable

JSON (--format json or --report FILE):

{
  "tool": {"name": "qlm-measure", "version": "0.2.2", "language": "python"},
  "summary": {"records": 1, "valid": 1, "invalid": 0, "checks_run": 9, "checks_passed": 9}
}

Verify in code

from qlm_measure import verify_record

record = {"studentScopeId": "...", "entries": [...]}
result = verify_record(record)
if not result.valid:
    for v in result.violations:
        print(f"[{v.check_id}] v{v.version}: {v.message}")

Check catalog

10 shipped checks, run by verify:

ID Label
SCHEMA.REQUIRED Required fields present
SCHEMA.TYPES Field types valid
SCHEMA.TIMESTAMP_FORMAT Timestamp is ISO 8601
VERSION.MONOTONIC Versions strictly increase
TIMESTAMP.MONOTONIC Timestamps do not go backward
ENUM.VALID Enum values permitted
HASH.PREV_LINK Chain link valid
HASH.ENTRY_RECOMPUTE Entry hash recomputes
POSTERIOR.CHAIN Posterior chain consistent
COMPACTION.BOUNDARY Compaction boundary intact

5 planned checks (listed by explain, not yet run): ESTIMATE.REPRODUCE, TEMPORAL.T_DESIGN, TEMPORAL.T_RESULT, CONSENT.SCOPE, CONSENT.WITHDRAWAL

Use qlm-measure explain CHECK_ID for details on any check.

File formats

  • .json — one record object, or an array of records
  • .jsonl / .ndjson — one record per line
  • - — stdin (format auto-detected)
  • UTF-8, tolerates BOM. Parse errors report line number.

Privacy

  • studentScopeId is pseudonymous by contract. Never include PII.
  • --redact replaces scope IDs with their SHA-256 prefix in output.
  • The SDK does not store data, make network calls, or set cookies.

Links

License

Apache-2.0. See LICENSE.

Download files

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

Source Distribution

qlm_measure-0.2.2.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

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

qlm_measure-0.2.2-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file qlm_measure-0.2.2.tar.gz.

File metadata

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

File hashes

Hashes for qlm_measure-0.2.2.tar.gz
Algorithm Hash digest
SHA256 99d58f8d9ffd2c92122c866e6fa8ec22ef69e7704511edc95df007b6774b4fb2
MD5 500e488c89b55c1ea5a1a024c983cf9c
BLAKE2b-256 9a374c53a77864983953362d09d6c624effe8a86d59bd695495e5a2b4b02f766

See more details on using hashes here.

File details

Details for the file qlm_measure-0.2.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for qlm_measure-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 47fd3770ded6a7b44ce54ecdd17708c029c17b38ab0f6a29c32412f8c46c513d
MD5 a1b0abdd8bd2ba5ea558c5209b5ce383
BLAKE2b-256 e84a2fa85fa1bff472cb5163834136047b0cc380f1e8ef721ecf31fc69027841

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 Sentry Error logging StatusPage Status page