Metadata-Version: 2.4
Name: royalflushlab
Version: 0.1.2
Summary: Royal Flush Lab: the deterministic single-machine experimental variant of Royal Flush, a reproducible federated-learning experiment platform for multi-class classification.
Project-URL: Homepage, https://github.com/FranEnguix/royalflushlab
Author: Fran Enguix
License: MIT
License-File: LICENSE
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.14
Requires-Dist: codecarbon>=2.8
Requires-Dist: kaleido>=0.2.1
Requires-Dist: networkx>=3.4
Requires-Dist: numpy>=2.1
Requires-Dist: pandas>=2.2
Requires-Dist: plotly>=5.24
Requires-Dist: psutil>=6.1
Requires-Dist: pyvis>=0.3.2
Requires-Dist: pyyaml>=6.0
Requires-Dist: scikit-learn>=1.6
Requires-Dist: torch>=2.9
Requires-Dist: torchvision>=0.24
Requires-Dist: typer>=0.15
Requires-Dist: ucimlrepo>=0.0.7
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: mypy>=1.13; extra == 'dev'
Requires-Dist: pytest-cov>=6.0; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Requires-Dist: twine>=5.1; extra == 'dev'
Requires-Dist: types-psutil; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Provides-Extra: docs
Requires-Dist: sphinx-rtd-theme>=3.0; extra == 'docs'
Requires-Dist: sphinx>=8.1; extra == 'docs'
Description-Content-Type: text/markdown

# Royal Flush Lab

[![PyPI](https://img.shields.io/pypi/v/royalflushlab.svg)](https://pypi.org/project/royalflushlab/)
[![Documentation](https://readthedocs.org/projects/royalflushlab/badge/?version=latest)](https://royalflushlab.readthedocs.io/en/latest/)

Royal Flush Lab is the deterministic single-machine experimental variant of
Royal Flush. It preserves the agent-level semantics of the original Royal
Flush platform while providing reproducible scheduling, controlled
execution, and consistent resource accounting for algorithm comparison.

Royal Flush Lab is a Python 3.14 command-line platform for running
reproducible federated-learning experiments for multi-class classification
in a single local process. It supports local and centralized baselines,
centralized coordinator-based FL (FedAvg, FedProx), and decentralized
Consensus-learning and Consensus-weighted learning families, including
synchronous, asynchronous, and coalition-based variants.

Communication and asynchronous execution are simulated with a deterministic
discrete-event scheduler; there is no real networking, threading, or
uncontrolled concurrency.

## Installation

Requires Python 3.14. CUDA acceleration depends on your platform's PyTorch
build; see `docs/installation.rst` for CPU/CUDA-specific guidance.

```bash
python -m pip install royalflushlab
```

To work on Royal Flush Lab itself (tests, linting, docs), install from a
clone in editable mode instead:

```bash
python -m pip install -e '.[dev,docs]'
```

## Quickstart

```bash
royalflushlab init
royalflushlab expand --grid experiment_grid.yml
royalflushlab run --queue queue
royalflushlab analyze --project <project_name>
```

`rfl` is an alias for `royalflushlab`.

See `docs/` for the full documentation, including the CLI reference,
configuration schemas, algorithm pages, artifact schemas, and analysis
methodology.
