Common data models and storage components for LuciHub
Project description
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
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 lucihub_common-0.1.0.tar.gz.
File metadata
- Download URL: lucihub_common-0.1.0.tar.gz
- Upload date:
- Size: 44.6 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e846aa239747b631e42a008738985fb3e122dcf12dbc6c6735b81b0c014b5640
|
|
| MD5 |
1f91ff01a3285dca8db45abfaf4895c2
|
|
| BLAKE2b-256 |
768810391eabc09f55dd28061db1cfc60690a5c8925d4b677222f044a627eeb3
|
File details
Details for the file lucihub_common-0.1.0-py3-none-any.whl.
File metadata
- Download URL: lucihub_common-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.9 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
997369ffe4ba8f5b300c85920dc603d1caa90633fdbef6caf9ed316a2c036e1f
|
|
| MD5 |
6fc2088d9c698c2e3dbf1c7351247e71
|
|
| BLAKE2b-256 |
af1955fa4b6b437e73e00a4349623510d0bb19f2f75752d3504676883c2e52d0
|