Skip to main content

Bind functions to events that can be called from any other script at any time.

Project description

ev-manager (Event Manager)

Useful when working with DCCs like Maya, MotionBuilder, Unreal Engine, etc. and you want different tools/scripts to communicate with each other.

Installation:

pip install ev-manager

Examples:

Using classes:

""" my_module.py """

from typing import Callable
from ev_manager import Event

class ExampleEvent(Event[Callable[[int], None]]):
    pass

def my_callback(value: int):
    print(f"Number: {value}")

ExampleEvent.bind(my_callback)
>>> from my_module import ExampleEvent
>>> ExampleEvent.emit(5)
>>> "Number: 5"

Using functions:

import ev_manager

def hello_world():
    print("Hello World!")

ev_manager.bind("MyEvent", hello_world)
>>> import ev_manager
>>> ev_manager.emit("MyEvent")
>>> "Hello World!"

Available functions:

Function Description
bind(event, function) Bind a function to an event.
unbind(event, function) Unbind a function from an event.
unbind_all(*, event, function) Either unbind all functions from an event or unbind a function from all events.
is_bound(event, function) Check if a function is bound to an event.
emit(event, *args, **kwargs) Call all functions bound to an event.

Limitations:

Events are per Python instance. So they will for example not be communicating between different applications.

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

ev-manager-0.1.0.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distribution

ev_manager-0.1.0-py3-none-any.whl (4.8 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