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 8 shared suites from ../conformance/vectors/*.json
through this package per ../conformance/PROTOCOL.md,
including the pre-flight version fail-closed sweep.
python -m behavior_contracts.conformance # prints its tally; exits non-zero on any failure
# 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.)
Metadata
Release files for behavior-contracts 0.11.19
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 | |
|---|---|---|---|---|
| behavior_contracts-0.11.19.tar.gz | 80.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| behavior_contracts-0.11.19-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 147.6 kB
Release files / behavior_contracts-0.11.19.tar.gz
| Download URL | behavior_contracts-0.11.19.tar.gz |
|---|---|
| Size | 80.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be64494fbada85f368aadc296d382576500a4b76da5c12819b7c152a151df69c
|
|
BLAKE2b-256 checksum How to use checksums |
8fa9a1a2b268a2ccbdc40b36e9af5943ceec5b792a3e6fbbe4e31f489d25c991
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / behavior_contracts-0.11.19-py3-none-any.whl
| Download URL | behavior_contracts-0.11.19-py3-none-any.whl |
|---|---|
| Size | 67.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
82f74eb4573e04fc32329732493a25c67c477e7dd752112d5f1442f922039c6a
|
|
BLAKE2b-256 checksum How to use checksums |
6e5ec23b6f194f5920fc6d34381fbbf2968c45b5353ffa798dab3d2972cce096
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for behavior-contracts 0.11.19
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.