Generated Pydantic / enum types for the openccu-loom REST + WebSocket contract
Project description
openccu-loom-types-py
Generated Pydantic models + enum definitions for the openccu-loom
REST + WebSocket contract. Sister-repo to the
openccu-loom daemon;
publishable as openccu-loom-types on PyPI.
What this package provides
openccu_loom_types.enums— every enum from the daemon'spkg/hmenum. Each enum is astr-typed PythonEnumwhose values match the wire strings the CCU emits. Source of truth:assets/schemas/enums.jsonin the openccu-loom repo.openccu_loom_types.rest— Pydantic models for the REST surface. Generated fromassets/openapi.yamlviadatamodel-code-generator.openccu_loom_types.ws— Pydantic models for the WebSocket envelope + push payloads. Generated from the same OpenAPI document (the WS envelope schemas live incomponents.schemasper ADR-0020).
Why this exists (asks.md C1 + C3)
Higher-level clients (py-openccu-loom-client, the future
homematicip_local refactor) need stable typed bindings against the
daemon. Without a published types package each consumer would
duplicate the model code and drift away from the daemon's wire
contract. This package is the single import every Python consumer
shares — version-pinned and CI-rebuilt on every openccu-loom release.
Regeneration workflow
Set OPENCCU_LOOM_REPO to a local checkout of the daemon repo
(default: ../openccu-loom):
# Step 1 — make sure the daemon repo's schema export is fresh:
make -C "$OPENCCU_LOOM_REPO" export-schemas
# Step 2 — regenerate this package's models:
make generate
The two-step split keeps the daemon repo authoritative; this package never re-parses Go source.
Tooling required
- Python >= 3.11
datamodel-code-generator>= 0.25 (for REST + WS Pydantic models)
Install both with pip install -e '.[dev]'.
Versioning
The package version (pyproject.toml) tracks the daemon's
api_version (currently 1.0.0). Minor bumps add fields without
breaking existing consumers; major bumps remove or rename payload
fields, scopes, or capabilities — see ADR-0020 in the daemon repo
for the contract evolution policy.
What this package does NOT contain
- HTTP / WebSocket transport — see
py-openccu-loom-client(when published) for the higher-level client. - Any business logic — types only.
- Async helpers — types are framework-neutral.
License
MIT. See LICENSE.
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 openccu_loom_types-0.1.10.tar.gz.
File metadata
- Download URL: openccu_loom_types-0.1.10.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a787ff289f284aa596bae281c08943a02f26e9124c32e54681cc21796a3dfbc
|
|
| MD5 |
afcd91c282b6da8f3a37201fabab78e6
|
|
| BLAKE2b-256 |
de4ffc0c9ea9656a7ddfbca43bc95b55ccc36d0458e0e42283b4e9330c23cb11
|
Provenance
The following attestation bundles were made for openccu_loom_types-0.1.10.tar.gz:
Publisher:
python-publish.yml on SukramJ/openccu-loom-types
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openccu_loom_types-0.1.10.tar.gz -
Subject digest:
3a787ff289f284aa596bae281c08943a02f26e9124c32e54681cc21796a3dfbc - Sigstore transparency entry: 1786712284
- Sigstore integration time:
-
Permalink:
SukramJ/openccu-loom-types@943db4e583854d740bf4e3e6df67294575dbb3bf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/SukramJ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@943db4e583854d740bf4e3e6df67294575dbb3bf -
Trigger Event:
repository_dispatch
-
Statement type:
File details
Details for the file openccu_loom_types-0.1.10-py3-none-any.whl.
File metadata
- Download URL: openccu_loom_types-0.1.10-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fe1c756dfbb2008814e0deff111ccbf11e40ad4acb978be32d39866d88258ca
|
|
| MD5 |
cf9e0e627b7f09e07a42a21b413ebd93
|
|
| BLAKE2b-256 |
5a18ee99176852f404a381d635f6494aaa39dfe2f0ab5ad353ee981433605fd6
|
Provenance
The following attestation bundles were made for openccu_loom_types-0.1.10-py3-none-any.whl:
Publisher:
python-publish.yml on SukramJ/openccu-loom-types
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openccu_loom_types-0.1.10-py3-none-any.whl -
Subject digest:
6fe1c756dfbb2008814e0deff111ccbf11e40ad4acb978be32d39866d88258ca - Sigstore transparency entry: 1786712431
- Sigstore integration time:
-
Permalink:
SukramJ/openccu-loom-types@943db4e583854d740bf4e3e6df67294575dbb3bf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/SukramJ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@943db4e583854d740bf4e3e6df67294575dbb3bf -
Trigger Event:
repository_dispatch
-
Statement type: