<spanid="evennia-contrib-base-systems-components-signals"></span><h1>evennia.contrib.base_systems.components.signals<aclass="headerlink"href="#module-evennia.contrib.base_systems.components.signals"title="Permalink to this headline">¶</a></h1>
<p>Components - ChrisLR 2022</p>
<p>This file contains classes functions related to signals.</p>
<codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.signals.</code><codeclass="sig-name descname">as_listener</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">func</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">signal_name</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#as_listener"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.as_listener"title="Permalink to this definition">¶</a></dt>
<dd><p>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.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>func</strong> (<em>callable</em>) – The method to mark as listener</p></li>
<li><p><strong>signal_name</strong> (<em>str</em>) – The name of the signal to listen to, defaults to function name.</p></li>
<codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.signals.</code><codeclass="sig-name descname">as_responder</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">func</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">signal_name</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#as_responder"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.as_responder"title="Permalink to this definition">¶</a></dt>
<dd><p>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.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>func</strong> (<em>callable</em>) – The method to mark as responder</p></li>
<li><p><strong>signal_name</strong> (<em>str</em>) – The name of the signal to respond to, defaults to function name.</p></li>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.signals.</code><codeclass="sig-name descname">SignalsHandler</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">add_listener</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">signal_name</span></em>, <emclass="sig-param"><spanclass="n">callback</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.add_listener"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.add_listener"title="Permalink to this definition">¶</a></dt>
<dd><p>Connect a listener to a specific signal.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>signal_name</strong> (<em>str</em>) – The name of the signal to listen to</p></li>
<li><p><strong>callback</strong> (<em>callable</em>) – The callable that is called when the signal is triggered</p></li>
<codeclass="sig-name descname">add_responder</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">signal_name</span></em>, <emclass="sig-param"><spanclass="n">callback</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.add_responder"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.add_responder"title="Permalink to this definition">¶</a></dt>
<dd><p>Connect a responder to a specific signal.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>signal_name</strong> (<em>str</em>) – The name of the signal to respond to</p></li>
<li><p><strong>callback</strong> (<em>callable</em>) – The callable that is called when the signal is queried</p></li>
<codeclass="sig-name descname">remove_listener</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">signal_name</span></em>, <emclass="sig-param"><spanclass="n">callback</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.remove_listener"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.remove_listener"title="Permalink to this definition">¶</a></dt>
<dd><p>Removes a listener for a specific signal.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>signal_name</strong> (<em>str</em>) – The name of the signal to disconnect from</p></li>
<li><p><strong>callback</strong> (<em>callable</em>) – The callable that was used to connect</p></li>
<codeclass="sig-name descname">remove_responder</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">signal_name</span></em>, <emclass="sig-param"><spanclass="n">callback</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.remove_responder"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.remove_responder"title="Permalink to this definition">¶</a></dt>
<dd><p>Removes a responder for a specific signal.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>signal_name</strong> (<em>str</em>) – The name of the signal to disconnect from</p></li>
<li><p><strong>callback</strong> (<em>callable</em>) – The callable that was used to connect</p></li>
<codeclass="sig-name descname">trigger</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">signal_name</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.trigger"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.trigger"title="Permalink to this definition">¶</a></dt>
<dd><p>Triggers a specific signal with specified args and kwargs
This method does not return anything</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>signal_name</strong> (<em>str</em>) – The name of the signal to trigger</p>
<codeclass="sig-name descname">query</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">signal_name</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="n">default</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">aggregate_func</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.query"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.query"title="Permalink to this definition">¶</a></dt>
<dd><p>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.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>signal_name</strong> (<em>str</em>) – The name of the signal to trigger</p></li>
<li><p><strong>default</strong> (<em>any</em>) – The value to use when no responses are given
It will be passed to aggregate_func if it is also given.</p></li>
<li><p><strong>aggregate_func</strong> (<em>callable</em>) – The function to process the results before returning.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><p><em>list</em>–</p>
<dlclass="simple">
<dt>An iterable of the responses</dt><dd><p>OR the aggregated result when aggregate_func is specified.</p>
<codeclass="sig-name descname">add_object_listeners_and_responders</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.add_object_listeners_and_responders"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.add_object_listeners_and_responders"title="Permalink to this definition">¶</a></dt>
<dd><p>This connects the methods marked as listener or responder from an object.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>obj</strong> (<em>object</em>) – The instance of an object to connect to this handler.</p>
<codeclass="sig-name descname">remove_object_listeners_and_responders</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/signals.html#SignalsHandler.remove_object_listeners_and_responders"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.signals.SignalsHandler.remove_object_listeners_and_responders"title="Permalink to this definition">¶</a></dt>
<dd><p>This disconnects the methods marked as listener or responder from an object.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>obj</strong> (<em>object</em>) – The instance of an object to disconnect from this handler.</p>