Skip to main content

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 storage
    • hot: use plain Python classes that abstract away the path variables and include static types
    • cold: 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lucihub_common-0.1.0.tar.gz (44.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lucihub_common-0.1.0-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

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

Hashes for lucihub_common-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e846aa239747b631e42a008738985fb3e122dcf12dbc6c6735b81b0c014b5640
MD5 1f91ff01a3285dca8db45abfaf4895c2
BLAKE2b-256 768810391eabc09f55dd28061db1cfc60690a5c8925d4b677222f044a627eeb3

See more details on using hashes here.

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

Hashes for lucihub_common-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 997369ffe4ba8f5b300c85920dc603d1caa90633fdbef6caf9ed316a2c036e1f
MD5 6fc2088d9c698c2e3dbf1c7351247e71
BLAKE2b-256 af1955fa4b6b437e73e00a4349623510d0bb19f2f75752d3504676883c2e52d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page