Skip to main content

No project description provided

Project description

sida

import random
import statistics

from sidas.extensions import REGISTER_ASSETS_IN_MEMORY
from sidas.extensions.assets import DownstreamAsset, ScheduledAsset
from sidas.extensions.coordinators import SimpleCoordinator


class Numbers(ScheduledAsset[list[float]]):
    cron_expression = "0 0 * * *"

    def transformation(self) -> list[float]:
        return [random.normalvariate() for i in range(10)]


class Mean(DownstreamAsset[float]):
    def transformation(self, n: Numbers) -> float:
        return statistics.mean(n.data)


class Variance(DownstreamAsset[float]):
    def transformation(self, n: Numbers) -> float:
        return statistics.variance(n.data)


class Report(DownstreamAsset[str]):
    def transformation(self, m: Mean, v: Variance) -> str:
        return f"Todays random numbers: mean {m.data} and var {v.data}"


# define the Persisters
REGISTER_ASSETS_IN_MEMORY(Numbers, Mean, Variance, Report)

# instantiate the assets
n = Numbers()
m = Mean()
v = Variance()
r = Report()

# instantiate a cooridnator
coordinator = SimpleCoordinator()
class Numbers(ScheduledAsset[list[float]]):
    cron_expression = "0 0 * * *"

    def __init__(self, resource: File)
    def transformation(self) -> list[float]:
        return [random.normalvariate() for i in range(10)]


def test_report() -> None:
    m = Mean()
    m.data = 0.0

    v = Variance()
    v.data = 1.1

    r = Report()
    assert r.transformation() == "Todays random numbers: mean 0.0 and var 1.0"

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

sidas-0.2.2.tar.gz (718.4 kB view details)

Uploaded Source

Built Distribution

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

sidas-0.2.2-py3-none-any.whl (32.6 kB view details)

Uploaded Python 3

File details

Details for the file sidas-0.2.2.tar.gz.

File metadata

  • Download URL: sidas-0.2.2.tar.gz
  • Upload date:
  • Size: 718.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.26

File hashes

Hashes for sidas-0.2.2.tar.gz
Algorithm Hash digest
SHA256 eed54da7e8aef81dd9c11ec8c0a467bb3d4c5626ab88c3ac2d65bbb19e75347b
MD5 00c0f69018525c222835db8333f40768
BLAKE2b-256 5609014d6c29607502866fc203c205c2ba0d72d9afbef09d5beee896b2892fcb

See more details on using hashes here.

File details

Details for the file sidas-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: sidas-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 32.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.26

File hashes

Hashes for sidas-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c85565fd1143bd9dc5deaf5497863817bbba442078345e56877d7bcb41fcad25
MD5 8b82f3c6a379f10d8ba6c02d30393144
BLAKE2b-256 f81d392e241a7a5b6cef404dc3742ea62ac677448f587a2695bb25a12388bfb5

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