mirror of
https://github.com/evennia/evennia.git
synced 2026-03-20 23:06:31 +01:00
2628 lines
No EOL
228 KiB
HTML
2628 lines
No EOL
228 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="en" data-content_root="../">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<title>evennia.comms.models — Evennia latest documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
|
||
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
|
||
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<link rel="icon" href="../_static/favicon.ico"/>
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
<link rel="next" title="evennia.contrib" href="evennia.contrib.html" />
|
||
<link rel="prev" title="evennia.comms.managers" href="evennia.comms.managers.html" />
|
||
</head><body>
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<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="right" >
|
||
<a href="evennia.contrib.html" title="evennia.contrib"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.comms.managers.html" title="evennia.comms.managers"
|
||
accesskey="P">previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> »</li>
|
||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-4"><a href="evennia.comms.html" accesskey="U">evennia.comms</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">evennia.comms.models</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="module-evennia.comms.models">
|
||
<span id="evennia-comms-models"></span><h1>evennia.comms.models<a class="headerlink" href="#module-evennia.comms.models" title="Link to this heading">¶</a></h1>
|
||
<p>Models for the in-game communication system.</p>
|
||
<p>The comm system could take the form of channels, but can also be
|
||
adopted for storing tells or in-game mail.</p>
|
||
<p>The comsystem’s main component is the Message (Msg), which carries the
|
||
actual information between two parties. Msgs are stored in the
|
||
database and usually not deleted. A Msg always have one sender (a
|
||
user), but can have any number targets, both users and channels.</p>
|
||
<p>For non-persistent (and slightly faster) use one can also use the
|
||
TempMsg, which mimics the Msg API but without actually saving to the
|
||
database.</p>
|
||
<p>Channels are central objects that act as targets for Msgs. Accounts can
|
||
connect to channels by use of a ChannelConnect object (this object is
|
||
necessary to easily be able to delete connections on the fly).</p>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">Msg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.Msg" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.utils.idmapper.models.html#evennia.utils.idmapper.models.SharedMemoryModel" title="evennia.utils.idmapper.models.SharedMemoryModel"><code class="xref py py-class docutils literal notranslate"><span class="pre">SharedMemoryModel</span></code></a></p>
|
||
<p>A single message. This model describes all ooc messages
|
||
sent in-game, both to channels and between accounts.</p>
|
||
<p>The Msg class defines the following database fields (all
|
||
accessed via specific handler methods):</p>
|
||
<ul class="simple">
|
||
<li><p>db_sender_accounts: Account senders</p></li>
|
||
<li><p>db_sender_objects: Object senders</p></li>
|
||
<li><p>db_sender_scripts: Script senders</p></li>
|
||
<li><p>db_sender_external: External sender (defined as string name)</p></li>
|
||
<li><p>db_receivers_accounts: Receiving accounts</p></li>
|
||
<li><p>db_receivers_objects: Receiving objects</p></li>
|
||
<li><p>db_receivers_scripts: Receiveing scripts</p></li>
|
||
<li><p>db_receiver_external: External sender (defined as string name)</p></li>
|
||
<li><p>db_header: Header text</p></li>
|
||
<li><p>db_message: The actual message text</p></li>
|
||
<li><p>db_date_created: time message was created / sent</p></li>
|
||
<li><p>db_hide_from_sender: bool if message should be hidden from sender</p></li>
|
||
<li><p>db_hide_from_receivers: list of receiver objects to hide message from</p></li>
|
||
<li><p>db_lock_storage: Internal storage of lock strings.</p></li>
|
||
</ul>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_sender_accounts">
|
||
<span class="sig-name descname"><span class="pre">db_sender_accounts</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_sender_accounts" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_sender_objects">
|
||
<span class="sig-name descname"><span class="pre">db_sender_objects</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_sender_objects" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_sender_scripts">
|
||
<span class="sig-name descname"><span class="pre">db_sender_scripts</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_sender_scripts" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_sender_external">
|
||
<span class="sig-name descname"><span class="pre">db_sender_external</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_sender_external" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_receivers_accounts">
|
||
<span class="sig-name descname"><span class="pre">db_receivers_accounts</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_receivers_accounts" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_receivers_objects">
|
||
<span class="sig-name descname"><span class="pre">db_receivers_objects</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_receivers_objects" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_receivers_scripts">
|
||
<span class="sig-name descname"><span class="pre">db_receivers_scripts</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_receivers_scripts" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_receiver_external">
|
||
<span class="sig-name descname"><span class="pre">db_receiver_external</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_receiver_external" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_header">
|
||
<span class="sig-name descname"><span class="pre">db_header</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_header" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_message">
|
||
<span class="sig-name descname"><span class="pre">db_message</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_message" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_date_created">
|
||
<span class="sig-name descname"><span class="pre">db_date_created</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_lock_storage">
|
||
<span class="sig-name descname"><span class="pre">db_lock_storage</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_lock_storage" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_hide_from_accounts">
|
||
<span class="sig-name descname"><span class="pre">db_hide_from_accounts</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_hide_from_accounts" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_hide_from_objects">
|
||
<span class="sig-name descname"><span class="pre">db_hide_from_objects</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_hide_from_objects" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.db_tags">
|
||
<span class="sig-name descname"><span class="pre">db_tags</span></span><a class="headerlink" href="#evennia.comms.models.Msg.db_tags" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.objects">
|
||
<span class="sig-name descname"><span class="pre">objects</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><evennia.comms.managers.MsgManager</span> <span class="pre">object></span></em><a class="headerlink" href="#evennia.comms.models.Msg.objects" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.locks">
|
||
<span class="sig-name descname"><span class="pre">locks</span></span><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg.locks"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.Msg.locks" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.tags">
|
||
<span class="sig-name descname"><span class="pre">tags</span></span><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg.tags"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.Msg.tags" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.date_created">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">date_created</span></span><a class="headerlink" href="#evennia.comms.models.Msg.date_created" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the field in localized time based on settings.TIME_ZONE.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.senders">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">senders</span></span><a class="headerlink" href="#evennia.comms.models.Msg.senders" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Getter. Allows for value = self.senders</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.remove_sender">
|
||
<span class="sig-name descname"><span class="pre">remove_sender</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">senders</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg.remove_sender"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.Msg.remove_sender" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove a single sender or a list of senders.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>senders</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>str</em><em> or </em><em>list</em>) – Senders to remove.
|
||
If a string, removes the external sender.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.receivers">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">receivers</span></span><a class="headerlink" href="#evennia.comms.models.Msg.receivers" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Getter. Allows for value = self.receivers.
|
||
Returns four lists of receivers: accounts, objects, scripts and</p>
|
||
<blockquote>
|
||
<div><p>external_receivers.</p>
|
||
</div></blockquote>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.remove_receiver">
|
||
<span class="sig-name descname"><span class="pre">remove_receiver</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">receivers</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg.remove_receiver"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.Msg.remove_receiver" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove a single receiver, a list of receivers, or a single extral receiver.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>receivers</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>Script</em><em>, </em><em>list</em><em> or </em><em>str</em>) – Receiver
|
||
to remove. A string removes the external receiver.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.hide_from">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">hide_from</span></span><a class="headerlink" href="#evennia.comms.models.Msg.hide_from" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Getter. Allows for value = self.hide_from.
|
||
Returns two lists of accounts and objects.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.access">
|
||
<span class="sig-name descname"><span class="pre">access</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accessing_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'read'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#Msg.access"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.Msg.access" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Checks lock access.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>accessing_obj</strong> (<em>Object</em><em> or </em><em>Account</em>) – The object trying to gain access.</p></li>
|
||
<li><p><strong>access_type</strong> (<em>str</em><em>, </em><em>optional</em>) – The type of lock access to check.</p></li>
|
||
<li><p><strong>default</strong> (<em>bool</em>) – Fallback to use if <strong>access_type</strong> lock is not defined.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>result (bool)</em> – If access was granted or not.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.DoesNotExist">
|
||
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DoesNotExist</span></span><a class="headerlink" href="#evennia.comms.models.Msg.DoesNotExist" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.utils.dbserialize.html#evennia.utils.dbserialize.ObjectDoesNotExist" title="django.core.exceptions.ObjectDoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">ObjectDoesNotExist</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.MultipleObjectsReturned">
|
||
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MultipleObjectsReturned</span></span><a class="headerlink" href="#evennia.comms.models.Msg.MultipleObjectsReturned" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.get_next_by_db_date_created">
|
||
<span class="sig-name descname"><span class="pre">get_next_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=<django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.Msg.get_next_by_db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.get_previous_by_db_date_created">
|
||
<span class="sig-name descname"><span class="pre">get_previous_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=<django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.Msg.get_previous_by_db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.header">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">header</span></span><a class="headerlink" href="#evennia.comms.models.Msg.header" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_header</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.id">
|
||
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.comms.models.Msg.id" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.lock_storage">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">lock_storage</span></span><a class="headerlink" href="#evennia.comms.models.Msg.lock_storage" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_lock_storage</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.message">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">message</span></span><a class="headerlink" href="#evennia.comms.models.Msg.message" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_message</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.path">
|
||
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.comms.models.Msg'</span></em><a class="headerlink" href="#evennia.comms.models.Msg.path" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.receiver_external">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">receiver_external</span></span><a class="headerlink" href="#evennia.comms.models.Msg.receiver_external" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_receiver_external</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.sender_external">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">sender_external</span></span><a class="headerlink" href="#evennia.comms.models.Msg.sender_external" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_sender_external</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Msg.typename">
|
||
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'SharedMemoryModelBase'</span></em><a class="headerlink" href="#evennia.comms.models.Msg.typename" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TempMsg">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">TempMsg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">senders</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">receivers</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">header</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lockstring</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hide_from</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TempMsg" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>This is a non-persistent object for sending temporary messages that will not be stored. It
|
||
mimics the “real” Msg object, but doesn’t require sender to be given.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TempMsg.__init__">
|
||
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">senders</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">receivers</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">header</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lockstring</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hide_from</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TempMsg.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Creates the temp message.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>senders</strong> (<em>any</em><em> or </em><em>list</em><em>, </em><em>optional</em>) – Senders of the message.</p></li>
|
||
<li><p><strong>receivers</strong> (<em>Account</em><em>, </em><em>Object</em><em>, </em><em>Script</em><em> or </em><em>list</em><em>, </em><em>optional</em>) – Receivers of this message.</p></li>
|
||
<li><p><strong>message</strong> (<em>str</em><em>, </em><em>optional</em>) – Message to send.</p></li>
|
||
<li><p><strong>header</strong> (<em>str</em><em>, </em><em>optional</em>) – Header of message.</p></li>
|
||
<li><p><strong>type</strong> (<em>str</em><em>, </em><em>optional</em>) – Message class, if any.</p></li>
|
||
<li><p><strong>lockstring</strong> (<em>str</em><em>, </em><em>optional</em>) – Lock for the message.</p></li>
|
||
<li><p><strong>hide_from</strong> (<em>Account</em><em>, </em><em>Object</em><em>, or </em><em>list</em><em>, </em><em>optional</em>) – Entities to hide this message from.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TempMsg.locks">
|
||
<span class="sig-name descname"><span class="pre">locks</span></span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg.locks"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TempMsg.locks" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TempMsg.remove_sender">
|
||
<span class="sig-name descname"><span class="pre">remove_sender</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sender</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg.remove_sender"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TempMsg.remove_sender" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove a sender or a list of senders.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em>, </em><em>str</em><em> or </em><em>list</em>) – Senders to remove.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TempMsg.remove_receiver">
|
||
<span class="sig-name descname"><span class="pre">remove_receiver</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">receiver</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg.remove_receiver"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TempMsg.remove_receiver" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove a receiver or a list of receivers</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em>, </em><em>Script</em><em>, </em><em>str</em><em> or </em><em>list</em>) – Receivers to remove.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TempMsg.access">
|
||
<span class="sig-name descname"><span class="pre">access</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accessing_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'read'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#TempMsg.access"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TempMsg.access" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Checks lock access.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>accessing_obj</strong> (<em>Object</em><em> or </em><em>Account</em>) – The object trying to gain access.</p></li>
|
||
<li><p><strong>access_type</strong> (<em>str</em><em>, </em><em>optional</em>) – The type of lock access to check.</p></li>
|
||
<li><p><strong>default</strong> (<em>bool</em>) – Fallback to use if <strong>access_type</strong> lock is not defined.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>result (bool)</em> – If access was granted or not.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">ChannelDB</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#ChannelDB"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.ChannelDB" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.models.html#evennia.typeclasses.models.TypedObject" title="evennia.typeclasses.models.TypedObject"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypedObject</span></code></a></p>
|
||
<p>This is the basis of a comm channel, only implementing
|
||
the very basics of distributing messages.</p>
|
||
<p>The Channel class defines the following database fields
|
||
beyond the ones inherited from TypedObject:</p>
|
||
<blockquote>
|
||
<div><ul class="simple">
|
||
<li><p>db_account_subscriptions: The Account subscriptions.</p></li>
|
||
<li><p>db_object_subscriptions: The Object subscriptions.</p></li>
|
||
</ul>
|
||
</div></blockquote>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.db_account_subscriptions">
|
||
<span class="sig-name descname"><span class="pre">db_account_subscriptions</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_account_subscriptions" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.db_object_subscriptions">
|
||
<span class="sig-name descname"><span class="pre">db_object_subscriptions</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_object_subscriptions" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.objects">
|
||
<span class="sig-name descname"><span class="pre">objects</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><evennia.comms.managers.ChannelDBManager</span> <span class="pre">object></span></em><a class="headerlink" href="#evennia.comms.models.ChannelDB.objects" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.DoesNotExist">
|
||
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DoesNotExist</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.DoesNotExist" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.utils.dbserialize.html#evennia.utils.dbserialize.ObjectDoesNotExist" title="django.core.exceptions.ObjectDoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">ObjectDoesNotExist</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.MultipleObjectsReturned">
|
||
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MultipleObjectsReturned</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.MultipleObjectsReturned" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.db_attributes">
|
||
<span class="sig-name descname"><span class="pre">db_attributes</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_attributes" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.db_date_created">
|
||
<span class="sig-name descname"><span class="pre">db_date_created</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.db_key">
|
||
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_key" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.db_lock_storage">
|
||
<span class="sig-name descname"><span class="pre">db_lock_storage</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_lock_storage" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.db_tags">
|
||
<span class="sig-name descname"><span class="pre">db_tags</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_tags" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.db_typeclass_path">
|
||
<span class="sig-name descname"><span class="pre">db_typeclass_path</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.db_typeclass_path" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.get_next_by_db_date_created">
|
||
<span class="sig-name descname"><span class="pre">get_next_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=<django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.ChannelDB.get_next_by_db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.get_previous_by_db_date_created">
|
||
<span class="sig-name descname"><span class="pre">get_previous_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=<django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.ChannelDB.get_previous_by_db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.id">
|
||
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.comms.models.ChannelDB.id" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.path">
|
||
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.comms.models.ChannelDB'</span></em><a class="headerlink" href="#evennia.comms.models.ChannelDB.path" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.typename">
|
||
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'SharedMemoryModelBase'</span></em><a class="headerlink" href="#evennia.comms.models.ChannelDB.typename" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.ChannelDB.subscriptions">
|
||
<span class="sig-name descname"><span class="pre">subscriptions</span></span><a class="reference internal" href="../_modules/evennia/comms/models.html#ChannelDB.subscriptions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.ChannelDB.subscriptions" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">SubscriptionHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#SubscriptionHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>This handler manages subscriptions to the
|
||
channel and hides away which type of entity is
|
||
subscribing (Account or Object)</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler.__init__">
|
||
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#SubscriptionHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Initialize the handler</p>
|
||
<dl class="simple">
|
||
<dt>Attr:</dt><dd><p>obj (ChannelDB): The channel the handler sits on.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler.has">
|
||
<span class="sig-name descname"><span class="pre">has</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">entity</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#SubscriptionHandler.has"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler.has" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Check if the given entity subscribe to this channel</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>entity</strong> (<em>str</em><em>, </em><em>Account</em><em> or </em><em>Object</em>) – The entity to return. If
|
||
a string, it assumed to be the key or the #dbref
|
||
of the entity.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>subscriber (Account, Object or None)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>The given</dt><dd><p>subscriber.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler.add">
|
||
<span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">entity</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#SubscriptionHandler.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler.add" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Subscribe an entity to this channel.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>entity</strong> (<em>Account</em><em>, </em><em>Object</em><em> or </em><em>list</em>) – The entity or
|
||
list of entities to subscribe to this channel.</p>
|
||
</dd>
|
||
</dl>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<dl class="simple">
|
||
<dt>No access-checking is done here, this must have</dt><dd><p>been done before calling this method. Also
|
||
no hooks will be called.</p>
|
||
</dd>
|
||
</dl>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler.remove">
|
||
<span class="sig-name descname"><span class="pre">remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">entity</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#SubscriptionHandler.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler.remove" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove a subscriber from the channel.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>entity</strong> (<em>Account</em><em>, </em><em>Object</em><em> or </em><em>list</em>) – The entity or
|
||
entities to un-subscribe from the channel.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler.all">
|
||
<span class="sig-name descname"><span class="pre">all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#SubscriptionHandler.all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler.all" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Get all subscriptions to this channel.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><p><em>subscribers (list)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>The subscribers. This</dt><dd><p>may be a mix of Accounts and Objects!</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler.get">
|
||
<span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler.get" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Get all subscriptions to this channel.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><p><em>subscribers (list)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>The subscribers. This</dt><dd><p>may be a mix of Accounts and Objects!</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler.online">
|
||
<span class="sig-name descname"><span class="pre">online</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#SubscriptionHandler.online"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler.online" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Get all online accounts from our cache
|
||
:returns: <em>subscribers (list)</em> –</p>
|
||
<blockquote>
|
||
<div><dl class="simple">
|
||
<dt>Subscribers who are online or</dt><dd><p>are puppeted by an online account.</p>
|
||
</dd>
|
||
</dl>
|
||
</div></blockquote>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SubscriptionHandler.clear">
|
||
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/models.html#SubscriptionHandler.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SubscriptionHandler.clear" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove all subscribers from channel.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">LockHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>This handler should be attached to all objects implementing
|
||
permission checks, under the property ‘lockhandler’.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.__init__">
|
||
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Loads and pre-caches all relevant locks and their functions.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>obj</strong> (<em>object</em>) – The object on which the lockhandler is</p></li>
|
||
<li><p><strong>defined.</strong></p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.add">
|
||
<span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lockstring</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">validate_only</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.add" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Add a new lockstring to handler.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>lockstring</strong> (<em>str</em><em> or </em><em>list</em>) – A string on the form
|
||
<strong>“<access_type>:<functions>”</strong>. Multiple access types
|
||
should be separated by semicolon (<strong>;</strong>). Alternatively,
|
||
a list with lockstrings.</p></li>
|
||
<li><p><strong>validate_only</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, validate the lockstring but
|
||
don’t actually store it.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>success (bool)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>The outcome of the addition, <strong>False</strong> on</dt><dd><p>error. If <strong>validate_only</strong> is True, this will be a tuple
|
||
(bool, error), for pass/fail and a string error.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.all">
|
||
<span class="sig-name descname"><span class="pre">all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.all" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return all lockstrings</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>lockstrings (list)</em> – All separate lockstrings</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.append">
|
||
<span class="sig-name descname"><span class="pre">append</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">access_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lockstring</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">op</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'or'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.append"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.append" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Append a lock definition to access_type if it doesn’t already exist.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>access_type</strong> (<em>str</em>) – Access type.</p></li>
|
||
<li><p><strong>lockstring</strong> (<em>str</em>) – A valid lockstring, without the operator to
|
||
link it to an eventual existing lockstring.</p></li>
|
||
<li><p><strong>op</strong> (<em>str</em>) – An operator ‘and’, ‘or’, ‘and not’, ‘or not’ used
|
||
for appending the lockstring to an existing access-type.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>The most common use of this method is for use in commands where
|
||
the user can specify their own lockstrings. This method allows
|
||
the system to auto-add things like Admin-override access.</p>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.cache_lock_bypass">
|
||
<span class="sig-name descname"><span class="pre">cache_lock_bypass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.cache_lock_bypass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.cache_lock_bypass" title="Link to this definition">¶</a></dt>
|
||
<dd><p>We cache superuser bypass checks here for efficiency. This
|
||
needs to be re-run when an account is assigned to a character.
|
||
We need to grant access to superusers. We need to check both
|
||
directly on the object (accounts), through obj.account and using
|
||
the get_account() method (this sits on serversessions, in some
|
||
rare cases where a check is done before the login process has
|
||
yet been fully finalized)</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<em>object</em>) – This is checked for the <strong>is_superuser</strong> property.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.check">
|
||
<span class="sig-name descname"><span class="pre">check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accessing_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">no_superuser_bypass</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.check"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.check" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Checks a lock of the correct type by passing execution off to
|
||
the lock function(s).</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>accessing_obj</strong> (<em>object</em>) – The object seeking access.</p></li>
|
||
<li><p><strong>access_type</strong> (<em>str</em>) – The type of access wanted.</p></li>
|
||
<li><p><strong>default</strong> (<em>bool</em><em>, </em><em>optional</em>) – If no suitable lock type is
|
||
found, default to this result.</p></li>
|
||
<li><p><strong>no_superuser_bypass</strong> (<em>bool</em>) – Don’t use this unless you
|
||
really, really need to, it makes supersusers susceptible
|
||
to the lock check.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>A lock is executed in the follwoing way:</p>
|
||
<p>Parsing the lockstring, we (during cache) extract the valid
|
||
lock functions and store their function objects in the right
|
||
order along with their args/kwargs. These are now executed in
|
||
sequence, creating a list of True/False values. This is put
|
||
into the evalstring, which is a string of AND/OR/NOT entries
|
||
separated by placeholders where each function result should
|
||
go. We just put those results in and evaluate the string to
|
||
get a final, combined True/False value for the lockstring.</p>
|
||
<p>The important bit with this solution is that the full
|
||
lockstring is never blindly evaluated, and thus there (should
|
||
be) no way to sneak in malign code in it. Only “safe” lock
|
||
functions (as defined by your settings) are executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.check_lockstring">
|
||
<span class="sig-name descname"><span class="pre">check_lockstring</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accessing_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lockstring</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">no_superuser_bypass</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.check_lockstring"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.check_lockstring" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Do a direct check against a lockstring (‘atype:func()..’),
|
||
without any intermediary storage on the accessed object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>accessing_obj</strong> (<em>object</em><em> or </em><em>None</em>) – The object seeking access.
|
||
Importantly, this can be left unset if the lock functions
|
||
don’t access it, no updating or storage of locks are made
|
||
against this object in this method.</p></li>
|
||
<li><p><strong>lockstring</strong> (<em>str</em>) – Lock string to check, on the form
|
||
<strong>“access_type:lock_definition”</strong> where the <strong>access_type</strong>
|
||
part can potentially be set to a dummy value to just check
|
||
a lock condition.</p></li>
|
||
<li><p><strong>no_superuser_bypass</strong> (<em>bool</em><em>, </em><em>optional</em>) – Force superusers to heed lock.</p></li>
|
||
<li><p><strong>default</strong> (<em>bool</em><em>, </em><em>optional</em>) – Fallback result to use if <strong>access_type</strong> is set
|
||
but no such <strong>access_type</strong> is found in the given <strong>lockstring</strong>.</p></li>
|
||
<li><p><strong>access_type</strong> (<em>str</em><em>, </em><em>bool</em>) – If set, only this access_type will be looked up
|
||
among the locks defined by <strong>lockstring</strong>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>access (bool)</em> – If check is passed or not.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.clear">
|
||
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.clear" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove all locks in the handler.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.delete">
|
||
<span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">access_type</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.LockHandler.delete" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove a particular lock from the handler</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>access_type</strong> (<em>str</em>) – The type of lock to remove.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>success (bool)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>If the access_type was not found</dt><dd><p>in the lock, this returns <strong>False</strong>.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.get">
|
||
<span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">access_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.get" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Get the full lockstring or the lockstring of a particular
|
||
access type.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>access_type</strong> (<em>str</em><em>, </em><em>optional</em>)</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>lockstring (str)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>The matched lockstring, or the full</dt><dd><p>lockstring if no access_type was given.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.remove">
|
||
<span class="sig-name descname"><span class="pre">remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">access_type</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.remove" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove a particular lock from the handler</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>access_type</strong> (<em>str</em>) – The type of lock to remove.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>success (bool)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>If the access_type was not found</dt><dd><p>in the lock, this returns <strong>False</strong>.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.replace">
|
||
<span class="sig-name descname"><span class="pre">replace</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lockstring</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.replace"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.replace" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Replaces the lockstring entirely.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>lockstring</strong> (<em>str</em>) – The new lock definition.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>success (bool)</em> – False if an error occurred.</p>
|
||
</dd>
|
||
<dt class="field-odd">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><a class="reference internal" href="evennia.commands.default.building.html#evennia.commands.default.building.LockException" title="evennia.commands.default.building.LockException"><strong>LockException</strong></a> – If a critical error occurred.
|
||
If so, the old string is recovered.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.reset">
|
||
<span class="sig-name descname"><span class="pre">reset</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.reset"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.reset" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Set the reset flag, so the the lock will be re-cached at next
|
||
checking. This is usually called by @reload.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.LockHandler.validate">
|
||
<span class="sig-name descname"><span class="pre">validate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lockstring</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockHandler.validate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.LockHandler.validate" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Validate lockstring syntactically, without saving it.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>lockstring</strong> (<em>str</em>) – Lockstring to validate.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>valid (bool)</em> – If validation passed or not.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">SharedMemoryModel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Model</span></code></p>
|
||
<p>Base class for idmapped objects. Inherit from <strong>this</strong>.</p>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.Meta">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Meta</span></span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.Meta"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.Meta" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.Meta.abstract">
|
||
<span class="sig-name descname"><span class="pre">abstract</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.Meta.abstract" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.at_idmapper_flush">
|
||
<span class="sig-name descname"><span class="pre">at_idmapper_flush</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.at_idmapper_flush"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.at_idmapper_flush" title="Link to this definition">¶</a></dt>
|
||
<dd><p>This is called when the idmapper cache is flushed and
|
||
allows customized actions when this happens.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><p><em>do_flush (bool)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>If True, flush this object as normal. If</dt><dd><p>False, don’t flush and expect this object to handle
|
||
the flushing on its own.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.cache_instance">
|
||
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">cache_instance</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">instance</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.cache_instance"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.cache_instance" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Method to store an instance in the cache.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>instance</strong> (<em>Class instance</em>) – the instance to cache.</p></li>
|
||
<li><p><strong>new</strong> (<em>bool</em><em>, </em><em>optional</em>) – this is the first time this instance is
|
||
cached (i.e. this is not an update operation like after a
|
||
db save).</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.delete">
|
||
<span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.delete"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.delete" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Delete the object, clearing cache.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.flush_cached_instance">
|
||
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">flush_cached_instance</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">instance</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">force</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.flush_cached_instance"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.flush_cached_instance" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Method to flush an instance from the cache. The instance will
|
||
always be flushed from the cache, since this is most likely
|
||
called from delete(), and we want to make sure we don’t cache
|
||
dead objects.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.flush_from_cache">
|
||
<span class="sig-name descname"><span class="pre">flush_from_cache</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">force</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.flush_from_cache"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.flush_from_cache" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Flush this instance from the instance cache. Use
|
||
<strong>force</strong> to override the result of at_idmapper_flush() for the object.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.flush_instance_cache">
|
||
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">flush_instance_cache</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">force</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.flush_instance_cache"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.flush_instance_cache" title="Link to this definition">¶</a></dt>
|
||
<dd><p>This will clean safe objects from the cache. Use <strong>force</strong>
|
||
keyword to remove all objects, safe or not.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.get_all_cached_instances">
|
||
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_all_cached_instances</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.get_all_cached_instances"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.get_all_cached_instances" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the objects so far cached by idmapper for this class.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.get_cached_instance">
|
||
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_cached_instance</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.get_cached_instance"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.get_cached_instance" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Method to retrieve a cached instance by pk value. Returns None
|
||
when not found (which will always be the case when caching is
|
||
disabled for this class). Please note that the lookup will be
|
||
done even when instance caching is disabled.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.objects">
|
||
<span class="sig-name descname"><span class="pre">objects</span></span><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.objects" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.path">
|
||
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.utils.idmapper.models.SharedMemoryModel'</span></em><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.path" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.save">
|
||
<span class="sig-name descname"><span class="pre">save</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.save"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.save" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Central database save operation.</p>
|
||
<p class="rubric">Notes</p>
|
||
<p>Arguments as per Django documentation.
|
||
Calls <strong>self.at_<fieldname>_postsave(new)</strong>
|
||
(this is a wrapper set by oobhandler:
|
||
self._oob_at_<fieldname>_postsave())</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.SharedMemoryModel.typename">
|
||
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'SharedMemoryModelBase'</span></em><a class="headerlink" href="#evennia.comms.models.SharedMemoryModel.typename" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">Tag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#Tag"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.Tag" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Model</span></code></p>
|
||
<p>Tags are quick markers for objects in-game. An typeobject can have
|
||
any number of tags, stored via its db_tags property. Tagging
|
||
similar objects will make it easier to quickly locate the group
|
||
later (such as when implementing zones). The main advantage of
|
||
tagging as opposed to using tags is speed; a tag is very
|
||
limited in what data it can hold, and the tag key+category is
|
||
indexed for efficient lookup in the database. Tags are shared
|
||
between objects - a new tag is only created if the key+category
|
||
combination did not previously exist, making them unsuitable for
|
||
storing object-related data (for this a regular Attribute should be
|
||
used).</p>
|
||
<p>The ‘db_data’ field is intended as a documentation field for the
|
||
tag itself, such as to document what this tag+category stands for
|
||
and display that in a web interface or similar.</p>
|
||
<p>The main default use for Tags is to implement Aliases for objects.
|
||
this uses the ‘aliases’ tag category, which is also checked by the
|
||
default search functions of Evennia to allow quick searches by alias.</p>
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.DoesNotExist">
|
||
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DoesNotExist</span></span><a class="headerlink" href="#evennia.comms.models.Tag.DoesNotExist" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.utils.dbserialize.html#evennia.utils.dbserialize.ObjectDoesNotExist" title="django.core.exceptions.ObjectDoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">ObjectDoesNotExist</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.MultipleObjectsReturned">
|
||
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MultipleObjectsReturned</span></span><a class="headerlink" href="#evennia.comms.models.Tag.MultipleObjectsReturned" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.accountdb_set">
|
||
<span class="sig-name descname"><span class="pre">accountdb_set</span></span><a class="headerlink" href="#evennia.comms.models.Tag.accountdb_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.channeldb_set">
|
||
<span class="sig-name descname"><span class="pre">channeldb_set</span></span><a class="headerlink" href="#evennia.comms.models.Tag.channeldb_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.db_category">
|
||
<span class="sig-name descname"><span class="pre">db_category</span></span><a class="headerlink" href="#evennia.comms.models.Tag.db_category" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.db_data">
|
||
<span class="sig-name descname"><span class="pre">db_data</span></span><a class="headerlink" href="#evennia.comms.models.Tag.db_data" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.db_key">
|
||
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.comms.models.Tag.db_key" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.db_model">
|
||
<span class="sig-name descname"><span class="pre">db_model</span></span><a class="headerlink" href="#evennia.comms.models.Tag.db_model" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.db_tagtype">
|
||
<span class="sig-name descname"><span class="pre">db_tagtype</span></span><a class="headerlink" href="#evennia.comms.models.Tag.db_tagtype" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.helpentry_set">
|
||
<span class="sig-name descname"><span class="pre">helpentry_set</span></span><a class="headerlink" href="#evennia.comms.models.Tag.helpentry_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.id">
|
||
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.comms.models.Tag.id" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.msg_set">
|
||
<span class="sig-name descname"><span class="pre">msg_set</span></span><a class="headerlink" href="#evennia.comms.models.Tag.msg_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.objectdb_set">
|
||
<span class="sig-name descname"><span class="pre">objectdb_set</span></span><a class="headerlink" href="#evennia.comms.models.Tag.objectdb_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.objects">
|
||
<span class="sig-name descname"><span class="pre">objects</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><django.db.models.manager.Manager</span> <span class="pre">object></span></em><a class="headerlink" href="#evennia.comms.models.Tag.objects" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.Tag.scriptdb_set">
|
||
<span class="sig-name descname"><span class="pre">scriptdb_set</span></span><a class="headerlink" href="#evennia.comms.models.Tag.scriptdb_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">TagHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>Generic tag-handler. Accessed via TypedObject.tags.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.__init__">
|
||
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Tags are stored internally in the TypedObject.db_tags m2m
|
||
field with an tag.db_model based on the obj the taghandler is
|
||
stored on and with a tagtype given by self.handlertype</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<em>object</em>) – The object on which the handler is set.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.add">
|
||
<span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.add" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Add a new tag to the handler.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>list</em>) – The name of the tag to add. If a list,
|
||
add several Tags.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – Category of Tag. <strong>None</strong> is the default category.</p></li>
|
||
<li><p><strong>data</strong> (<em>str</em><em>, </em><em>optional</em>) – Info text about the tag(s) added.
|
||
This can not be used to store object-unique info but only
|
||
eventual info about the tag itself.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>If the tag + category combination matches an already
|
||
existing Tag object, this will be re-used and no new Tag
|
||
will be created.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.all">
|
||
<span class="sig-name descname"><span class="pre">all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">return_key_and_category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_objs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.all" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Get all tags in this handler, regardless of category.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>return_key_and_category</strong> (<em>bool</em><em>, </em><em>optional</em>) – Return a list of
|
||
tuples <strong>[(key, category), …]</strong>.</p></li>
|
||
<li><p><strong>return_objs</strong> (<em>bool</em><em>, </em><em>optional</em>) – Return tag objects.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>tags (list)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>A list of tag keys <strong>[tagkey, tagkey, …]</strong> or</dt><dd><p>a list of tuples <strong>[(key, category), …]</strong> if
|
||
<strong>return_key_and_category</strong> is set.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.batch_add">
|
||
<span class="sig-name descname"><span class="pre">batch_add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.batch_add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.batch_add" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Batch-add tags from a list of tuples.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>*args</strong> (<em>tuple</em><em> or </em><em>str</em>) – Each argument should be a <strong>tagstr</strong> keys or tuple
|
||
<strong>(keystr, category)</strong> or <strong>(keystr, category, data)</strong>. It’s possible to mix input
|
||
types.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This will generate a mimimal number of self.add calls,
|
||
based on the number of categories involved (including
|
||
<strong>None</strong>) (data is not unique and may be overwritten by the content
|
||
of a latter tuple with the same category).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.batch_remove">
|
||
<span class="sig-name descname"><span class="pre">batch_remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.batch_remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.batch_remove" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Batch-remove tags from a list of tuples.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>*args</strong> (<em>tuple</em><em> or </em><em>str</em>) – Each argument should be a <strong>tagstr</strong> keys or tuple
|
||
<strong>(keystr, category)</strong> or <strong>(keystr, category, data)</strong> (the <strong>data</strong> field is ignored,
|
||
only <strong>keystr</strong>/<strong>category</strong> matters). It’s possible to mix input types.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.clear">
|
||
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.clear" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove all tags from the handler.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – The Tag category to limit the
|
||
request to. Note that <strong>None</strong> is the valid, default
|
||
category.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.get">
|
||
<span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_tagobj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_list</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_exception</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.get" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Get the tag for the given key, category or combination of the two.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>list</em><em>, </em><em>optional</em>) – The tag or tags to retrieve.</p></li>
|
||
<li><p><strong>default</strong> (<em>any</em><em>, </em><em>optional</em>) – The value to return in case of no match.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – The Tag category to limit the
|
||
request to. Note that <strong>None</strong> is the valid, default
|
||
category. If no <strong>key</strong> is given, all tags of this category will be
|
||
returned.</p></li>
|
||
<li><p><strong>return_tagobj</strong> (<em>bool</em><em>, </em><em>optional</em>) – Return the Tag object itself
|
||
instead of a string representation of the Tag.</p></li>
|
||
<li><p><strong>return_list</strong> (<em>bool</em><em>, </em><em>optional</em>) – Always return a list, regardless
|
||
of number of matches.</p></li>
|
||
<li><p><strong>raise_exception</strong> (<em>bool</em><em>, </em><em>optional</em>) – Raise AttributeError if no matches
|
||
are found.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>tags (list)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>The matches, either string</dt><dd><p>representations of the tags or the Tag objects themselves
|
||
depending on <strong>return_tagobj</strong>. If ‘default’ is set, this
|
||
will be a list with the default value as its only element.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>AttributeError</strong> – If finding no matches and <strong>raise_exception</strong> is True.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.has">
|
||
<span class="sig-name descname"><span class="pre">has</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_list</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.has"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.has" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Checks if the given Tag (or list of Tags) exists on the object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>iterable</em>) – The Tag key or tags to check for.
|
||
If <strong>None</strong>, search by category.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – Limit the check to Tags with this
|
||
category (note, that <strong>None</strong> is the default category).</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>has_tag (bool or list)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>If the Tag exists on this object or not.</dt><dd><p>If <strong>tag</strong> was given as an iterable then the return is a list of booleans.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>ValueError</strong> – If neither <strong>tag</strong> nor <strong>category</strong> is given.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.remove">
|
||
<span class="sig-name descname"><span class="pre">remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.remove" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove a tag from the handler based ond key and/or category.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>list</em><em>, </em><em>optional</em>) – The tag or tags to retrieve.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – The Tag category to limit the
|
||
request to. Note that <strong>None</strong> is the valid, default
|
||
category</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>If neither key nor category is specified, this acts
|
||
as .clear().</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TagHandler.reset_cache">
|
||
<span class="sig-name descname"><span class="pre">reset_cache</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagHandler.reset_cache"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TagHandler.reset_cache" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Reset the cache from the outside.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">TypedObject</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.utils.idmapper.models.html#evennia.utils.idmapper.models.SharedMemoryModel" title="evennia.utils.idmapper.models.SharedMemoryModel"><code class="xref py py-class docutils literal notranslate"><span class="pre">SharedMemoryModel</span></code></a></p>
|
||
<p>Abstract Django model.</p>
|
||
<p>This is the basis for a typed object. It also contains all the
|
||
mechanics for managing connected attributes.</p>
|
||
<p>The TypedObject has the following properties:</p>
|
||
<ul class="simple">
|
||
<li><p>key - main name</p></li>
|
||
<li><p>name - alias for key</p></li>
|
||
<li><p>typeclass_path - the path to the decorating typeclass</p></li>
|
||
<li><p>typeclass - auto-linked typeclass</p></li>
|
||
<li><p>date_created - time stamp of object creation</p></li>
|
||
<li><p>permissions - perm strings</p></li>
|
||
<li><p>dbref - #id of object</p></li>
|
||
<li><p>db - persistent attribute storage</p></li>
|
||
<li><p>ndb - non-persistent attribute storage</p></li>
|
||
</ul>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.Meta">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Meta</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.Meta"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.Meta" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>Django setup info.</p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.Meta.abstract">
|
||
<span class="sig-name descname"><span class="pre">abstract</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#evennia.comms.models.TypedObject.Meta.abstract" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.Meta.ordering">
|
||
<span class="sig-name descname"><span class="pre">ordering</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">['-db_date_created',</span> <span class="pre">'id',</span> <span class="pre">'db_typeclass_path',</span> <span class="pre">'db_key']</span></em><a class="headerlink" href="#evennia.comms.models.TypedObject.Meta.ordering" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.Meta.verbose_name">
|
||
<span class="sig-name descname"><span class="pre">verbose_name</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'Evennia</span> <span class="pre">Database</span> <span class="pre">Object'</span></em><a class="headerlink" href="#evennia.comms.models.TypedObject.Meta.verbose_name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.__init__">
|
||
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The <strong>__init__</strong> method of typeclasses is the core operational
|
||
code of the typeclass system, where it dynamically re-applies
|
||
a class based on the db_typeclass_path database field rather
|
||
than use the one in the model.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>parent.</strong> (<em>Passed through to</em>)</p>
|
||
</dd>
|
||
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><strong>parent.</strong> (<em>Passed through to</em>)</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>The loading mechanism will attempt the following steps:</p>
|
||
<ol class="arabic simple">
|
||
<li><p>Attempt to load typeclass given on command line</p></li>
|
||
<li><p>Attempt to load typeclass stored in db_typeclass_path</p></li>
|
||
<li><p>Attempt to load <strong>__settingsclasspath__</strong>, which is by the
|
||
default classes defined to be the respective user-set
|
||
base typeclass settings, like <strong>BASE_OBJECT_TYPECLASS</strong>.</p></li>
|
||
<li><p>Attempt to load <strong>__defaultclasspath__</strong>, which is the
|
||
base classes in the library, like DefaultObject etc.</p></li>
|
||
<li><p>If everything else fails, use the database model.</p></li>
|
||
</ol>
|
||
<p>Normal operation is to load successfully at either step 1
|
||
or 2 depending on how the class was called. Tracebacks
|
||
will be logged for every step the loader must take beyond
|
||
2.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.access">
|
||
<span class="sig-name descname"><span class="pre">access</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accessing_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'read'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">no_superuser_bypass</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.access"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.access" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Determines if another object has permission to access this one.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>accessing_obj</strong> (<em>str</em>) – Object trying to access this one.</p></li>
|
||
<li><p><strong>access_type</strong> (<em>str</em><em>, </em><em>optional</em>) – Type of access sought.</p></li>
|
||
<li><p><strong>default</strong> (<em>bool</em><em>, </em><em>optional</em>) – What to return if no lock of
|
||
access_type was found</p></li>
|
||
<li><p><strong>no_superuser_bypass</strong> (<em>bool</em><em>, </em><em>optional</em>) – Turn off the
|
||
superuser lock bypass (be careful with this one).</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><strong>kwar</strong> (<em>any</em>) – Ignored, but is there to make the api
|
||
consistent with the object-typeclass method access, which
|
||
use it to feed to its hook methods.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.aliases">
|
||
<span class="sig-name descname"><span class="pre">aliases</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.aliases"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.aliases" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.at_idmapper_flush">
|
||
<span class="sig-name descname"><span class="pre">at_idmapper_flush</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.at_idmapper_flush"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.at_idmapper_flush" title="Link to this definition">¶</a></dt>
|
||
<dd><p>This is called when the idmapper cache is flushed and
|
||
allows customized actions when this happens.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><p><em>do_flush (bool)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>If True, flush this object as normal. If</dt><dd><p>False, don’t flush and expect this object to handle
|
||
the flushing on its own.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>The default implementation relies on being able to clear
|
||
Django’s Foreignkey cache on objects not affected by the
|
||
flush (notably objects with an NAttribute stored). We rely
|
||
on this cache being stored on the format “_<fieldname>_cache”.
|
||
If Django were to change this name internally, we need to
|
||
update here (unlikely, but marking just in case).</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.at_init">
|
||
<span class="sig-name descname"><span class="pre">at_init</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.at_init"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.at_init" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Called when this object is loaded into cache. This is more reliable
|
||
than to override <strong>__init__</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.at_rename">
|
||
<span class="sig-name descname"><span class="pre">at_rename</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">oldname</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">newname</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.at_rename"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.at_rename" title="Link to this definition">¶</a></dt>
|
||
<dd><p>This Hook is called by @name on a successful rename.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>oldname</strong> (<em>str</em>) – The instance’s original name.</p></li>
|
||
<li><p><strong>newname</strong> (<em>str</em>) – The new name for the instance.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.attributes">
|
||
<span class="sig-name descname"><span class="pre">attributes</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.attributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.attributes" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.check_permstring">
|
||
<span class="sig-name descname"><span class="pre">check_permstring</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">permstring</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.check_permstring"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.check_permstring" title="Link to this definition">¶</a></dt>
|
||
<dd><p>This explicitly checks if we hold particular permission
|
||
without involving any locks.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>permstring</strong> (<em>str</em>) – The permission string to check against.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>result (bool)</em> – If the permstring is passed or not.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.date_created">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">date_created</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.date_created" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Get the localized date created, based on settings.TIME_ZONE.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.db">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">db</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.db" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Attribute handler wrapper. Allows for the syntax</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">attrname</span> <span class="o">=</span> <span class="n">value</span>
|
||
<span class="c1"># and</span>
|
||
<span class="n">value</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">attrname</span>
|
||
<span class="c1"># and</span>
|
||
<span class="k">del</span> <span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">attrname</span>
|
||
<span class="c1"># and</span>
|
||
<span class="n">all_attr</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
|
||
<span class="c1"># (unless there is an attribute</span>
|
||
<span class="c1"># named 'all', in which case that will be returned instead).</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.db_attributes">
|
||
<span class="sig-name descname"><span class="pre">db_attributes</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.db_attributes" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.db_date_created">
|
||
<span class="sig-name descname"><span class="pre">db_date_created</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.db_key">
|
||
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.db_key" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.db_lock_storage">
|
||
<span class="sig-name descname"><span class="pre">db_lock_storage</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.db_lock_storage" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.db_tags">
|
||
<span class="sig-name descname"><span class="pre">db_tags</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.db_tags" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
|
||
a many-to-many relation.</p>
|
||
<p>In the example:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'pizzas'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
|
||
instances.</p>
|
||
<p>Most of the implementation is delegated to a dynamically defined manager
|
||
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.db_typeclass_path">
|
||
<span class="sig-name descname"><span class="pre">db_typeclass_path</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.db_typeclass_path" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
|
||
object the first time, the query is executed.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.dbid">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">dbid</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.dbid" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Caches and returns the unique id of the object.
|
||
Use this instead of self.id, which is not cached.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.dbref">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">dbref</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.dbref" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns the object’s dbref on the form #NN.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.delete">
|
||
<span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.delete"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.delete" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Cleaning up handlers on the typeclass level</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.get_absolute_url">
|
||
<span class="sig-name descname"><span class="pre">get_absolute_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.TypedObject.get_absolute_url" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns the URI path for a View that allows users to view details for
|
||
this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>path (str)</em> – URI path to object detail page, if defined.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Examples</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">'/characters/oscar/1/'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>For this to work, the developer must have defined a named view somewhere
|
||
in urls.py that follows the format ‘modelname-action’, so in this case
|
||
a named view of ‘character-detail’ would be referenced by this method.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$'</span><span class="p">,</span>
|
||
<span class="n">CharDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">'character-detail'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If no View has been created and defined in urls.py, returns an
|
||
HTML anchor.</p>
|
||
<p>This method is naive and simply returns a path. Securing access to
|
||
the actual view and limiting who can view this object is the
|
||
developer’s responsibility.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.get_display_name">
|
||
<span class="sig-name descname"><span class="pre">get_display_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">looker</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.get_display_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.get_display_name" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Displays the name of the object in a viewer-aware manner.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>looker</strong> (<a class="reference internal" href="#evennia.comms.models.TypedObject" title="evennia.comms.models.TypedObject"><em>TypedObject</em></a><em>, </em><em>optional</em>) – The object or account that is looking
|
||
at/getting inforamtion for this object. If not given, some
|
||
‘safe’ minimum level should be returned.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>name (str)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>A string containing the name of the object,</dt><dd><p>including the DBREF if this user is privileged to control
|
||
said object.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This function could be extended to change how object names
|
||
appear to users in character, but be wary. This function
|
||
does not change an object’s keys or aliases when
|
||
searching, and is expected to produce something useful for
|
||
builders.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.get_extra_info">
|
||
<span class="sig-name descname"><span class="pre">get_extra_info</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">looker</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.get_extra_info"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.get_extra_info" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Used when an object is in a list of ambiguous objects as an
|
||
additional information tag.</p>
|
||
<p>For instance, if you had potions which could have varying
|
||
levels of liquid left in them, you might want to display how
|
||
many drinks are left in each when selecting which to drop, but
|
||
not in your normal inventory listing.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>looker</strong> (<a class="reference internal" href="#evennia.comms.models.TypedObject" title="evennia.comms.models.TypedObject"><em>TypedObject</em></a>) – The object or account that is looking
|
||
at/getting information for this object.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>info (str)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>A string with disambiguating information,</dt><dd><p>conventionally with a leading space.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.get_next_by_db_date_created">
|
||
<span class="sig-name descname"><span class="pre">get_next_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=<django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.TypedObject.get_next_by_db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.get_previous_by_db_date_created">
|
||
<span class="sig-name descname"><span class="pre">get_previous_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=<django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.models.TypedObject.get_previous_by_db_date_created" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.init_evennia_properties">
|
||
<span class="sig-name descname"><span class="pre">init_evennia_properties</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.init_evennia_properties"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.init_evennia_properties" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Called by creation methods; makes sure to initialize Attribute/TagProperties
|
||
by fetching them once.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.is_typeclass">
|
||
<span class="sig-name descname"><span class="pre">is_typeclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">typeclass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exact</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.is_typeclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.is_typeclass" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns true if this object has this type OR has a typeclass
|
||
which is an subclass of the given typeclass. This operates on
|
||
the actually loaded typeclass (this is important since a
|
||
failing typeclass may instead have its default currently
|
||
loaded) typeclass - can be a class object or the python path
|
||
to such an object to match against.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>class</em>) – A class or the full python path
|
||
to the class to check.</p></li>
|
||
<li><p><strong>exact</strong> (<em>bool</em><em>, </em><em>optional</em>) – Returns true only if the object’s
|
||
type is exactly this typeclass, ignoring parents.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>is_typeclass (bool)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>If this typeclass matches the given</dt><dd><p>typeclass.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.key">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">key</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.key" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.lock_storage">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">lock_storage</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.lock_storage" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_lock_storage</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.locks">
|
||
<span class="sig-name descname"><span class="pre">locks</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.locks"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.locks" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.name">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.nattributes">
|
||
<span class="sig-name descname"><span class="pre">nattributes</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.nattributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.nattributes" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.ndb">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ndb</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.ndb" title="Link to this definition">¶</a></dt>
|
||
<dd><p>NonDataBase). Everything stored
|
||
to this is guaranteed to be cleared when a server is shutdown.
|
||
Syntax is same as for the _get_db_holder() method and
|
||
property, e.g. obj.ndb.attr = value etc.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>A non-attr_obj store (ndb</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.objects">
|
||
<span class="sig-name descname"><span class="pre">objects</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.objects" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.path">
|
||
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.typeclasses.models.TypedObject'</span></em><a class="headerlink" href="#evennia.comms.models.TypedObject.path" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.permissions">
|
||
<span class="sig-name descname"><span class="pre">permissions</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.permissions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.permissions" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.search">
|
||
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">search</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.search"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.search" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Overridden by class children. This implements a common API.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>query</strong> (<em>str</em>) – A search query.</p></li>
|
||
<li><p><strong>**kwargs</strong> – Other search parameters.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>list</em> – A list of 0, 1 or more matches, only of this typeclass.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.set_class_from_typeclass">
|
||
<span class="sig-name descname"><span class="pre">set_class_from_typeclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">typeclass_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.set_class_from_typeclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.set_class_from_typeclass" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.swap_typeclass">
|
||
<span class="sig-name descname"><span class="pre">swap_typeclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_typeclass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">clean_attributes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">run_start_hooks</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'all'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">no_default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">clean_cmdsets</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.swap_typeclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.swap_typeclass" title="Link to this definition">¶</a></dt>
|
||
<dd><p>This performs an in-situ swap of the typeclass. This means
|
||
that in-game, this object will suddenly be something else.
|
||
Account will not be affected. To ‘move’ an account to a different
|
||
object entirely (while retaining this object’s type), use
|
||
self.account.swap_object().</p>
|
||
<p>Note that this might be an error prone operation if the
|
||
old/new typeclass was heavily customized - your code
|
||
might expect one and not the other, so be careful to
|
||
bug test your code if using this feature! Often its easiest
|
||
to create a new object and just swap the account over to
|
||
that one instead.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>new_typeclass</strong> (<em>str</em><em> or </em><em>classobj</em>) – Type to switch to.</p></li>
|
||
<li><p><strong>clean_attributes</strong> (<em>bool</em><em> or </em><em>list</em><em>, </em><em>optional</em>) – Will delete all
|
||
attributes stored on this object (but not any of the
|
||
database fields such as name or location). You can’t get
|
||
attributes back, but this is often the safest bet to make
|
||
sure nothing in the new typeclass clashes with the old
|
||
one. If you supply a list, only those named attributes
|
||
will be cleared.</p></li>
|
||
<li><p><strong>run_start_hooks</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) – This is either None,
|
||
to not run any hooks, “all” to run all hooks defined by
|
||
at_first_start, or a string with space-separated hook-names to run
|
||
(for example ‘at_object_creation’). This will
|
||
always be called without arguments.</p></li>
|
||
<li><p><strong>no_default</strong> (<em>bool</em><em>, </em><em>optiona</em>) – If set, the swapper will not
|
||
allow for swapping to a default typeclass in case the
|
||
given one fails for some reason. Instead the old one will
|
||
be preserved.</p></li>
|
||
<li><p><strong>clean_cmdsets</strong> (<em>bool</em><em>, </em><em>optional</em>) – Delete all cmdsets on the object.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.tags">
|
||
<span class="sig-name descname"><span class="pre">tags</span></span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.tags"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.tags" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.typeclass_path">
|
||
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">typeclass_path</span></span><a class="headerlink" href="#evennia.comms.models.TypedObject.typeclass_path" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_typeclass_path</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.typename">
|
||
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'SharedMemoryModelBase'</span></em><a class="headerlink" href="#evennia.comms.models.TypedObject.typename" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.web_get_admin_url">
|
||
<span class="sig-name descname"><span class="pre">web_get_admin_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_admin_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.web_get_admin_url" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns the URI path for the Django Admin page for this object.</p>
|
||
<p>ex. Account#1 = ‘/admin/accounts/accountdb/1/change/’</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>path (str)</em> – URI path to Django Admin page for object.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.web_get_create_url">
|
||
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">web_get_create_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_create_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.web_get_create_url" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns the URI path for a View that allows users to create new
|
||
instances of this object.</p>
|
||
<p>ex. Chargen = ‘/characters/create/’</p>
|
||
<p>For this to work, the developer must have defined a named view somewhere
|
||
in urls.py that follows the format ‘modelname-action’, so in this case
|
||
a named view of ‘character-create’ would be referenced by this method.</p>
|
||
<p>ex.
|
||
url(r’characters/create/’, ChargenView.as_view(), name=’character-create’)</p>
|
||
<p>If no View has been created and defined in urls.py, returns an
|
||
HTML anchor.</p>
|
||
<p>This method is naive and simply returns a path. Securing access to
|
||
the actual view and limiting who can create new objects is the
|
||
developer’s responsibility.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>path (str)</em> – URI path to object creation page, if defined.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.web_get_delete_url">
|
||
<span class="sig-name descname"><span class="pre">web_get_delete_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_delete_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.web_get_delete_url" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns the URI path for a View that allows users to delete this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>path (str)</em> – URI path to object deletion page, if defined.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Examples</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">'/characters/oscar/1/delete/'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>For this to work, the developer must have defined a named view
|
||
somewhere in urls.py that follows the format ‘modelname-action’, so
|
||
in this case a named view of ‘character-detail’ would be referenced
|
||
by this method.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/delete/$'</span><span class="p">,</span>
|
||
<span class="n">CharDeleteView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">'character-delete'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If no View has been created and defined in urls.py, returns an HTML
|
||
anchor.</p>
|
||
<p>This method is naive and simply returns a path. Securing access to
|
||
the actual view and limiting who can delete this object is the
|
||
developer’s responsibility.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.web_get_detail_url">
|
||
<span class="sig-name descname"><span class="pre">web_get_detail_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_detail_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.web_get_detail_url" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns the URI path for a View that allows users to view details for
|
||
this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>path (str)</em> – URI path to object detail page, if defined.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Examples</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">'/characters/oscar/1/'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>For this to work, the developer must have defined a named view somewhere
|
||
in urls.py that follows the format ‘modelname-action’, so in this case
|
||
a named view of ‘character-detail’ would be referenced by this method.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/$'</span><span class="p">,</span>
|
||
<span class="n">CharDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">'character-detail'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If no View has been created and defined in urls.py, returns an
|
||
HTML anchor.</p>
|
||
<p>This method is naive and simply returns a path. Securing access to
|
||
the actual view and limiting who can view this object is the
|
||
developer’s responsibility.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.web_get_puppet_url">
|
||
<span class="sig-name descname"><span class="pre">web_get_puppet_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_puppet_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.web_get_puppet_url" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns the URI path for a View that allows users to puppet a specific
|
||
object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>str</em> – URI path to object puppet page, if defined.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Examples</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">'/characters/oscar/1/puppet/'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>For this to work, the developer must have defined a named view somewhere
|
||
in urls.py that follows the format ‘modelname-action’, so in this case
|
||
a named view of ‘character-puppet’ would be referenced by this method.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/puppet/$'</span><span class="p">,</span>
|
||
<span class="n">CharPuppetView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">'character-puppet'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If no View has been created and defined in urls.py, returns an
|
||
HTML anchor.</p>
|
||
<p>This method is naive and simply returns a path. Securing access to
|
||
the actual view and limiting who can view this object is the developer’s
|
||
responsibility.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.TypedObject.web_get_update_url">
|
||
<span class="sig-name descname"><span class="pre">web_get_update_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypedObject.web_get_update_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.TypedObject.web_get_update_url" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns the URI path for a View that allows users to update this
|
||
object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>str</em> – URI path to object update page, if defined.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Examples</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Oscar</span> <span class="p">(</span><span class="n">Character</span><span class="p">)</span> <span class="o">=</span> <span class="s1">'/characters/oscar/1/change/'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>For this to work, the developer must have defined a named view somewhere
|
||
in urls.py that follows the format ‘modelname-action’, so in this case
|
||
a named view of ‘character-update’ would be referenced by this method.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">'characters/(?P<slug>[\w\d\-]+)/(?P<pk>[0-9]+)/change/$'</span><span class="p">,</span>
|
||
<span class="n">CharUpdateView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">'character-update'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If no View has been created and defined in urls.py, returns an
|
||
HTML anchor.</p>
|
||
<p>This method is naive and simply returns a path. Securing access to
|
||
the actual view and limiting who can modify objects is the developer’s
|
||
responsibility.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.crop">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">crop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'[...]'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#crop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.crop" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Crop text to a certain width, throwing away text from too-long
|
||
lines.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>text</strong> (<em>str</em>) – Text to crop.</p></li>
|
||
<li><p><strong>width</strong> (<em>int</em><em>, </em><em>optional</em>) – Width of line to crop, in characters.</p></li>
|
||
<li><p><strong>suffix</strong> (<em>str</em><em>, </em><em>optional</em>) – This is appended to the end of cropped
|
||
lines to show that the line actually continues. Cropping
|
||
will be done so that the suffix will also fit within the
|
||
given width. If width is too small to fit both crop and
|
||
suffix, the suffix will be dropped.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>text (str)</em> – The cropped text.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.lazy_property">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">lazy_property</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">TProp</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">doc</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#lazy_property"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.lazy_property" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Generic</span></code>[<code class="xref py py-obj docutils literal notranslate"><span class="pre">TProp</span></code>]</p>
|
||
<p>Delays loading of property until first access. Credit goes to the
|
||
Implementation in the werkzeug suite:
|
||
<a class="reference external" href="http://werkzeug.pocoo.org/docs/utils/#werkzeug.utils.cached_property">http://werkzeug.pocoo.org/docs/utils/#werkzeug.utils.cached_property</a></p>
|
||
<p>This should be used as a decorator in a class and in Evennia is
|
||
mainly used to lazy-load handlers:</p>
|
||
<blockquote>
|
||
<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@lazy_property</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">attributes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="k">return</span> <span class="n">AttributeHandler</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</div></blockquote>
|
||
<p>Once initialized, the <strong>AttributeHandler</strong> will be available as a
|
||
property “attributes” on the object. This is read-only since
|
||
this functionality is pretty much exclusively used by handlers.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.lazy_property.__init__">
|
||
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">TProp</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">doc</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#lazy_property.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.lazy_property.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Store all properties for now</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.comms.models.make_iter">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.comms.models.</span></span><span class="sig-name descname"><span class="pre">make_iter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#make_iter"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.comms.models.make_iter" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Makes sure that the object is always iterable.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<em>any</em>) – Object to make iterable.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>iterable (list or iterable)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>The same object</dt><dd><p>passed-through or made iterable.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
|
||
|
||
<div class="clearer"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="Main">
|
||
<div class="sphinxsidebarwrapper">
|
||
<p class="logo"><a href="../index.html">
|
||
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
|
||
</a></p>
|
||
<search 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" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||
<input type="submit" value="Go" />
|
||
</form>
|
||
</div>
|
||
</search>
|
||
<script>document.getElementById('searchbox').style.display = "block"</script>
|
||
<h3><a href="../index.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#">evennia.comms.models</a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg"><code class="docutils literal notranslate"><span class="pre">Msg</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_sender_accounts"><code class="docutils literal notranslate"><span class="pre">Msg.db_sender_accounts</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_sender_objects"><code class="docutils literal notranslate"><span class="pre">Msg.db_sender_objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_sender_scripts"><code class="docutils literal notranslate"><span class="pre">Msg.db_sender_scripts</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_sender_external"><code class="docutils literal notranslate"><span class="pre">Msg.db_sender_external</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_receivers_accounts"><code class="docutils literal notranslate"><span class="pre">Msg.db_receivers_accounts</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_receivers_objects"><code class="docutils literal notranslate"><span class="pre">Msg.db_receivers_objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_receivers_scripts"><code class="docutils literal notranslate"><span class="pre">Msg.db_receivers_scripts</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_receiver_external"><code class="docutils literal notranslate"><span class="pre">Msg.db_receiver_external</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_header"><code class="docutils literal notranslate"><span class="pre">Msg.db_header</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_message"><code class="docutils literal notranslate"><span class="pre">Msg.db_message</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_date_created"><code class="docutils literal notranslate"><span class="pre">Msg.db_date_created</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_lock_storage"><code class="docutils literal notranslate"><span class="pre">Msg.db_lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_hide_from_accounts"><code class="docutils literal notranslate"><span class="pre">Msg.db_hide_from_accounts</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_hide_from_objects"><code class="docutils literal notranslate"><span class="pre">Msg.db_hide_from_objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.db_tags"><code class="docutils literal notranslate"><span class="pre">Msg.db_tags</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.objects"><code class="docutils literal notranslate"><span class="pre">Msg.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.locks"><code class="docutils literal notranslate"><span class="pre">Msg.locks</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.tags"><code class="docutils literal notranslate"><span class="pre">Msg.tags</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.date_created"><code class="docutils literal notranslate"><span class="pre">Msg.date_created</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.senders"><code class="docutils literal notranslate"><span class="pre">Msg.senders</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.remove_sender"><code class="docutils literal notranslate"><span class="pre">Msg.remove_sender()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.receivers"><code class="docutils literal notranslate"><span class="pre">Msg.receivers</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.remove_receiver"><code class="docutils literal notranslate"><span class="pre">Msg.remove_receiver()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.hide_from"><code class="docutils literal notranslate"><span class="pre">Msg.hide_from</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.access"><code class="docutils literal notranslate"><span class="pre">Msg.access()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">Msg.DoesNotExist</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">Msg.MultipleObjectsReturned</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.get_next_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">Msg.get_next_by_db_date_created()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.get_previous_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">Msg.get_previous_by_db_date_created()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.header"><code class="docutils literal notranslate"><span class="pre">Msg.header</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.id"><code class="docutils literal notranslate"><span class="pre">Msg.id</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.lock_storage"><code class="docutils literal notranslate"><span class="pre">Msg.lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.message"><code class="docutils literal notranslate"><span class="pre">Msg.message</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.path"><code class="docutils literal notranslate"><span class="pre">Msg.path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.receiver_external"><code class="docutils literal notranslate"><span class="pre">Msg.receiver_external</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.sender_external"><code class="docutils literal notranslate"><span class="pre">Msg.sender_external</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Msg.typename"><code class="docutils literal notranslate"><span class="pre">Msg.typename</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TempMsg"><code class="docutils literal notranslate"><span class="pre">TempMsg</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TempMsg.__init__"><code class="docutils literal notranslate"><span class="pre">TempMsg.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TempMsg.locks"><code class="docutils literal notranslate"><span class="pre">TempMsg.locks</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TempMsg.remove_sender"><code class="docutils literal notranslate"><span class="pre">TempMsg.remove_sender()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TempMsg.remove_receiver"><code class="docutils literal notranslate"><span class="pre">TempMsg.remove_receiver()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TempMsg.access"><code class="docutils literal notranslate"><span class="pre">TempMsg.access()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB"><code class="docutils literal notranslate"><span class="pre">ChannelDB</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.db_account_subscriptions"><code class="docutils literal notranslate"><span class="pre">ChannelDB.db_account_subscriptions</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.db_object_subscriptions"><code class="docutils literal notranslate"><span class="pre">ChannelDB.db_object_subscriptions</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.objects"><code class="docutils literal notranslate"><span class="pre">ChannelDB.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">ChannelDB.DoesNotExist</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">ChannelDB.MultipleObjectsReturned</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.db_attributes"><code class="docutils literal notranslate"><span class="pre">ChannelDB.db_attributes</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.db_date_created"><code class="docutils literal notranslate"><span class="pre">ChannelDB.db_date_created</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.db_key"><code class="docutils literal notranslate"><span class="pre">ChannelDB.db_key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.db_lock_storage"><code class="docutils literal notranslate"><span class="pre">ChannelDB.db_lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.db_tags"><code class="docutils literal notranslate"><span class="pre">ChannelDB.db_tags</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.db_typeclass_path"><code class="docutils literal notranslate"><span class="pre">ChannelDB.db_typeclass_path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.get_next_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">ChannelDB.get_next_by_db_date_created()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.get_previous_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">ChannelDB.get_previous_by_db_date_created()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.id"><code class="docutils literal notranslate"><span class="pre">ChannelDB.id</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.path"><code class="docutils literal notranslate"><span class="pre">ChannelDB.path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.typename"><code class="docutils literal notranslate"><span class="pre">ChannelDB.typename</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.ChannelDB.subscriptions"><code class="docutils literal notranslate"><span class="pre">ChannelDB.subscriptions</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler.__init__"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler.has"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler.has()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler.add"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler.add()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler.remove"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler.remove()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler.all"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler.all()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler.get"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler.get()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler.online"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler.online()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SubscriptionHandler.clear"><code class="docutils literal notranslate"><span class="pre">SubscriptionHandler.clear()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler"><code class="docutils literal notranslate"><span class="pre">LockHandler</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.__init__"><code class="docutils literal notranslate"><span class="pre">LockHandler.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.add"><code class="docutils literal notranslate"><span class="pre">LockHandler.add()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.all"><code class="docutils literal notranslate"><span class="pre">LockHandler.all()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.append"><code class="docutils literal notranslate"><span class="pre">LockHandler.append()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.cache_lock_bypass"><code class="docutils literal notranslate"><span class="pre">LockHandler.cache_lock_bypass()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.check"><code class="docutils literal notranslate"><span class="pre">LockHandler.check()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.check_lockstring"><code class="docutils literal notranslate"><span class="pre">LockHandler.check_lockstring()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.clear"><code class="docutils literal notranslate"><span class="pre">LockHandler.clear()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.delete"><code class="docutils literal notranslate"><span class="pre">LockHandler.delete()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.get"><code class="docutils literal notranslate"><span class="pre">LockHandler.get()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.remove"><code class="docutils literal notranslate"><span class="pre">LockHandler.remove()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.replace"><code class="docutils literal notranslate"><span class="pre">LockHandler.replace()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.reset"><code class="docutils literal notranslate"><span class="pre">LockHandler.reset()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.LockHandler.validate"><code class="docutils literal notranslate"><span class="pre">LockHandler.validate()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.Meta"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.Meta</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.Meta.abstract"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.Meta.abstract</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.at_idmapper_flush"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.at_idmapper_flush()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.cache_instance"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.cache_instance()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.delete"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.delete()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.flush_cached_instance"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.flush_cached_instance()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.flush_from_cache"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.flush_from_cache()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.flush_instance_cache"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.flush_instance_cache()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.get_all_cached_instances"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.get_all_cached_instances()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.get_cached_instance"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.get_cached_instance()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.objects"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.path"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.save"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.save()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.SharedMemoryModel.typename"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.typename</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag"><code class="docutils literal notranslate"><span class="pre">Tag</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">Tag.DoesNotExist</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">Tag.MultipleObjectsReturned</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.accountdb_set"><code class="docutils literal notranslate"><span class="pre">Tag.accountdb_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.channeldb_set"><code class="docutils literal notranslate"><span class="pre">Tag.channeldb_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.db_category"><code class="docutils literal notranslate"><span class="pre">Tag.db_category</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.db_data"><code class="docutils literal notranslate"><span class="pre">Tag.db_data</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.db_key"><code class="docutils literal notranslate"><span class="pre">Tag.db_key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.db_model"><code class="docutils literal notranslate"><span class="pre">Tag.db_model</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.db_tagtype"><code class="docutils literal notranslate"><span class="pre">Tag.db_tagtype</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.helpentry_set"><code class="docutils literal notranslate"><span class="pre">Tag.helpentry_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.id"><code class="docutils literal notranslate"><span class="pre">Tag.id</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.msg_set"><code class="docutils literal notranslate"><span class="pre">Tag.msg_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.objectdb_set"><code class="docutils literal notranslate"><span class="pre">Tag.objectdb_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.objects"><code class="docutils literal notranslate"><span class="pre">Tag.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.Tag.scriptdb_set"><code class="docutils literal notranslate"><span class="pre">Tag.scriptdb_set</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler"><code class="docutils literal notranslate"><span class="pre">TagHandler</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.__init__"><code class="docutils literal notranslate"><span class="pre">TagHandler.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.add"><code class="docutils literal notranslate"><span class="pre">TagHandler.add()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.all"><code class="docutils literal notranslate"><span class="pre">TagHandler.all()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.batch_add"><code class="docutils literal notranslate"><span class="pre">TagHandler.batch_add()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.batch_remove"><code class="docutils literal notranslate"><span class="pre">TagHandler.batch_remove()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.clear"><code class="docutils literal notranslate"><span class="pre">TagHandler.clear()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.get"><code class="docutils literal notranslate"><span class="pre">TagHandler.get()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.has"><code class="docutils literal notranslate"><span class="pre">TagHandler.has()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.remove"><code class="docutils literal notranslate"><span class="pre">TagHandler.remove()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TagHandler.reset_cache"><code class="docutils literal notranslate"><span class="pre">TagHandler.reset_cache()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject"><code class="docutils literal notranslate"><span class="pre">TypedObject</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.Meta"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.Meta.abstract"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta.abstract</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.Meta.ordering"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta.ordering</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.Meta.verbose_name"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta.verbose_name</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.__init__"><code class="docutils literal notranslate"><span class="pre">TypedObject.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.access"><code class="docutils literal notranslate"><span class="pre">TypedObject.access()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.aliases"><code class="docutils literal notranslate"><span class="pre">TypedObject.aliases</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.at_idmapper_flush"><code class="docutils literal notranslate"><span class="pre">TypedObject.at_idmapper_flush()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.at_init"><code class="docutils literal notranslate"><span class="pre">TypedObject.at_init()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.at_rename"><code class="docutils literal notranslate"><span class="pre">TypedObject.at_rename()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.attributes"><code class="docutils literal notranslate"><span class="pre">TypedObject.attributes</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.check_permstring"><code class="docutils literal notranslate"><span class="pre">TypedObject.check_permstring()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.date_created"><code class="docutils literal notranslate"><span class="pre">TypedObject.date_created</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.db"><code class="docutils literal notranslate"><span class="pre">TypedObject.db</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.db_attributes"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_attributes</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.db_date_created"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_date_created</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.db_key"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.db_lock_storage"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.db_tags"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_tags</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.db_typeclass_path"><code class="docutils literal notranslate"><span class="pre">TypedObject.db_typeclass_path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.dbid"><code class="docutils literal notranslate"><span class="pre">TypedObject.dbid</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.dbref"><code class="docutils literal notranslate"><span class="pre">TypedObject.dbref</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.delete"><code class="docutils literal notranslate"><span class="pre">TypedObject.delete()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.get_absolute_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_absolute_url()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.get_display_name"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_display_name()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.get_extra_info"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_extra_info()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.get_next_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_next_by_db_date_created()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.get_previous_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_previous_by_db_date_created()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.init_evennia_properties"><code class="docutils literal notranslate"><span class="pre">TypedObject.init_evennia_properties()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.is_typeclass"><code class="docutils literal notranslate"><span class="pre">TypedObject.is_typeclass()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.key"><code class="docutils literal notranslate"><span class="pre">TypedObject.key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.lock_storage"><code class="docutils literal notranslate"><span class="pre">TypedObject.lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.locks"><code class="docutils literal notranslate"><span class="pre">TypedObject.locks</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.name"><code class="docutils literal notranslate"><span class="pre">TypedObject.name</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.nattributes"><code class="docutils literal notranslate"><span class="pre">TypedObject.nattributes</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.ndb"><code class="docutils literal notranslate"><span class="pre">TypedObject.ndb</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.objects"><code class="docutils literal notranslate"><span class="pre">TypedObject.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.path"><code class="docutils literal notranslate"><span class="pre">TypedObject.path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.permissions"><code class="docutils literal notranslate"><span class="pre">TypedObject.permissions</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.search"><code class="docutils literal notranslate"><span class="pre">TypedObject.search()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.set_class_from_typeclass"><code class="docutils literal notranslate"><span class="pre">TypedObject.set_class_from_typeclass()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.swap_typeclass"><code class="docutils literal notranslate"><span class="pre">TypedObject.swap_typeclass()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.tags"><code class="docutils literal notranslate"><span class="pre">TypedObject.tags</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.typeclass_path"><code class="docutils literal notranslate"><span class="pre">TypedObject.typeclass_path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.typename"><code class="docutils literal notranslate"><span class="pre">TypedObject.typename</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.web_get_admin_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_admin_url()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.web_get_create_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_create_url()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.web_get_delete_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_delete_url()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.web_get_detail_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_detail_url()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.web_get_puppet_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_puppet_url()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.TypedObject.web_get_update_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_update_url()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.crop"><code class="docutils literal notranslate"><span class="pre">crop()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.lazy_property"><code class="docutils literal notranslate"><span class="pre">lazy_property</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.comms.models.lazy_property.__init__"><code class="docutils literal notranslate"><span class="pre">lazy_property.__init__()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.comms.models.make_iter"><code class="docutils literal notranslate"><span class="pre">make_iter()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<div>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="evennia.comms.managers.html"
|
||
title="previous chapter">evennia.comms.managers</a></p>
|
||
</div>
|
||
<div>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="evennia.contrib.html"
|
||
title="next chapter">evennia.contrib</a></p>
|
||
</div>
|
||
<div role="note" aria-label="source link">
|
||
<!--h3>This Page</h3-->
|
||
<ul class="this-page-menu">
|
||
<li><a href="../_sources/api/evennia.comms.models.md.txt"
|
||
rel="nofollow">Show Page Source</a></li>
|
||
</ul>
|
||
</div><h3>Links</h3>
|
||
<ul>
|
||
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
|
||
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
|
||
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
|
||
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
||
<li>
|
||
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
||
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
||
<a href="https://evennia.blogspot.com/">Blog</a>
|
||
</li>
|
||
</ul>
|
||
<h3>Doc Versions</h3>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
|
||
</li>
|
||
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<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="right" >
|
||
<a href="evennia.contrib.html" title="evennia.contrib"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.comms.managers.html" title="evennia.comms.managers"
|
||
>previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> »</li>
|
||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-4"><a href="evennia.comms.html" >evennia.comms</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">evennia.comms.models</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="footer" role="contentinfo">
|
||
© Copyright 2024, The Evennia developer community.
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
|
||
</div>
|
||
</body>
|
||
</html> |