Bounded control and guard primitives for EML-style contract workflows.
Project description
eml-control
eml-control is a tiny pure-Python package of bounded control and guard primitives for EML-style contract workflows.
It is useful for synthetic traces, Inspector-style requested/safe output telemetry, kernel-contract examples, and internal course fixtures.
The package boundaries are listed below and apply to every example and API.
Install From Source Tree
python -m pip install .
CLI
eml-control --help
eml-control demo clamp
eml-control demo deadband
eml-control demo hysteresis
eml-control validate examples/control_contract.json
eml-control inspect-reflex examples/reflex_inspector_frames.jsonl
Python API
from eml_control import clamp_guard, deadband, hysteresis_switch
result = clamp_guard(requested=1.25, lower=0.0, upper=1.0)
print(result.safe_output)
Primitives
clamp_guarddeadbandhysteresis_switchsaturation_with_marginproportional_stepfirst_order_response_stepbounded_pid_step
Robotics Reflex Inspector Bridge
The inspect-reflex command compares Inspector-style guard frames with
eml-control clamp semantics:
eml-control inspect-reflex examples/reflex_inspector_frames.jsonl
The bridge checks that requested/safe output fields are present, pass-through frames remain inside bounds, and clamped frames match the configured guard limit. Missing telemetry fields produce warnings where possible. The fixture is a curated simulated subset of existing Inspector-compatible frames, not live hardware evidence.
All functions are deterministic and return structured ControlResult objects.
Boundaries
The package metadata includes explicit not_claimed text:
- not certified safety
- not production controller
- not robot autonomy
- not hardware validation
- not firmware or FPGA behavior
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 eml_control-0.1.0.tar.gz.
File metadata
- Download URL: eml_control-0.1.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
331f12cf3cf17aa62e0b9afc1bfebd3f8f52f091f3bc209ae62e39b301eea897
|
|
| MD5 |
ed60bbbde6118164a48f9d211ccd0b3e
|
|
| BLAKE2b-256 |
93cb21cfeb0f9161862603e1ef59e0f5642facd1b27f62704d3aa22c325858f1
|
File details
Details for the file eml_control-0.1.0-py3-none-any.whl.
File metadata
- Download URL: eml_control-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b0abe8cb8d3534079582211228d2330e9139a0e81d7dee413a8f4c60d0a60ba
|
|
| MD5 |
c5ad556ba1cf73c819f2aeaf0cbb4f93
|
|
| BLAKE2b-256 |
f5d3228fef36063259f09622bc39fce63ef3281ae30facf7b57f009d928ecd72
|