Skip to main content

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

Iris-heureka-code-1.2.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

Iris_heureka_code-1.2.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

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

Hashes for Iris-heureka-code-1.2.0.tar.gz
Algorithm Hash digest
SHA256 a18e8ccd29ba9e8446021173311a769050f5ab219f141814b4fc4bb5a0fc99f6
MD5 b96acd5296642e84080b64d46320b910
BLAKE2b-256 03a6e01f917a433184a5d380040f4962683bcb5a0e0f849733abcff7df4ae1a6

See more details on using hashes here.

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

Hashes for Iris_heureka_code-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 43d8d188f080a07079ca8a4a193a0f12aba1cfe1e526efca6f42189fe64f3dac
MD5 932c6bfd8afb5ec491f823237cab4945
BLAKE2b-256 da9f9b09f4eae5a74f8f3003ad9f63406151852f8678b94601a3895e09be0040

See more details on using hashes here.

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