Skip to main content

A simple library for pub/sub-style events.

Project description

evel

A simple library for pub/sub-style events.

➡️ Quick Links: Repository · Issues

evel is pronounced ee-VELL, basically like "event" but with and L instead of NT.

🌱 Status

evel is pretty new and still under development. The API is not yet stable and will change. If you're using it in one of your projects, make sure to pin the version.

Drivers

The idea is that evel is going to support multiple pub/sub implementations under a single API at some point. We're not there yet.

These are the planned and implemented drivers:

📚 Documentation

There's no documentation yet, but you can have a look at the test_two_topics function in the asyncio queue tests to get an idea.

🗃️ Installation

Simply install the evel package from PyPI via your preferred package manager.

For example, to add it as a dependency to your uv-managed project, use this:

uv add evel

🧑‍💻 Development

Preparation

We're using uv to manage this project and its dependencies. After cloning the repository using Git, a simple uv sync should get everything you need.

git clone https://codeberg.org/scy/evel.git evel
cd evel
uv sync

direnv

We recommend using direnv to add installed dependencies to your $PATH, so that you don't need to prepend uv run to every command. For example, after installing direnv, you can use direnv edit in this repository's directory and add the following line:

PATH_add .venv/bin

The rest of this readme assumes that you have .venv/bin in your $PATH.

EditorConfig

Make sure your editor or IDE supports the EditorConfig standard, so that your code adheres to the project's preferred indentation, line lengths, etc.

Makefile

There is a Makefile that contains frequently used commands to speed up development, but it's optional to use. The following targets exist:

  • fmt: Use Ruff to format and lint the code.
  • qa: Use mypy for static type analysis.
  • reuse: Use reuse lint to make sure every file contains licensing information.
  • test: Use pytest for automated testing and code coverage.
  • noqa: Add noqa statements to ignore everything Ruff complains about. Only use this after fixing everything that needs fixing.

make all, or simply make, will run fmt, qa, reuse, and test. You should do this before every commit and fix all issues that are reported.

📃 License

This project is licensed under the terms of the MIT License.

The project also conforms to the REUSE Specification, version 3.3. You can use the reuse tool to interpret the machine-readable licensing information.

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

evel-0.1.0rc1.tar.gz (42.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evel-0.1.0rc1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file evel-0.1.0rc1.tar.gz.

File metadata

  • Download URL: evel-0.1.0rc1.tar.gz
  • Upload date:
  • Size: 42.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for evel-0.1.0rc1.tar.gz
Algorithm Hash digest
SHA256 4c1a6891f47e00d1ce641ec9d98b7efc0fcc714abecf3dc355338d17102dbb59
MD5 46fb889aff75b836babf677f506d1a69
BLAKE2b-256 31d3981f4b9179d7606b010bde92b03a54dc97363cc212620931aab47c4da031

See more details on using hashes here.

File details

Details for the file evel-0.1.0rc1-py3-none-any.whl.

File metadata

  • Download URL: evel-0.1.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for evel-0.1.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 dcc0388158bee21c831c6b94c49327c9b35a42c7f702241b974b82b9c1d2f1b0
MD5 fe8e94e8bd189049b81d29528df8c0fc
BLAKE2b-256 cd0ab5bfada5975430562da441a48ec45138a1c077db2f207efe02703b6aaf10

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