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.79.tar.gz (118.0 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.79-py3-none-any.whl (41.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastloop-0.1.79.tar.gz
  • Upload date:
  • Size: 118.0 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.79.tar.gz
Algorithm Hash digest
SHA256 721f017921f5cea555ef83d3cb2207a0dab4f73a55c9b054b9692c46b134bb32
MD5 86577d9eaebe782d696cafbea7c987d1
BLAKE2b-256 e7dfd3a428bbc02db4f01f5ba7afef8e9fabf3440eda553b8d557865570b9f55

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fastloop-0.1.79-py3-none-any.whl
  • Upload date:
  • Size: 41.6 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.79-py3-none-any.whl
Algorithm Hash digest
SHA256 fa16cdf7eb3712c8865b996c3650e0e06dd5c88df5d8e6c5b60eb10ffce0e694
MD5 7613de4c64620b5b892d7413c6ba91c0
BLAKE2b-256 943a7c6692eb167d140c4de264be4c31007969f5060e720d3dc4c4abf78c3fe8

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