Skip to main content

🧬 Formed

CI Docs Python version License PyPI version Ask DeepWiki

Formed is a flexible framework for managing data, experiments, and workflows in both research and production environments. It provides a simple yet powerful DAG-based workflow system with automatic caching, dependency tracking, and seamless integration with popular ML tools.

Key Features

  • 📊 DAG-based workflows: Define complex workflows as directed acyclic graphs with automatic dependency resolution
  • 💾 Smart caching: Content-based automatic caching that detects code changes via AST analysis
  • 🔧 Flexible configuration: Use Jsonnet/JSON for declarative workflow definitions with type safety
  • 🔌 Rich integrations: Built-in support for PyTorch, 🤗 Transformers, MLflow, and more
  • 🎯 Type-safe: Leverage Python type hints for automatic object construction and validation
  • 📦 Extensible: Easy to extend with custom steps, formats, and organizers

Quick Example

Define reusable computation steps with automatic caching:

# mysteps.py
from collections.abc import Iterator
from formed import workflow

@workflow.step
def load_dataset(size: int) -> Iterator[int]:
    for i in range(size):
        yield i

@workflow.step
def square(dataset: Iterator[int]) -> Iterator[int]:
    for i in dataset:
        yield i * i

Connect steps in a workflow configuration:

// workflow.jsonnet
{
  steps: {
    dataset: {
      type: 'load_dataset',
      size: 10
    },
    results: {
      type: 'square',
      dataset: { type: 'ref', ref: 'dataset' }
    }
  }
}

Configure and run:

# formed.yml
workflow:
  organizer:
    type: filesystem

required_modules:
  - mysteps
formed workflow run workflow.jsonnet --execution-id my-experiment

Results are automatically cached - rerunning only executes changed steps!

Installation

pip install formed

With integrations:

pip install formed[mlflow]         # MLflow integration
pip install formed[torch]          # PyTorch integration
pip install formed[transformers]   # 🤗 Transformers integration
pip install formed[all]            # All integrations

Documentation

📖 Full documentation available here

Why Formed?

Formed bridges the gap between experimental notebooks and production pipelines:

  • Reproducible: Content-based caching ensures consistent results
  • Iterative: Only re-execute what changed, speeding up development
  • Collaborative: Declarative configs make workflows easy to share and review
  • Production-ready: Same code works in research and deployment

Whether you're prototyping in Jupyter or deploying at scale, formed adapts to your workflow.

License

MIT License - see LICENSE file for details.

Download files

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

Source Distribution

formed-0.0.10.tar.gz (177.0 kB view details)

Uploaded Source

Built Distribution

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

formed-0.0.10-py3-none-any.whl (228.6 kB view details)

Uploaded Python 3

File details

Details for the file formed-0.0.10.tar.gz.

File metadata

  • Download URL: formed-0.0.10.tar.gz
  • Upload date:
  • Size: 177.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","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 formed-0.0.10.tar.gz
Algorithm Hash digest
SHA256 b3e23ff5f291bb7bc60ba43c09f984fb6631cbbf61ddbf8985b301d1380033db
MD5 699d1855da94ccbfa6156dcf0de17cb2
BLAKE2b-256 44b3097ace1fbcd70ba41143cf522a70b41da9c1e69be513c857461d8e6d1cb8

See more details on using hashes here.

File details

Details for the file formed-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: formed-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 228.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","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 formed-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 4e2a6d084883b4f6396a0ca845d2a469b9131e8ed2b4abfca38f11e86f0b3d95
MD5 4e3309bf97871edd7403eba7d5937242
BLAKE2b-256 8c39106e8f6aae36376f4aabc95e0ba4cba837cd91f1031ce31fd9a72940f221

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

This release

0.0.10 This release

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page