evennia/docs/1.0-dev/api/evennia.server.profiling.html
2020-06-15 21:52:33 +02:00

626 lines
No EOL
49 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>evennia.server.profiling package &#8212; Evennia 1.0-dev documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev documentation</a> &#187;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="module-evennia.server.profiling">
<span id="evennia-server-profiling-package"></span><h1>evennia.server.profiling package<a class="headerlink" href="#module-evennia.server.profiling" title="Permalink to this headline"></a></h1>
<div class="section" id="submodules">
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="module-evennia.server.profiling.dummyrunner">
<span id="evennia-server-profiling-dummyrunner-module"></span><h2>evennia.server.profiling.dummyrunner module<a class="headerlink" href="#module-evennia.server.profiling.dummyrunner" title="Permalink to this headline"></a></h2>
<p>Dummy client runner</p>
<p>This module implements a stand-alone launcher for stress-testing
an Evennia game. It will launch any number of fake clients. These
clients will log into the server and start doing random operations.
Customizing and weighing these operations differently depends on
which type of game is tested. The module contains a testing module
for plain Evennia.</p>
<p>Please note that you shouldnt run this on a production server!
Launch the program without any arguments or options to see a
full step-by-step setup help.</p>
<p>Basically (for testing default Evennia):</p>
<blockquote>
<div><ul class="simple">
<li><p>Use an empty/testing database.</p></li>
<li><p>set PERMISSION_ACCOUNT_DEFAULT = “Builder”</p></li>
<li><p>start server, eventually with profiling active</p></li>
<li><p>launch this client runner</p></li>
</ul>
</div></blockquote>
<p>If you want to customize the runners client actions
(because you changed the cmdset or needs to better
match your use cases or add more actions), you can
change which actions by adding a path to</p>
<blockquote>
<div><p>DUMMYRUNNER_ACTIONS_MODULE = &lt;path.to.your.module&gt;</p>
</div></blockquote>
<p>in your settings. See utils.dummyrunner_actions.py
for instructions on how to define this module.</p>
<dl class="class">
<dt id="evennia.server.profiling.dummyrunner.DummyClient">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.profiling.dummyrunner.</code><code class="sig-name descname">DummyClient</code><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyClient"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyClient" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.conch.telnet.StatefulTelnetProtocol</span></code></p>
<p>Handles connection to a running Evennia server,
mimicking a real account by sending commands on
a timer.</p>
<dl class="method">
<dt id="evennia.server.profiling.dummyrunner.DummyClient.connectionLost">
<code class="sig-name descname">connectionLost</code><span class="sig-paren">(</span><em class="sig-param">reason</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyClient.connectionLost"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyClient.connectionLost" title="Permalink to this definition"></a></dt>
<dd><p>Called when loosing the connection.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>reason</strong> (<em>str</em>) Reason for loosing connection.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.dummyrunner.DummyClient.connectionMade">
<code class="sig-name descname">connectionMade</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyClient.connectionMade"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyClient.connectionMade" title="Permalink to this definition"></a></dt>
<dd><p>Called when connection is first established.</p>
</dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.dummyrunner.DummyClient.counter">
<code class="sig-name descname">counter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyClient.counter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyClient.counter" title="Permalink to this definition"></a></dt>
<dd><p>Produces a unique id, also between clients.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>A unique counter.</p>
</dd>
<dt class="field-even">Return type</dt>
<dd class="field-even"><p>counter (int)</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.dummyrunner.DummyClient.dataReceived">
<code class="sig-name descname">dataReceived</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyClient.dataReceived"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyClient.dataReceived" title="Permalink to this definition"></a></dt>
<dd><p>Called when data comes in over the protocol. We wait to start
stepping until the server actually responds</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>data</strong> (<em>str</em>) Incoming data.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.dummyrunner.DummyClient.error">
<code class="sig-name descname">error</code><span class="sig-paren">(</span><em class="sig-param">err</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyClient.error"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyClient.error" title="Permalink to this definition"></a></dt>
<dd><p>Error callback.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>err</strong> (<em>Failure</em>) Error instance.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.dummyrunner.DummyClient.logout">
<code class="sig-name descname">logout</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyClient.logout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyClient.logout" title="Permalink to this definition"></a></dt>
<dd><p>Causes the client to log out of the server. Triggered by ctrl-c signal.</p>
</dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.dummyrunner.DummyClient.step">
<code class="sig-name descname">step</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyClient.step"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyClient.step" title="Permalink to this definition"></a></dt>
<dd><p>Perform a step. This is called repeatedly by the runner and
causes the client to issue commands to the server. This holds
all “intelligence” of the dummy client.</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="evennia.server.profiling.dummyrunner.DummyFactory">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.profiling.dummyrunner.</code><code class="sig-name descname">DummyFactory</code><span class="sig-paren">(</span><em class="sig-param">actions</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyFactory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyFactory" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.internet.protocol.ClientFactory</span></code></p>
<dl class="method">
<dt id="evennia.server.profiling.dummyrunner.DummyFactory.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><em class="sig-param">actions</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#DummyFactory.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyFactory.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Setup the factory base (shared by all clients)</p>
</dd></dl>
<dl class="attribute">
<dt id="evennia.server.profiling.dummyrunner.DummyFactory.protocol">
<code class="sig-name descname">protocol</code><a class="headerlink" href="#evennia.server.profiling.dummyrunner.DummyFactory.protocol" title="Permalink to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="#evennia.server.profiling.dummyrunner.DummyClient" title="evennia.server.profiling.dummyrunner.DummyClient"><code class="xref py py-class docutils literal notranslate"><span class="pre">DummyClient</span></code></a></p>
</dd></dl>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner.gidcounter">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner.</code><code class="sig-name descname">gidcounter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#gidcounter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.gidcounter" title="Permalink to this definition"></a></dt>
<dd><p>Makes globally unique ids.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>count (int); A globally unique counter.</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner.idcounter">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner.</code><code class="sig-name descname">idcounter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#idcounter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.idcounter" title="Permalink to this definition"></a></dt>
<dd><p>Makes unique ids.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>A globally unique counter.</p>
</dd>
<dt class="field-even">Return type</dt>
<dd class="field-even"><p>count (int)</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner.makeiter">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner.</code><code class="sig-name descname">makeiter</code><span class="sig-paren">(</span><em class="sig-param">obj</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#makeiter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.makeiter" title="Permalink to this definition"></a></dt>
<dd><p>Makes everything iterable.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>any</em>) Object to turn iterable.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>An iterable object.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>iterable (iterable)</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner.start_all_dummy_clients">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner.</code><code class="sig-name descname">start_all_dummy_clients</code><span class="sig-paren">(</span><em class="sig-param">nclients</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner.html#start_all_dummy_clients"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner.start_all_dummy_clients" title="Permalink to this definition"></a></dt>
<dd><p>Initialize all clients, connect them and start to step them</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>nclients</strong> (<em>int</em>) Number of dummy clients to connect.</p>
</dd>
</dl>
</dd></dl>
</div>
<div class="section" id="module-evennia.server.profiling.dummyrunner_settings">
<span id="evennia-server-profiling-dummyrunner-settings-module"></span><h2>evennia.server.profiling.dummyrunner_settings module<a class="headerlink" href="#module-evennia.server.profiling.dummyrunner_settings" title="Permalink to this headline"></a></h2>
<p>Settings and actions for the dummyrunner</p>
<p>This module defines dummyrunner settings and sets up
the actions available to dummy accounts.</p>
<p>The settings are global variables:</p>
<p>TIMESTEP - time in seconds between each tick
CHANCE_OF_ACTION - chance 0-1 of action happening
CHANCE_OF_LOGIN - chance 0-1 of login happening
TELNET_PORT - port to use, defaults to settings.TELNET_PORT
ACTIONS - see below</p>
<p>ACTIONS is a tuple</p>
<p>(login_func, logout_func, (0.3, func1), (0.1, func2) … )</p>
<p>where the first entry is the function to call on first connect, with a
chance of occurring given by CHANCE_OF_LOGIN. This function is usually
responsible for logging in the account. The second entry is always
called when the dummyrunner disconnects from the server and should
thus issue a logout command. The other entries are tuples (chance,
func). They are picked randomly, their commonality based on the
cumulative chance given (the chance is normalized between all options
so if will still work also if the given chances dont add up to 1).
Since each function can return a list of game-command strings, each
function may result in multiple operations.</p>
<p>An action-function is called with a “client” argument which is a
reference to the dummy client currently performing the action. It
returns a string or a list of command strings to execute. Use the
client object for optionally saving data between actions.</p>
<dl>
<dt>The client object has the following relevant properties and methods:</dt><dd><dl class="simple">
<dt>key - an optional client key. This is only used for dummyrunner output.</dt><dd><p>Default is “Dummy-&lt;cid&gt;</p>
</dd>
</dl>
<p>cid - client id
gid - globally unique id, hashed with time stamp
istep - the current step
exits - an empty list. Can be used to store exit names
objs - an empty list. Can be used to store object names
counter() - returns a unique increasing id, hashed with time stamp</p>
<blockquote>
<div><p>to make it unique also between dummyrunner instances.</p>
</div></blockquote>
</dd>
</dl>
<p>The return should either be a single command string or a tuple of
command strings. This list of commands will always be executed every
TIMESTEP with a chance given by CHANCE_OF_ACTION by in the order given
(no randomness) and allows for setting up a more complex chain of
commands (such as creating an account and logging in).</p>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_creates_button">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_creates_button</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_creates_button"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_creates_button" title="Permalink to this definition"></a></dt>
<dd><p>creates example button, storing name on client</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_creates_obj">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_creates_obj</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_creates_obj"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_creates_obj" title="Permalink to this definition"></a></dt>
<dd><p>creates normal objects, storing their name on client</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_digs">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_digs</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_digs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_digs" title="Permalink to this definition"></a></dt>
<dd><p>digs a new room, storing exit names on client</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_examines">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_examines</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_examines"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_examines" title="Permalink to this definition"></a></dt>
<dd><p>examines various objects</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_help">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_help</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_help" title="Permalink to this definition"></a></dt>
<dd><p>reads help files</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_idles">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_idles</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_idles"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_idles" title="Permalink to this definition"></a></dt>
<dd><p>idles</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_login">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_login</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_login"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_login" title="Permalink to this definition"></a></dt>
<dd><p>logins to the game</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_login_nodig">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_login_nodig</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_login_nodig"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_login_nodig" title="Permalink to this definition"></a></dt>
<dd><p>logins, dont dig its own room</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_logout">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_logout</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_logout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_logout" title="Permalink to this definition"></a></dt>
<dd><p>logouts of the game</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_looks">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_looks</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_looks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_looks" title="Permalink to this definition"></a></dt>
<dd><p>looks at various objects</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_moves">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_moves</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_moves"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_moves" title="Permalink to this definition"></a></dt>
<dd><p>moves to a previously created room, using the stored exits</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_moves_n">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_moves_n</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_moves_n"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_moves_n" title="Permalink to this definition"></a></dt>
<dd><p>move through north exit if available</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_moves_s">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_moves_s</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_moves_s"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_moves_s" title="Permalink to this definition"></a></dt>
<dd><p>move through south exit if available</p>
</dd></dl>
<dl class="function">
<dt id="evennia.server.profiling.dummyrunner_settings.c_socialize">
<code class="sig-prename descclassname">evennia.server.profiling.dummyrunner_settings.</code><code class="sig-name descname">c_socialize</code><span class="sig-paren">(</span><em class="sig-param">client</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/dummyrunner_settings.html#c_socialize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.dummyrunner_settings.c_socialize" title="Permalink to this definition"></a></dt>
<dd><p>socializechats on channel</p>
</dd></dl>
</div>
<div class="section" id="module-evennia.server.profiling.memplot">
<span id="evennia-server-profiling-memplot-module"></span><h2>evennia.server.profiling.memplot module<a class="headerlink" href="#module-evennia.server.profiling.memplot" title="Permalink to this headline"></a></h2>
<p>Script that saves memory and idmapper data over time.</p>
<p>Data will be saved to game/logs/memoryusage.log. Note that
the script will append to this file if it already exists.</p>
<p>Call this module directly to plot the log (requires matplotlib and numpy).</p>
<dl class="class">
<dt id="evennia.server.profiling.memplot.Memplot">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.profiling.memplot.</code><code class="sig-name descname">Memplot</code><span class="sig-paren">(</span><em class="sig-param">*args</em>, <em class="sig-param">**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/memplot.html#Memplot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.memplot.Memplot" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.html#evennia.scripts.scripts.DefaultScript" title="evennia.scripts.scripts.DefaultScript"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DefaultScript</span></code></a></p>
<p>Describes a memory plotting action.</p>
<dl class="exception">
<dt id="evennia.server.profiling.memplot.Memplot.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.server.profiling.memplot.Memplot.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DoesNotExist</span></code></p>
</dd></dl>
<dl class="exception">
<dt id="evennia.server.profiling.memplot.Memplot.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.server.profiling.memplot.Memplot.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.MultipleObjectsReturned</span></code></p>
</dd></dl>
<dl class="attribute">
<dt id="evennia.server.profiling.memplot.Memplot._meta">
<code class="sig-name descname">_meta</code><em class="property"> = &lt;Options for Memplot&gt;</em><a class="headerlink" href="#evennia.server.profiling.memplot.Memplot._meta" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.memplot.Memplot.at_repeat">
<code class="sig-name descname">at_repeat</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/memplot.html#Memplot.at_repeat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.memplot.Memplot.at_repeat" title="Permalink to this definition"></a></dt>
<dd><p>Regularly save memory statistics.</p>
</dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.memplot.Memplot.at_script_creation">
<code class="sig-name descname">at_script_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/memplot.html#Memplot.at_script_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.memplot.Memplot.at_script_creation" title="Permalink to this definition"></a></dt>
<dd><p>Called at script creation</p>
</dd></dl>
<dl class="attribute">
<dt id="evennia.server.profiling.memplot.Memplot.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.server.profiling.memplot.Memplot'</em><a class="headerlink" href="#evennia.server.profiling.memplot.Memplot.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="evennia.server.profiling.memplot.Memplot.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'Memplot'</em><a class="headerlink" href="#evennia.server.profiling.memplot.Memplot.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</div>
<div class="section" id="module-evennia.server.profiling.settings_mixin">
<span id="evennia-server-profiling-settings-mixin-module"></span><h2>evennia.server.profiling.settings_mixin module<a class="headerlink" href="#module-evennia.server.profiling.settings_mixin" title="Permalink to this headline"></a></h2>
<p>Dummyrunner mixin. Add this at the end of the settings file before
running dummyrunner, like this:</p>
<blockquote>
<div><p>from evennia.server.profiling.settings_mixin import *</p>
</div></blockquote>
<p>Note that these mixin-settings are not suitable for production
servers!</p>
</div>
<div class="section" id="module-evennia.server.profiling.test_queries">
<span id="evennia-server-profiling-test-queries-module"></span><h2>evennia.server.profiling.test_queries module<a class="headerlink" href="#module-evennia.server.profiling.test_queries" title="Permalink to this headline"></a></h2>
<p>This is a little routine for viewing the sql queries that are executed by a given
query as well as count them for optimization testing.</p>
<dl class="function">
<dt id="evennia.server.profiling.test_queries.count_queries">
<code class="sig-prename descclassname">evennia.server.profiling.test_queries.</code><code class="sig-name descname">count_queries</code><span class="sig-paren">(</span><em class="sig-param">exec_string</em>, <em class="sig-param">setup_string</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/test_queries.html#count_queries"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.test_queries.count_queries" title="Permalink to this definition"></a></dt>
<dd><p>Display queries done by exec_string. Use setup_string
to setup the environment to test.</p>
</dd></dl>
</div>
<div class="section" id="module-evennia.server.profiling.tests">
<span id="evennia-server-profiling-tests-module"></span><h2>evennia.server.profiling.tests module<a class="headerlink" href="#module-evennia.server.profiling.tests" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.profiling.tests.</code><code class="sig-name descname">TestDummyrunnerSettings</code><span class="sig-paren">(</span><em class="sig-param">methodName='runTest'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.test.testcases.TestCase</span></code></p>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.clear_client_lists">
<code class="sig-name descname">clear_client_lists</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.clear_client_lists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.clear_client_lists" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.perception_method_tests">
<code class="sig-name descname">perception_method_tests</code><span class="sig-paren">(</span><em class="sig-param">func</em>, <em class="sig-param">verb</em>, <em class="sig-param">alone_suffix=''</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.perception_method_tests"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.perception_method_tests" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.setUp">
<code class="sig-name descname">setUp</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.setUp"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.setUp" title="Permalink to this definition"></a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
</dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_creates_button">
<code class="sig-name descname">test_c_creates_button</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_creates_button"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_creates_button" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_creates_obj">
<code class="sig-name descname">test_c_creates_obj</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_creates_obj"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_creates_obj" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_digs">
<code class="sig-name descname">test_c_digs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_digs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_digs" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_examines">
<code class="sig-name descname">test_c_examines</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_examines"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_examines" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_help">
<code class="sig-name descname">test_c_help</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_help"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_help" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_login">
<code class="sig-name descname">test_c_login</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_login"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_login" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_login_no_dig">
<code class="sig-name descname">test_c_login_no_dig</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_login_no_dig"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_login_no_dig" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_logout">
<code class="sig-name descname">test_c_logout</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_logout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_logout" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_looks">
<code class="sig-name descname">test_c_looks</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_looks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_looks" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_move_n">
<code class="sig-name descname">test_c_move_n</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_move_n"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_move_n" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_move_s">
<code class="sig-name descname">test_c_move_s</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_move_s"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_move_s" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_moves">
<code class="sig-name descname">test_c_moves</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_moves"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_moves" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_socialize">
<code class="sig-name descname">test_c_socialize</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_c_socialize"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_c_socialize" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestDummyrunnerSettings.test_idles">
<code class="sig-name descname">test_idles</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestDummyrunnerSettings.test_idles"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestDummyrunnerSettings.test_idles" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="evennia.server.profiling.tests.TestMemPlot">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.profiling.tests.</code><code class="sig-name descname">TestMemPlot</code><span class="sig-paren">(</span><em class="sig-param">methodName='runTest'</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestMemPlot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestMemPlot" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">django.test.testcases.TestCase</span></code></p>
<dl class="method">
<dt id="evennia.server.profiling.tests.TestMemPlot.test_memplot">
<code class="sig-name descname">test_memplot</code><span class="sig-paren">(</span><em class="sig-param">mock_time</em>, <em class="sig-param">mocked_open</em>, <em class="sig-param">mocked_os</em>, <em class="sig-param">mocked_idmapper</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/tests.html#TestMemPlot.test_memplot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.tests.TestMemPlot.test_memplot" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</div>
<div class="section" id="module-evennia.server.profiling.timetrace">
<span id="evennia-server-profiling-timetrace-module"></span><h2>evennia.server.profiling.timetrace module<a class="headerlink" href="#module-evennia.server.profiling.timetrace" title="Permalink to this headline"></a></h2>
<p>Trace a message through the messaging system</p>
<dl class="function">
<dt id="evennia.server.profiling.timetrace.timetrace">
<code class="sig-prename descclassname">evennia.server.profiling.timetrace.</code><code class="sig-name descname">timetrace</code><span class="sig-paren">(</span><em class="sig-param">message</em>, <em class="sig-param">idstring</em>, <em class="sig-param">tracemessage='TEST_MESSAGE'</em>, <em class="sig-param">final=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/profiling/timetrace.html#timetrace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.profiling.timetrace.timetrace" title="Permalink to this definition"></a></dt>
<dd><p>Trace a message with time stamps.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> (<em>str</em>) The actual message coming through</p></li>
<li><p><strong>idstring</strong> (<em>str</em>) An identifier string specifying where this trace is happening.</p></li>
<li><p><strong>tracemessage</strong> (<em>str</em>) The start of the message to tag.
This message will get attached time stamp.</p></li>
<li><p><strong>final</strong> (<em>bool</em>) This is the final leg in the path - include total time in message</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<p><h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.server.profiling package</a><ul>
<li><a class="reference internal" href="#submodules">Submodules</a></li>
<li><a class="reference internal" href="#module-evennia.server.profiling.dummyrunner">evennia.server.profiling.dummyrunner module</a></li>
<li><a class="reference internal" href="#module-evennia.server.profiling.dummyrunner_settings">evennia.server.profiling.dummyrunner_settings module</a></li>
<li><a class="reference internal" href="#module-evennia.server.profiling.memplot">evennia.server.profiling.memplot module</a></li>
<li><a class="reference internal" href="#module-evennia.server.profiling.settings_mixin">evennia.server.profiling.settings_mixin module</a></li>
<li><a class="reference internal" href="#module-evennia.server.profiling.test_queries">evennia.server.profiling.test_queries module</a></li>
<li><a class="reference internal" href="#module-evennia.server.profiling.tests">evennia.server.profiling.tests module</a></li>
<li><a class="reference internal" href="#module-evennia.server.profiling.timetrace">evennia.server.profiling.timetrace module</a></li>
</ul>
</li>
</ul>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.server.profiling.rst.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div>
<h3>Versions</h3>
<ul>
<li><a href="evennia.server.profiling.html">1.0-dev (develop branch)</a></li>
<li><a href="../../0.9.1/api/evennia.server.profiling.html">0.9.1 (master branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev documentation</a> &#187;</li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.4.4.
</div>
</body>
</html>