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.3-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: algomancy-0.8.3-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fb937a9cc245830eeb0d02e7ded595df118b4d68d468127320dcbbb58b072ee7
MD5 424618e84aa29d5caad7ed34984bc9b1
BLAKE2b-256 d080e2beed8812f5d831f7c08ec837e8c2154cc12f47f1cde19c11306ad15280

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