Eventbasierte Kommunikation
Project description
Iris – Verwaltung von Events
Event
__init__
: Konstruktor, der eine beliebige Anzahl an Funktionspointern nimmt, die ans Event gebunden werden.
add_function
: Bindet neue Funktionen an das Event.
remove_function
: Entbindet Funktionen vom Event.
emit
: Löst das Event aus und ruft alle Funktionen nacheinaner auf mit den dieser Funktion gegebenen Argumenten auf.
__iadd__
: Selbe Funktion wie add_function
__isub__
: Selbe Funktion wie remove_function
__call__
: Selbe Funktion wie emit
__repr_
: Representationsstring des Events mit den gebundenen Funktionen.
function
: Property-Attribut, das die Liste der gebundenen Funktionen liefert zur einfachen Manipulation.
TypeEvent
__init__
: Konstruktor, der die Typen nimmt, die akzeptiert werden können.
emit
: Löst das Event aus. Wirft TypeError, falls falsche Typen vorliegen oder AttributeError.
typen
: Property-Attribut, das die akzeptablen Typen liefert.
__repr__
: Representationsstring des TypeEvents mit den Typen und den gebundenen Funktionen.
__copy__
: Liefert eine Kopie des Objekts allerdings mit leerer Funktionspointerliste.
Handler
__init__
: Konstruktor, der den Handler initialisiert.
get_event_names
: Liefert die Namen aller erstellten Events.
remove
: Löscht das Event mit dem gegebenem Namen.
__repr__
: Representationsstring mit den Namen der Events
Möglichkeiten ein neues Event zu erstellen mit:
- Dem Namen des Events
- Den zu bindenen Funktionen
new
__setitem__
Möglichkeiten ein Event zu löschen:
remove
__delitem__
__delattr__
Möglichkeiten ein Event von seinem Namen her zu erhalten:
__getitem__
__getattr__
StaticHandler
Basisklasse, von der verschiedene Handler abgeleitet werden können, deren Attribute als Events aufgefasst werden.
Syntax mit Typvorgabe:
class Irgendwas(StaticHandler):
EVENT_1: Event
EVENT_2: Event
Syntax mit None-Wert
class Irgendwas(StaticHandler):
EVENT_1 = None
EVENT_2 = None
Syntax mit Typ und None
class Irgendwas(StaticHandler):
EVENT_1: Event = None
EVENT_2: EVENT = None
Statt None
kann auch Event()
verwendet werden.
Das macht allerdings keinen Unterschied.
Syntax mit TypeEvent
class IgendwasMitTypen(StaticHandler):
T_EVENT_1 = TypeEvent(int, str, int)
T_EVENT_2 = TypeEvent(str, int)
Auslösen eines Events
handler = Irgendwas()
handler.EVENT_1.add_function(print)
handler.EVENT_1.emit("Test")
RecursiveHandler
Ein Dekorator, um eine Klasse dem Aufnehmen eines weiteren Handlers zu befähigen.
Exceptions
Ein Auftreten der Exception AttributeError
kann bedeuten, dass der Dekorator vergessen worden ist.
Syntax
@RecursiveHandler
class A(StaticHandler):
a1: Event
@RecursiveHandler
class B(StaticHandler):
b1: Event
class C(StaticHandler):
c1: Event
Event erreichen
a = A()
print(a.a1)
print(a.B.b1)
print(a.B.C.c1)
Die definierten Events können so angesprochen werden.
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
Built Distribution
File details
Details for the file Iris-heureka-code-1.2.0.tar.gz
.
File metadata
- Download URL: Iris-heureka-code-1.2.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.2 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a18e8ccd29ba9e8446021173311a769050f5ab219f141814b4fc4bb5a0fc99f6 |
|
MD5 | b96acd5296642e84080b64d46320b910 |
|
BLAKE2b-256 | 03a6e01f917a433184a5d380040f4962683bcb5a0e0f849733abcff7df4ae1a6 |
File details
Details for the file Iris_heureka_code-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: Iris_heureka_code-1.2.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.2 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43d8d188f080a07079ca8a4a193a0f12aba1cfe1e526efca6f42189fe64f3dac |
|
MD5 | 932c6bfd8afb5ec491f823237cab4945 |
|
BLAKE2b-256 | da9f9b09f4eae5a74f8f3003ad9f63406151852f8678b94601a3895e09be0040 |