<spanid="evennia-utils-containers"></span><h1>evennia.utils.containers<aclass="headerlink"href="#module-evennia.utils.containers"title="Permalink to this headline">¶</a></h1>
<p>Containers</p>
<p>Containers are storage classes usually initialized from a setting. They
represent Singletons and acts as a convenient place to find resources (
available as properties on the singleton)</p>
<p>evennia.GLOBAL_SCRIPTS
evennia.OPTION_CLASSES</p>
<dlclass="py class">
<dtid="evennia.utils.containers.Container">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.containers.</code><codeclass="sig-name descname">Container</code><aclass="reference internal"href="../_modules/evennia/utils/containers.html#Container"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.Container"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">storage_modules</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.utils.containers.Container.storage_modules"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#Container.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.Container.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">load_data</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#Container.load_data"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.Container.load_data"title="Permalink to this definition">¶</a></dt>
<dd><p>Delayed import to avoid eventual circular imports from inside
the storage modules.</p>
</dd></dl>
<dlclass="py method">
<dtid="evennia.utils.containers.Container.get">
<codeclass="sig-name descname">get</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">key</span></em>, <emclass="sig-param"><spanclass="n">default</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#Container.get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.Container.get"title="Permalink to this definition">¶</a></dt>
<dd><p>Retrive data by key (in case of not knowing it beforehand).</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>key</strong> (<em>str</em>) – The name of the script.</p></li>
<li><p><strong>default</strong> (<em>any</em><em>, </em><em>optional</em>) – Value to return if key is not found.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>any (any)</em>– The data loaded on this container.</p>
</dd>
</dl>
</dd></dl>
<dlclass="py method">
<dtid="evennia.utils.containers.Container.all">
<codeclass="sig-name descname">all</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#Container.all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.Container.all"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all stored data</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>scripts (list)</em>– All global script objects stored on the container.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dlclass="py class">
<dtid="evennia.utils.containers.OptionContainer">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.containers.</code><codeclass="sig-name descname">OptionContainer</code><aclass="reference internal"href="../_modules/evennia/utils/containers.html#OptionContainer"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.OptionContainer"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">storage_modules</code><emclass="property"> = ['evennia.utils.optionclasses']</em><aclass="headerlink"href="#evennia.utils.containers.OptionContainer.storage_modules"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.containers.</code><codeclass="sig-name descname">GlobalScriptContainer</code><aclass="reference internal"href="../_modules/evennia/utils/containers.html#GlobalScriptContainer"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.GlobalScriptContainer"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#GlobalScriptContainer.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.GlobalScriptContainer.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Note: We must delay loading of typeclasses since this module may get
initialized before Scripts are actually initialized.</p>
<codeclass="sig-name descname">start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#GlobalScriptContainer.start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.GlobalScriptContainer.start"title="Permalink to this definition">¶</a></dt>
<dd><p>Called last in evennia.__init__ to initialize the container late
(after script typeclasses have finished loading).</p>
<p>We include all global scripts in the handler and
<codeclass="sig-name descname">load_data</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#GlobalScriptContainer.load_data"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.GlobalScriptContainer.load_data"title="Permalink to this definition">¶</a></dt>
<dd><p>This delayed import avoids trying to load Scripts before they are
<codeclass="sig-name descname">get</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">key</span></em>, <emclass="sig-param"><spanclass="n">default</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#GlobalScriptContainer.get"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.GlobalScriptContainer.get"title="Permalink to this definition">¶</a></dt>
<dd><p>Retrive data by key (in case of not knowing it beforehand). Any
scripts that are in settings.GLOBAL_SCRIPTS that are not found
will be recreated on-demand.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>key</strong> (<em>str</em>) – The name of the script.</p></li>
<li><p><strong>default</strong> (<em>any</em><em>, </em><em>optional</em>) – Value to return if key is not found
at all on this container (i.e it cannot be loaded at all).</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>any (any)</em>– The data loaded on this container.</p>
<codeclass="sig-name descname">all</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/containers.html#GlobalScriptContainer.all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.containers.GlobalScriptContainer.all"title="Permalink to this definition">¶</a></dt>
<dd><p>Get all global scripts. Note that this will not auto-start
scripts defined in settings.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>scripts (list)</em>– All global script objects stored on the container.</p>