Metadata-Version: 2.5
Name: omicos-figure-engine
Version: 0.1.0
Summary: OmicOS scientific figure engine: instrument a live matplotlib Figure, apply semantic overrides, render and export it over a JSON line protocol.
Project-URL: Source, https://github.com/omicverse/tavotto-omicos
Project-URL: Upstream, https://github.com/Tavotto/Tavotto
Project-URL: Protocol, https://github.com/Tavotto/Tavotto/blob/eb1404942ad60a776403fd4a9d3c85459bc5a8b0/docs/adr/0003-worker-protocol-v1.md
Author: OmicOS (OmicVerse)
License-Expression: AGPL-3.0-only
License-File: LICENSE
Keywords: figure,matplotlib,omicos,publication
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: <3.15,>=3.10
Requires-Dist: matplotlib<3.12,>=3.8
Requires-Dist: numpy<3,>=1.24
Description-Content-Type: text/markdown

# omicos-figure-engine

The scientific figure engine that OmicOS runs in the user's own Python
environment: it executes a matplotlib figure script once, keeps the resulting
`Figure` objects alive, describes every editable artist in a manifest, applies
semantic overrides (title text, line colour, tick font size, …) and renders
previews and publication exports — all driven by a supervisor over a JSON
line protocol on stdin/stdout (wire protocol v1, see `Protocol` in the project
URLs).

This distribution is the **worker side only** of the engine in
[tavotto-omicos](https://github.com/omicverse/tavotto-omicos), a modified
version of [Tavotto](https://github.com/Tavotto/Tavotto).  It depends on
matplotlib and numpy and nothing else: no Flask, no PyMuPDF, no web assets.

## Running

    python -m omicos_figure_engine.worker --script fig.py --figures-dir DIR \
        --out-dir OUT --sandbox SB --entry __main__

then write one JSON request per line to stdin, e.g.
`{{"protocol_version": 1, "request_id": "r1", "cmd": "ping", "payload": {{}}}}`.
`omicos_figure_engine.worker_path()` returns the entry script for supervisors
that spawn `python <worker.py> …` directly.

## Licence

AGPL-3.0-only, unchanged from the base project.  `LICENSE` and
`MODIFICATIONS.md` (the AGPL §5a statement of modifications) ship inside the
package; the complete corresponding source is the repository above at the
commit recorded in `omicos_figure_engine/_build.json`.
