Skip to main content

A dashboarding framework for visualizing performances of algorithms or simulations in various scenarios.

Project description

Algomancy

Algomancy is a lightweight framework for building interactive dashboards that visualize the performance of algorithms and/or simulations across scenarios. It brings together ETL, scenario orchestration, KPI computation, and a Dash-based UI with modular pages.

Highlights

  • Python 3.14+
  • Dash UI with modular pages and a production-ready server
  • Batteries-included packages: content, data, scenario, GUI, API

Installation

  • Using uv (recommended):
    uv add algomancy
    
  • Using pip:
    pip install algomancy
    

Minimal example

The following example launches a small placeholder dashboard using the default building blocks from the Algomancy ecosystem. Copy this into a file called main.py and run it.

Set up folder structure

  1. Create the following directory structure:
root/
|── assets/ (*)
├── data/   (*)
├── src/
│   ├── data_handling/
│   ├── pages/
│   └── templates/
│       ├── kpi/
│       └── algorithm/
├── main.py  (*)
├── README.md
└── pyproject.toml

Only the items marked (*) are required.

  1. create main.py
from algomancy_data import DataSource
from algomancy_gui.configuration.appconfig import AppConfig
from algomancy_gui.configuration.serverconfig import ServerConfig
from algomancy_gui.gui_launcher import GuiLauncher
from algomancy_scenario.core_configuration import CoreConfig
from algomancy_content import (
  PlaceholderETLFactory,
  PlaceholderAlgorithm,
  PlaceholderKPI,
  PlaceholderSchema,
)


def main() -> None:
  app_cfg = AppConfig(
    core_config=CoreConfig(
      etl_factory=PlaceholderETLFactory,
      kpis={"placeholder": PlaceholderKPI},
      algorithms={"placeholder": PlaceholderAlgorithm},
      schemas=[PlaceholderSchema()],
      data_object_type=DataSource,
      autocreate=False,
      autorun=False,
      title="My Algomancy Dashboard",
    ),
    server_config=ServerConfig(host="127.0.0.1", port=8050),
  )

  app = GuiLauncher.build(app_cfg)
  GuiLauncher.run(app=app, host=app_cfg.server.host, port=app_cfg.server.port)


if __name__ == "__main__":
  main()

Run

Examples

  • A more complete example (including assets and templates) is available in the algomancy repository under example/. The entry point is example/main.py.

Requirements

  • Python 3.14+
  • Windows, macOS, or Linux

License

  • See the LICENSE file included with this distribution.

Changelog

  • See changelog.md for notable changes.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

algomancy-0.8.5-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file algomancy-0.8.5-py3-none-any.whl.

File metadata

  • Download URL: algomancy-0.8.5-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for algomancy-0.8.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d8c88834704206ebc5c677fd1c7fcce4cc90273456b0a185bc0f669371e445ae
MD5 48ca573289c5195d943cb2723f64e39c
BLAKE2b-256 328ecff28070e8ad296e359b833ecfaa50ed7b4bd8e818ad2952abb5cd1258be

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