Skip to main content

Common data models and storage components for Analog Cloud

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

analogcloud_common-0.1.4.tar.gz (66.5 kB view details)

Uploaded Source

Built Distribution

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

analogcloud_common-0.1.4-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file analogcloud_common-0.1.4.tar.gz.

File metadata

  • Download URL: analogcloud_common-0.1.4.tar.gz
  • Upload date:
  • Size: 66.5 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 analogcloud_common-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9114aaccd9b5709f2eef4d161ef0dbae59c41fe523f7a069ca461f07b050749a
MD5 e4623361bada6aa3ca39e3efac81aa00
BLAKE2b-256 1cf44dd58705d55bdaec61dbe087205adb13cf2bb6fcdf990916739636f976a7

See more details on using hashes here.

File details

Details for the file analogcloud_common-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: analogcloud_common-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 37.4 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 analogcloud_common-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a37001459588ab15a09803f421236df874eb8d7027ca4fd0085322f38b540b92
MD5 1c3dd1aa0345b390171ccb9a71bfc154
BLAKE2b-256 a159a9a51cb9f2a698aa20da676e82eac8ba0fa540b710c7f60bf8c4f44e04e1

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