Skip to main content

A high-performance, simple-structured event system, relies on asyncio

Project description

Letoderea

Licence PyPI PyPI - Python Version

一个高性能,结构简洁,依赖于 Python内置库asyncio 的事件系统, 设计灵感来自Graia BroadcastControl

项目仍处于开发阶段,部分内容可能会有较大改变

安装

从 PyPI 安装

pip install arclet-letoderea

样例

from arclet.letoderea import EventSystem, Contexts

es = EventSystem()


class TestEvent:

    async def gather(self, context: Contexts):
        context["name"] = "Letoderea"


@es.on(TestEvent)
async def test_subscriber(name: str):
    print(name)


es.loop.run_until_complete(es.publish(TestEvent()))

特性

  • 任何实现了 gather 方法的类都可以作为事件
  • 通过 Provider 实现依赖注入的静态绑定,提高性能
  • 通过 Contexts 增强事件传递的灵活性
  • 通过 Publisher 实现事件响应的隔离
  • 通过 Auxiliary 提供了一系列辅助方法,方便事件的处理

开源协议

本实现以 MIT 为开源协议。

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

arclet-letoderea-0.5.0.tar.gz (16.5 kB view hashes)

Uploaded Source

Built Distribution

arclet_letoderea-0.5.0-py3-none-any.whl (16.9 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