Models
This component contains data models that are used to communicate between at least two different components of the project.
This includes the following models:
database: models/classes for interfacing with hot and cold storagehot: use plain Python classes that abstract away the path variables and include static typescold: data models in SQL alchemy
Note that the hot storage essentially caches parts of the data structures
of the cold storage. This should be reflected in the SQL alchemy model:
Principles
- make sure to use object-oriented expressons and techniques, for example abstract models and classes which have different implementations to account for versioning.
- consider the fact that the API itself is mostly consisting of CRUD-type of endpoints
- for hot storage, favor small field with primitive data types
- for cold storage, prefer large objects that enable fast data read without too many joins when reading/writing through the API endpoints
Modelled data
This is a very rough first draft which does not correspond to an 1:1 ORM:
Cold storage
- run
- id
- type of job (compile, run, verify...)
- state changes (array of timestamp/status)
- logs
- number of channels
- measurements (per channel) for run/verify jobs
- device id
- input type
- input (JSON data)
- output (JSON data)
- device
- id
- type
- input type
- parameter schema (as a data type that will simplify the model checking later)
Hot storage
- run (by UUID)
- state changes (array of pairs timestamp/status)
- logs (array of lines, lines are appended)
- measurements (on different channels, each channel is a time series of floating point values)
- list of active devices (device IDs), regularly updated from scanner
Metadata
Release files for analogcloud-common 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| analogcloud_common-0.1.5.tar.gz | 66.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| analogcloud_common-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 104.0 kB
Release files / analogcloud_common-0.1.5.tar.gz
| Download URL | analogcloud_common-0.1.5.tar.gz |
|---|---|
| Size | 66.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6623f6a72a609ddfdd5b0ae5c110c2ce7f48cac50ab0eb4baadd9bad408611de
|
|
BLAKE2b-256 checksum How to use checksums |
79a2abcb5e8485497d13bd358cee4b72b65841b89c07e282dad6662641b07e63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / analogcloud_common-0.1.5-py3-none-any.whl
| Download URL | analogcloud_common-0.1.5-py3-none-any.whl |
|---|---|
| Size | 37.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
672c923e151e3fd1bc7e4e822a119b684e18d3f159c0305a410e1c232f009801
|
|
BLAKE2b-256 checksum How to use checksums |
411ee3993112fa9dc870ea820477e5abf0988b487e004c4d45c21ab439ebee4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|