AnP/Python/Application/Event.py
2026-05-28 07:24:34 +02:00

39 lines
899 B
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from typing import Self, Callable, Any, Optional
class Event:
def __init__(self:Self) -> None:
self.__events:dict[int, Callable[[Optional[Any]], Any|None]] = {}
def execute(self:Self, *inputs:Any|None) -> None:
results:dict[int, Any|None] = {}
for i, event in self.__events.items():
results[i] = event(*inputs)
return results
def add(self:Self, event:Callable[[Optional[Any]], Any|None]) -> int:
i:int = 0
l:int = len(self.__events)
while i < l:
if i not in self.__events:
break
i += 1
self.__events[i] = event
return i
def remove(self:Self, i:int) -> None:
if i in self.__events:
del self.__events[i]
def clean(self:Self) -> None:
self.__events = {}