Skip to main content

An universal wrapper (and useful tool) to make event / commands in python

Project description

easy-events

A library that help you to manage events

Getting started

  1. Installation
  2. Usages
  3. Code example
  4. Documentation

Installation

pip install easy-events

GitHub : Github

Usages

text

Code example

from easy_events import EasyEvents

# create an event or use it in a class
client = EasyEvents()


# create another event (can be sync or async)
# you can put as much parameters as you want
@client.add_event(aliases="test1")
def test(arg1, arg2, *, arg3):
	# data is the default parameter, it contain some basic informations that you can format as you want
	print(arg1, arg2, arg3)


# trigger the event
client.trigger(data=test1, parameters="arg1 arg2 arg3 arg4")
client.trigger("test1", "arg1 arg2 arg3 arg4")
client.trigger("test1", ["arg1", "arg2", "arg3", "arg4"])
client.trigger("test1", {"arg1": "arg1", "arg2": "arg2", "arg3": ["arg3", "arg4"]})

# dict way
client.trigger({"event": "test1", "parameters": {"arg1": "arg1", "arg2": "arg2", "arg3": ["arg3", "arg4"]}})

# dict way v2
client.trigger({"event": "test", "parameters": ["arg1", "arg2", "arg3", "arg4"]})

# dict way v3
client.trigger({"event": "test1", "parameters": "arg1 arg2 arg3 arg4"})

# list way
client.trigger(["test", "arg1", "arg2", "arg3", "arg4"])

# str way
client.trigger("test arg1 arg2 arg3 arg4")

# the result will be (for all cases):
# arg1 = arg1
# arg2 = arg2
# arg3 = [arg3, arg4]

This library also support type assignation

from easy_events import EasyEvents

client = EasyEvents()


@client.add_event()
def sum(X: int, Y: int):
	return X+Y


client.trigger("sum 5 10")
client.trigger(["sum", "5", 10])
# the result will be 15

Context support

from easy_events import EasyEvents


class CTX:
	def __init__(self, data: int = 0):
		self.data = data


client = EasyEvents(default_context=CTX)
# client = EasyEvents(default_context=CTX(0)) works as well

@client.add_event()
def context(ctx):
	print("ctx.data = ", ctx.data)


client.trigger("context", context=CTX(1))
client.trigger("context")

# this will print :
# "ctx.data = 1"
# "ctx.data = 0"

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

easy-events-3.1.1.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

easy_events-3.1.1-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file easy-events-3.1.1.tar.gz.

File metadata

  • Download URL: easy-events-3.1.1.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for easy-events-3.1.1.tar.gz
Algorithm Hash digest
SHA256 74f216ae039a9773a3d2cee4dd7900521c45d82e2921ac87cd8362ffede4774e
MD5 12248184e72ba83cfe7447c7b61e17cd
BLAKE2b-256 45a9a40d8ac9805f9f933465583929b010f1dade3d45b3e66a3c33b17ab9cf18

See more details on using hashes here.

File details

Details for the file easy_events-3.1.1-py3-none-any.whl.

File metadata

  • Download URL: easy_events-3.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for easy_events-3.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7af8e7f5bd1cfcd62571bcfc5e11a4e096eddbe8480a08e86eba40827cacbd41
MD5 c64b787e1f5bee55e4d172bd9f5a908f
BLAKE2b-256 2bdd010f8f22623c007cdaeaec4329e8a7feab4a98ad0499684a8d729b15775b

See more details on using hashes here.

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