Skip to main content

Frank brings order and helps you build complex LLM workflows using scalable, testable, and reusable components.

Project description

🧟 frankstate

frankstate is a lightweight pattern layer for assembling LangGraph workflows with clearer structure, stronger boundaries, and less duplicated graph wiring.

It does not replace LangGraph and it does not introduce a separate runtime. The compiled result is still a native LangGraph graph built with official LangGraph primitives.

What The Package Provides

The published package focuses on reusable workflow assembly contracts:

  • WorkflowBuilder to compile a graph from a layout class.
  • GraphLayout to separate runtime dependency construction from graph declaration.
  • SimpleNode, CommandNode, SimpleEdge, and ConditionalEdge to model graph structure.
  • StateEnhancer, StateEvaluator, and StateCommander to keep node and routing logic aligned with LangGraph concepts.
  • NodeManager and EdgeManager to normalize layout declarations into LangGraph registration calls.

Public API

The package root intentionally exports only:

from frankstate import WorkflowBuilder

All other reusable contracts should be imported from subpackages, usually from their concrete modules:

from frankstate.entity.graph_layout import GraphLayout
from frankstate.entity.node import SimpleNode, CommandNode
from frankstate.entity.edge import SimpleEdge, ConditionalEdge
from frankstate.entity.statehandler import StateEnhancer, StateEvaluator, StateCommander
from frankstate.entity.runnable_builder import RunnableBuilder
from frankstate.managers.node_manager import NodeManager
from frankstate.managers.edge_manager import EdgeManager

Installation

With pip:

pip install frankstate

With uv:

uv pip install frankstate

Optional example dependencies:

pip install frankstate[examples]

The published wheel contains only frankstate. Repository-level reference code, service integrations, notebooks, and tests are not part of the base package.

Minimal Example

from frankstate import WorkflowBuilder
from my_project.layouts.simple_graph import SimpleGraphLayout
from my_project.state import GraphState

workflow_builder = WorkflowBuilder(
    config=SimpleGraphLayout,
    state_schema=GraphState,
)

graph = workflow_builder.compile()

LangGraph Alignment

frankstate keeps the official LangGraph execution model:

  • StateEnhancer wraps node logic that returns partial state updates.
  • StateEvaluator wraps the callable used by conditional edges.
  • StateCommander wraps nodes that return official LangGraph Command objects.

The compiled graph still relies on LangGraph's own StateGraph, add_node(), add_edge(), add_conditional_edges(), and Command.

Repository Boundaries

If you are browsing the repository instead of the published package:

  • src/frankstate is the reusable package.
  • src/core_examples is the repository reference layer.
  • src/services contains repository integrations and deployment entrypoints.

Those repository layers help demonstrate how frankstate can be consumed, but they are not the stable public API of the base wheel.

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

frankstate-0.1.2.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

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

frankstate-0.1.2-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file frankstate-0.1.2.tar.gz.

File metadata

  • Download URL: frankstate-0.1.2.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for frankstate-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1b416606de53e39895d15ad375deabc1da1c636c4fbc773e431a018c38d2bf87
MD5 9cdeb66cbf1fe5460266e09dda8f0296
BLAKE2b-256 6c80a336ff6d3349b6a52075ee2df06eb1c24e3ba4ce7105e46095baa702581c

See more details on using hashes here.

Provenance

The following attestation bundles were made for frankstate-0.1.2.tar.gz:

Publisher: release.yml on aamaragones/frankenst-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file frankstate-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: frankstate-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for frankstate-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9bfd8486c357ee56be639002040cf140b3ba50548d624b69076e5f8d570b2c64
MD5 1b068fcc9232c783d3d89988e44a290f
BLAKE2b-256 d613ba09a403d96f30e934f1a7babe4774a7c4326db3b96526df728ec5361183

See more details on using hashes here.

Provenance

The following attestation bundles were made for frankstate-0.1.2-py3-none-any.whl:

Publisher: release.yml on aamaragones/frankenst-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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