Skip to content

hololinked.core.meta.EventSource

Base class to add event functionality to an object, it is not meant to be subclassed directly by the end-user.

UML Diagram

Source code in .venv/lib/python3.13/site-packages/hololinked/core/meta.py
class EventSource:
    """
    Base class to add event functionality to an object, 
    it is not meant to be subclassed directly by the end-user.

    [UML Diagram](https://docs.hololinked.dev/UML/PDF/Thing.pdf)
    """

    id: str

    def __init__(self) -> None:
        self.create_events_registry()

    # creating name without underscore causes clash with the metaclass method 
    # with same name
    def create_events_registry(self) -> None:
        """creates a registry for available `Events` based on `EventsRegistry`"""
        self._events_registry = EventsRegistry(self.__class__, self)

    @property
    def events(self) -> EventsRegistry:
        """container for the event descriptors of the object."""
        return self._events_registry

    @property
    def event_publisher(self) -> "EventPublisher":
        """
        event publishing object `EventPublisher` that owns the zmq.PUB socket, valid only after 
        creating an RPC server or calling a `run()` method on the `Thing` instance.
        """
        try:
            return self.rpc_server.event_publisher if self.rpc_server else None
        except AttributeError:
            return None

Attributes

event_publisher property

event_publisher: EventPublisher

event publishing object EventPublisher that owns the zmq.PUB socket, valid only after creating an RPC server or calling a run() method on the Thing instance.

Functions

create_events_registry

create_events_registry() -> None

creates a registry for available Events based on EventsRegistry

Source code in .venv/lib/python3.13/site-packages/hololinked/core/meta.py
def create_events_registry(self) -> None:
    """creates a registry for available `Events` based on `EventsRegistry`"""
    self._events_registry = EventsRegistry(self.__class__, self)