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.1.tar.gz (43.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.1-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file lucihub_common-0.1.1.tar.gz.

File metadata

  • Download URL: lucihub_common-0.1.1.tar.gz
  • Upload date:
  • Size: 43.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.1.tar.gz
Algorithm Hash digest
SHA256 6d072ed09218a91701438eb87524b506ccdfe52accaacbaa4c5c8459022e0082
MD5 311bcdc0c527b475675de69be521fd07
BLAKE2b-256 fc94dae09242129f03b018e8ec2ec7ce4fd1b205af359278f89175a6007c31a3

See more details on using hashes here.

File details

Details for the file lucihub_common-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: lucihub_common-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 24.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ec3305678910f950e74207c55ab0c37a532812c4e50f9493e296f615bfb2a5a4
MD5 eb72cc95cfefce9af01a8c6f090cdc69
BLAKE2b-256 5d4d7f1989909f612b0b1432047e9f7291905c2f83f6c125a54609e45d7d0a03

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