Skip to main content

Build event-driven workflows with python functions

Project description

drive-events

Build event-driven workflows with python async functions

Install

Install from PyPi

pip install drive-events

Install from source

# clone this repo first
cd drive-events
pip install -e .

Quick Start

A hello world example:

import asyncio
from drive_events import EventInput, default_drive


@default_drive.make_event
async def hello(event: EventInput, global_ctx):
    print("hello")


@default_drive.listen_groups([hello])
async def world(event: EventInput, global_ctx):
    print("world")

asyncio.run(default_drive.invoke_event(hello))

In this example, The return of hello event will trigger world event.

To make an event function, there are few elements:

  • Input Signature: must be (event: EventInput, global_ctx)
    • EventInput is the returns of the listening groups.
    • global_ctx is set by you when invoking events, it can be anything and default to None
  • Make sure you decorate the function with @default_drive.make_event or @default_drive.listen_groups([EVENT,...])

Then, run your workflow from any event:

await default_drive.invoke_event(EVENT, EVENT_INPUT, GLOBAL_CTX)

Check out examples for more user cases!

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

drive_events-0.0.1.dev4.tar.gz (7.5 kB view hashes)

Uploaded Source

Built Distribution

drive_events-0.0.1.dev4-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page