Skip to main content

A Python package for deploying stateful loops

Project description

FastLoop

A Python package for building and deploying stateful loops. We use this at beam.cloud to deploy agents.

Installation

pip install fastloop

Usage

Basic Example

from fastloop import FastLoop, LoopContext, LoopEvent

app = FastLoop(name="my-app")

@app.event("user_message")
class UserMessage(LoopEvent):
    user_id: str
    message: str

@app.loop(name="chat", start_event=UserMessage)
async def chat_loop(context: LoopContext):
    user_msg = await context.wait_for(UserMessage, timeout=5.0)
    print(f"User {user_msg.user_id} sent a message: {user_msg.message}")
    
    # Your loop logic here

    # If you want to stop the loop
    context.stop()

    # If you want to pause the loop
    context.pause()

    # By default, we just run it again

if __name__ == "__main__":
    app.run(port=8000)

Development

This project uses uv for dependency management.

# Install dependencies
uv sync

# Run tests
uv run pytest

# Build package
uv build

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

fastloop-0.1.52.tar.gz (90.1 kB view details)

Uploaded Source

Built Distribution

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

fastloop-0.1.52-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file fastloop-0.1.52.tar.gz.

File metadata

  • Download URL: fastloop-0.1.52.tar.gz
  • Upload date:
  • Size: 90.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fastloop-0.1.52.tar.gz
Algorithm Hash digest
SHA256 fcdec034f22bd2a6b08268046fc9fc87ee15ecfe566f1273659c6f406e162ab8
MD5 31cb566e67989277dc04b510336ea596
BLAKE2b-256 3e5dfe7e32503e7e99d4b04bc0c7f46e0845ceb8067d3446d657e77a37a0d371

See more details on using hashes here.

File details

Details for the file fastloop-0.1.52-py3-none-any.whl.

File metadata

  • Download URL: fastloop-0.1.52-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fastloop-0.1.52-py3-none-any.whl
Algorithm Hash digest
SHA256 f3e2c9aa2412fa2de6cd883c95e2ac4569c13c65c6ee1005201657b1bd023442
MD5 c72fbf5d0dd75acfd57526d707ac1731
BLAKE2b-256 be34bcb14581a4291d3a6052575dfa64da22ec4a3b27cefcff06ae5a1cd80f4a

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