Compare commits

...

4 Commits

Author SHA1 Message Date
Nocturn9x e08b47260f Minor typos and fixes and updated requirement for Python >= 3.8 2022-04-29 11:05:59 +02:00
Nocturn9x d83317d34a Minor typos and fixes 2022-04-29 11:04:23 +02:00
Nocturn9x 3f6d3c539f Minor changes for PyPI publish 2022-04-29 10:52:52 +02:00
Mattia bcdb32d8e5
Update README.md 2022-04-29 10:34:02 +02:00
4 changed files with 14 additions and 16 deletions

View File

@ -8,7 +8,7 @@ asyncevents is a small library to help developers perform asynchronous event han
- Built-in exception handling (optional)
- The public API is fully type hinted for those sweet, sweet editor suggestions
- Public API is fully documented (and some private stuff too): you could write this from scratch in a couple of hours (like I did)
- Very small (~200 CLOC), although it can't fit on a postcard
- Very small (<800 CLOC), although it can't fit on a postcard
- Oneshot events (i.e. fired only once)

View File

@ -14,7 +14,7 @@ from enum import Enum, auto, EnumMeta
class ContainsEnumMeta(EnumMeta):
"""
Simple metaclass that implements
the item in self operation
the 'item in self' operation
"""
def __contains__(cls, item):
@ -38,8 +38,8 @@ class ExceptionHandling(Enum, metaclass=ContainsEnumMeta):
to be caught
"""
IGNORE: "ExceptionHandling" = auto() # The exception is caught and ignored
LOG: "ExceptionHandling" = auto() # The exception is caught and logged
IGNORE: "ExceptionHandling" = auto() # The exception is caught and ignored
LOG: "ExceptionHandling" = auto() # The exception is caught and logged
PROPAGATE: "ExceptionHandling" = auto() # The exception is not caught at all
@ -53,8 +53,8 @@ class UnknownEventHandling(Enum, metaclass=ContainsEnumMeta):
"""
IGNORE: "UnknownEventHandling" = auto() # Do nothing
LOG: "UnknownEventHandling" = auto() # Log it as a warning
ERROR: "UnknownEventHandling" = auto() # raise an UnknownEvent error
LOG: "UnknownEventHandling" = auto() # Log it as a warning
ERROR: "UnknownEventHandling" = auto() # raise an UnknownEvent error
class ExecutionMode(Enum, metaclass=ContainsEnumMeta):
@ -63,5 +63,5 @@ class ExecutionMode(Enum, metaclass=ContainsEnumMeta):
spawns tasks
"""
PAUSE: "ExecutionMode" = auto() # Spawn tasks via "await"
PAUSE: "ExecutionMode" = auto() # Spawn tasks via "await"
NOWAIT: "ExecutionMode" = auto() # Use asyncio.create_task

View File

@ -56,8 +56,7 @@ class AsyncEventEmitter:
are started according to their priorities, but once they are started they are handled by asyncio's
event loop which is non-deterministic, so expect some disorder). Using ExecutionMode.NOWAIT allows
to call the emitter's wait() method, which pauses until all currently running event handlers have
completed executing (when ExecutionMode.PAUSE is used, wait() is a no-op), but note that return
values from event handlers are not returned
completed executing (when ExecutionMode.PAUSE is used, wait() is a no-op)
:type mode: ExecutionMode
"""
@ -176,7 +175,7 @@ class AsyncEventEmitter:
# list of tuples. Each tuple in the list contains
# a priority (defaults to 0), the insertion time of
# when the handler was registered (to act as a tie
# breaker for _tasks with identical priorities or
# breaker for tasks with identical priorities or
# when priorities aren't used at all) a coroutine
# function object and a boolean that signals if the
# handler is to be deleted after it fires the first
@ -405,9 +404,8 @@ class AsyncEventEmitter:
remove_all is True (defaults to False), all occurrences
of the given handler are removed, otherwise only the first
one is unregistered. Does nothing if the given event is not
registered already and raise_on_missing equals False (the default).
This method does nothing if the given event exists, but the given
handler is not registered for it
registered already. This method does nothing if the given
event exists, but the given handler is not registered for it
:param event: The event name
:type event: str

View File

@ -17,8 +17,8 @@ if __name__ == "__main__":
name="asyncevents",
version="0.1",
author="Nocturn9x",
author_email="hackhab@gmail.com",
description="Asynchronous event handling in modern Python",
author_email="nocturn9x@nocturn9x.space",
description="Asynchronous event handling for modern Python",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/nocturn9x/asyncevents",
@ -26,7 +26,7 @@ if __name__ == "__main__":
classifiers=[
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
"License :: OSI Approved :: Apache License 2.0",
"License :: OSI Approved :: Apache Software License",
],
python_requires=">=3.8",
)