gridworks-scada-protocol
This package contains data structures used in messages between gridworks-scada devices, the gridworks Ltn and the gridworks-admin.
Sema conformance
The named types in this package are hand-written twins of vocabulary words in
the sema registry, and sema is the contract: each type's docstring carries
its schema URL (Sema: https://schemas.electricity.works/types/<name>/<version>),
and a serialized instance must pass sema validate.
The package vendors its own sema snapshot, sema_snapshot/sema: every word
the scada speaks, at the version it speaks, with sema's generated classes and
canonical samples. sema_seed_request.yaml is the seed and
scripts/regen_sema_snapshot.sh (repo root) regenerates the snapshot from a
sibling sema checkout; the snapshot is committed, so a diff shows the
vocabulary a scada release speaks. The snapshot is a test oracle, never
shipped and never run against a broker.
The conformance sweep lives here (gwsproto_sema_conformance.py) and checks
the whole package against the snapshot. From this directory:
uv run python gwsproto_sema_conformance.py
It walks every named type and reports, per type: no snapshot word, version drift against the snapshot, no snapshot class at the pinned version, shape drift (serialized field names or required set differ from the snapshot class), samples the class rejects, and re-serializations that are not byte-identical to the canonical sample; per enum, value drift; per format, examples refused or counterexamples accepted; and in reverse, every snapshot word with no twin. It exits non-zero on any real mismatch. Run it whenever types change on either side; the pytest conformance test runs it with an exact allowlist of known debt.
The named-types tests go further through tests/named_types/sema_oracle.py:
every instance a test builds must decode through the snapshot codec and
re-encode identically, and every payload a twin refuses the snapshot must
refuse on the same axiom.
One additional mode, --cli, also pushes each clean re-dump through
sema validate in a sibling sema checkout, so the canonical sema runtime is
the judge rather than the vendored copy. There is no release gate: staging
vocabulary is allowed on dev brokers only, and the snapshot's
indexes/staging.yaml lists the staging words to check by hand before a
deploy that talks to a hybrid or production broker.
Metadata
Release files for gridworks-scada-protocol 1.3.0
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 | Actions |
|---|---|---|---|---|
| gridworks_scada_protocol-1.3.0.tar.gz | 134.8 kB | Without provenance | Details for gridworks_scada_protocol-1.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gridworks_scada_protocol-1.3.0-py3-none-any.whl | Python 3 | none | any | Details for gridworks_scada_protocol-1.3.0-py3-none-any.whl |
Total release size: 410.1 kB
Release files / gridworks_scada_protocol-1.3.0.tar.gz
| Download URL | gridworks_scada_protocol-1.3.0.tar.gz |
|---|---|
| Size | 134.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
433f7179b48e5512395f261d56849a97a38b8d1eeee3eb32ae0cd2784f12c3d8
|
|
BLAKE2b-256 checksum How to use checksums |
af207f0c5b4a3fa23c21b253d8e4023d68c32c5f4c2fbd57a9c26d36bae5b3ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.8
|
Release files / gridworks_scada_protocol-1.3.0-py3-none-any.whl
| Download URL | gridworks_scada_protocol-1.3.0-py3-none-any.whl |
|---|---|
| Size | 275.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4eadb77c5397422ffbaf950e783ec12ec65a81a05625769c3e6e7315e81d7b85
|
|
BLAKE2b-256 checksum How to use checksums |
15fe52c0203f3f8bd4a866af0e2a1ce177a73df0217d2f6665037c20c671a790
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.8
|
Security for gridworks-scada-protocol 1.3.0
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.