Skip to main content

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


Download files

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

Source Distribution

figio_tools-0.1.0.tar.gz (40.2 kB view details)

Uploaded Source

Built Distribution

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

figio_tools-0.1.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

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

Hashes for figio_tools-0.1.0.tar.gz
Algorithm Hash digest
SHA256 944cc5e769dc1bbdf957c17fe058527fe30f979392aa7f0b6b606835577d4da8
MD5 e6ced5a5bf15ba2e6360f944841a9c1c
BLAKE2b-256 16683bf82021561747d129c3d78102b6d83a25a5e2ced35c00d132e6b008fb29

See more details on using hashes here.

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

Hashes for figio_tools-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3156d4d3838fdbc7c38b49dd5d6ac87e4693d1c703598a3d865b900f67f722b8
MD5 ec2507e7537006c98805655be52b21ef
BLAKE2b-256 a360728df6c6e5be19cfb4b472e04d81721cd19677974e082e978f1b35ee4077

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