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.12.tar.gz (738.7 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.12-py3-none-any.whl (34.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for sidas-0.2.12.tar.gz
Algorithm Hash digest
SHA256 46e599f2b8133b744d1f724598e04267f8f4cf9f9ccb779f859457db4ff42274
MD5 381f70da41a0d6071a2487f96ea15df3
BLAKE2b-256 651e7b20f2a85768abcaad9fde5d97bd094dc4e93041b86cab72ab7b582fb146

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for sidas-0.2.12-py3-none-any.whl
Algorithm Hash digest
SHA256 1b6895f405a5f0326e56ade7dcb7c042975d8092220f237ecd779957360673a5
MD5 2280bcf5ca82b6ebd924a6b69e011a0a
BLAKE2b-256 f211af9d06101c5bb61b6a24b153fc29451d6eece6d4b28972a5ae373bb0a361

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