Declarative build orchestrator for reproducible scientific figures
Project description
figio
Declarative build orchestrator for reproducible scientific figures.
Distribution name: figio
Import package: figio
CLI: figio
figio coordinates existing plotting libraries (Matplotlib, Vega-Lite, etc.) through a YAML manifest (FigureSpec) that describes panels, layout, annotations, and style tokens — then assembles them into a single, validated SVG suitable for journal submission.
figio is an orchestration system, not a rendering engine. Panels are opaque — figio doesn't reach inside them. It coordinates their output into a composed figure with validated positioning, annotations, and journal compliance checks.
Install
pip install figio # core orchestrator
pip install "figio[mpl]" # + Matplotlib adapter
pip install "figio[export]" # + PDF/PNG export via CairoSVG
pip install "figio[all]" # everything
Quick start
# Scaffold a figure spec
figio init
# Build a figure from spec
figio build figures/fig1.yaml
# Validate against journal target
figio validate figures/fig1.yaml --target nature
# Inspect spec metadata
figio inspect figures/fig1.yaml
Architecture
FigureSpec (YAML) → Adapters → Panel SVGs → Composer → Composed SVG → Export (PDF/PNG)
| Layer | What it does |
|---|---|
| Schema | Pydantic models: FigureSpec, PanelSpec, LayoutSpec, AnnotationSpec |
| Targets | Built-in journal profiles (Nature, default) with size/font constraints |
| Adapters | Protocol + backends: Matplotlib renders panels to SVG |
| Composer | Grid solver, constraint application, SVG assembly, annotation placement |
| Validate | Checks against target profile (width, height, font size, overflow) |
| Export | SVG → PDF/PNG via CairoSVG (optional dependency) |
| Cache | SHA-256 content hashing for incremental rebuilds |
Part of the projio ecosystem
figio integrates with projio as the figure orchestration layer. When used through projio's MCP server, it exposes tools for AI-assisted figure authoring: figio_build, figio_inspect, figio_validate, figio_edit_spec, figio_query_output.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file figio_tools-0.1.0.tar.gz.
File metadata
- Download URL: figio_tools-0.1.0.tar.gz
- Upload date:
- Size: 40.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
944cc5e769dc1bbdf957c17fe058527fe30f979392aa7f0b6b606835577d4da8
|
|
| MD5 |
e6ced5a5bf15ba2e6360f944841a9c1c
|
|
| BLAKE2b-256 |
16683bf82021561747d129c3d78102b6d83a25a5e2ced35c00d132e6b008fb29
|
File details
Details for the file figio_tools-0.1.0-py3-none-any.whl.
File metadata
- Download URL: figio_tools-0.1.0-py3-none-any.whl
- Upload date:
- Size: 31.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3156d4d3838fdbc7c38b49dd5d6ac87e4693d1c703598a3d865b900f67f722b8
|
|
| MD5 |
ec2507e7537006c98805655be52b21ef
|
|
| BLAKE2b-256 |
a360728df6c6e5be19cfb4b472e04d81721cd19677974e082e978f1b35ee4077
|