Multi-language IR-Runtime common core (Python port). The COMMON 'thin core' primitives from dsl-contracts runtime-boundary.md — validate_envelope / evaluate_expression / render_template / run_plan / canonical_value / canonical_json / py_float_repr / assert_portable — with zero backend (DynamoDB/graphddb) dependencies.
Project description
behavior-contracts (Python)
The COMMON "thin core" runtime primitives from
runtime-boundary.md, ported to Python from the
TypeScript reference implementation (ts/src/*) with identical semantics.
This package contains only the DSL-agnostic primitives that WS1 classified as COMMON. It has zero backend (DynamoDB / graphddb) dependencies — no boto3, no key marshalling, no retry tuning, no hydrate, no bundle format. Those stay in the consumer (graphddb).
Public API
from behavior_contracts import (
validate_envelope, # spec-version fail-closed check
evaluate_expression, # expression-ir.md evaluator (i64-checked, truncated %, code-point cmp)
render_template, # {param} rendering (strict, Python str() parity)
run_plan, final_tree, # execution-plan skeleton (stage / Skip propagation / Policy Kind)
canonical_value, # key identity (top-level key sort)
canonical_json, # fingerprint (recursive key sort)
py_float_repr, # CPython repr(float) canonical decimal
assert_portable, # Portability Guard
decode_value, deep_equals, # conformance runner adapter (int/float type distinction)
encode_value, resolve_partial, cmp_code_points,
SPEC_VERSIONS, ENVELOPE_SPEC_VERSION,
)
Each COMMON primitive raises a typed *Failure exception carrying a .code
string matching the conformance protocol's failure-code set.
§8 cross-language traps this port handles
%sign: normative mod is truncated (dividend sign). Python's native%returns the divisor sign, soevaluate_expression({"mod":[-7,2]}) == -1(native-7 % 2 == 1). Implemented via truncated-quotient correction; float mod viamath.fmod.- int is checked i64: Python
intis arbitrary-precision, so i64 bounds are enforced manually; overflow →INT_OVERFLOW. - string comparison: code-point order. Python
strcompares by code point already (no UTF-16 surrogate hazard) — verified in tests. - NaN/Inf → Failure;
divalways float with|int| > 2^53widening →PRECISION_LOSS;py_float_reprmatches CPythonrepr(float)byte-for-byte (parametrized parity tests). - bool is not int:
isinstance(x, bool)is checked beforeinteverywhere (Python'sbool <: int).
Conformance
Runs the 7 shared suites (164 vectors) from ../conformance/vectors/*.json
through this package per ../conformance/PROTOCOL.md,
including the pre-flight version fail-closed sweep.
python -m behavior_contracts.conformance # → "164 passed, 0 failed / 164 vectors across 7 suites"
# or the console script:
behavior-contracts-conformance
Override the vectors location with DSL_CONTRACTS_VECTORS=/path/to/vectors.
Tests
pip install -e ".[test]"
python -m pytest # unit tests over the public API + the conformance runner as a test
Docker integration: N/A
This package has no external service dependency (no database, no network) — it is pure in-process logic over JSON-shaped values. There is therefore nothing for a docker-compose integration harness to stand up; the conformance runner and pytest exercise the full surface in-process. (The graphddb adapter PoC in WS4 Part B is where docker-backed integration applies, because graphddb talks to DynamoDB Local.)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file behavior_contracts-0.7.1.tar.gz.
File metadata
- Download URL: behavior_contracts-0.7.1.tar.gz
- Upload date:
- Size: 51.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e633008a0cba3ebf3804782e3a99727fd820765166a6a7f8494a60118b8ccae7
|
|
| MD5 |
bde41d889cb1e29bde5377b1f59a04c4
|
|
| BLAKE2b-256 |
56531191727e37b137292b0e412fa92314b23b7d296b3c8cdb9629667711c3ba
|
File details
Details for the file behavior_contracts-0.7.1-py3-none-any.whl.
File metadata
- Download URL: behavior_contracts-0.7.1-py3-none-any.whl
- Upload date:
- Size: 45.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b24d97bc0a769c86ffb7e6c2427abb214865e264eb43034a6438b421503a0737
|
|
| MD5 |
0870f41a8324e807a0a7ce1ae8ca269f
|
|
| BLAKE2b-256 |
5c61c798210e7a29a1837aba1b1576090b8049e5dbc1b9d867cf2951c4cbd048
|