# evennia.contrib.base_systems.components.signals

Components - ChrisLR 2022

This file contains classes functions related to signals.

`evennia.contrib.base_systems.components.signals.``as_listener`(func=None, signal_name=None)

  Decorator style function that marks a method to be connected as listener. It will use the provided signal name and default to the decorated function name.

  Parameters

    - func (callable) – The method to mark as listener

    - signal_name (str) – The name of the signal to listen to, defaults to function name.

`evennia.contrib.base_systems.components.signals.``as_responder`(func=None, signal_name=None)

  Decorator style function that marks a method to be connected as responder. It will use the provided signal name and default to the decorated function name.

  Parameters

    - func (callable) – The method to mark as responder

    - signal_name (str) – The name of the signal to respond to, defaults to function name.

class `evennia.contrib.base_systems.components.signals.``SignalsHandler`(host)

  Bases: `object`

  This object handles all about signals. It holds the connected listeners and responders. It allows triggering signals or querying responders.

  `__init__`(host)

    Initialize self. See help(type(self)) for accurate signature.

  `add_listener`(signal_name, callback)

    Connect a listener to a specific signal.

    Parameters

      - signal_name (str) – The name of the signal to listen to

      - callback (callable) – The callable that is called when the signal is triggered

  `add_responder`(signal_name, callback)

    Connect a responder to a specific signal.

    Parameters

      - signal_name (str) – The name of the signal to respond to

      - callback (callable) – The callable that is called when the signal is queried

  `remove_listener`(signal_name, callback)

    Removes a listener for a specific signal.

    Parameters

      - signal_name (str) – The name of the signal to disconnect from

      - callback (callable) – The callable that was used to connect

  `remove_responder`(signal_name, callback)

    Removes a responder for a specific signal.

    Parameters

      - signal_name (str) – The name of the signal to disconnect from

      - callback (callable) – The callable that was used to connect

  `trigger`(signal_name, *args, **kwargs)

    Triggers a specific signal with specified args and kwargs This method does not return anything

    Parameters

      signal_name (str) – The name of the signal to trigger

  `query`(signal_name, *args, default=None, aggregate_func=None, **kwargs)

    Queries a specific signal with specified args and kwargs This method will return the responses from its connected responders. If an aggregate_func is specified, it is called with the responses and its result is returned instead.

    Parameters

      - signal_name (str) – The name of the signal to trigger

      - default (any) – The value to use when no responses are given It will be passed to aggregate_func if it is also given.

      - aggregate_func (callable) – The function to process the results before returning.

    Returns

      list –

      An iterable of the responses

        OR the aggregated result when aggregate_func is specified.

  `add_object_listeners_and_responders`(obj)

    This connects the methods marked as listener or responder from an object.

    Parameters

      obj (object) – The instance of an object to connect to this handler.

  `remove_object_listeners_and_responders`(obj)

    This disconnects the methods marked as listener or responder from an object.

    Parameters

      obj (object) – The instance of an object to disconnect from this handler.