mirror of
https://github.com/evennia/evennia.git
synced 2026-03-21 23:36:30 +01:00
3147 lines
No EOL
298 KiB
HTML
3147 lines
No EOL
298 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.typeclasses.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.typeclasses.tags" href="evennia.typeclasses.tags.html" />
|
||
<link rel="prev" title="evennia.typeclasses.managers" href="evennia.typeclasses.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.typeclasses.tags.html" title="evennia.typeclasses.tags"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.typeclasses.managers.html" title="evennia.typeclasses.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.typeclasses.html" accesskey="U">evennia.typeclasses</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">evennia.typeclasses.models</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="module-evennia.typeclasses.models">
|
||
<span id="evennia-typeclasses-models"></span><h1>evennia.typeclasses.models<a class="headerlink" href="#module-evennia.typeclasses.models" title="Link to this heading">¶</a></h1>
|
||
<p>This is the <em>abstract</em> django models for many of the database objects
|
||
in Evennia. A django abstract (obs, not the same as a Python metaclass!) is
|
||
a model which is not actually created in the database, but which only exists
|
||
for other models to inherit from, to avoid code duplication. Any model can
|
||
import and inherit from these classes.</p>
|
||
<p>Attributes are database objects stored on other objects. The implementing
|
||
class needs to supply a ForeignKey field attr_object pointing to the kind
|
||
of object being mapped. Attributes storing iterables actually store special
|
||
types of iterables named PackedList/PackedDict respectively. These make
|
||
sure to save changes to them to database - this is criticial in order to
|
||
allow for obj.db.mylist[2] = data. Also, all dbobjects are saved as
|
||
dbrefs but are also aggressively cached.</p>
|
||
<p>TypedObjects are objects ‘decorated’ with a typeclass - that is, the typeclass
|
||
(which is a normal Python class implementing some special tricks with its
|
||
get/set attribute methods, allows for the creation of all sorts of different
|
||
objects all with the same database object underneath. Usually attributes are
|
||
used to permanently store things not hard-coded as field on the database object.
|
||
The admin should usually not have to deal directly with the database object
|
||
layer.</p>
|
||
<p>This module also contains the Managers for the respective models; inherit from
|
||
these to create custom managers.</p>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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 attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.TypedObject.db_key">
|
||
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.db_typeclass_path">
|
||
<span class="sig-name descname"><span class="pre">db_typeclass_path</span></span><a class="headerlink" href="#evennia.typeclasses.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 attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.TypedObject.db_date_created">
|
||
<span class="sig-name descname"><span class="pre">db_date_created</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.db_lock_storage">
|
||
<span class="sig-name descname"><span class="pre">db_lock_storage</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.db_attributes">
|
||
<span class="sig-name descname"><span class="pre">db_attributes</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.db_tags">
|
||
<span class="sig-name descname"><span class="pre">db_tags</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.objects">
|
||
<span class="sig-name descname"><span class="pre">objects</span></span><a class="headerlink" href="#evennia.typeclasses.models.TypedObject.objects" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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 attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.models.TypedObject.attributes" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.models.TypedObject.locks" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.models.TypedObject.tags" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.models.TypedObject.aliases" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.models.TypedObject.permissions" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.models.TypedObject.nattributes" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject.Meta.verbose_name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.models.TypedObject.Meta.ordering" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.models.TypedObject.name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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 method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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 method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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 method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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 method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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 property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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 property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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 method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject" title="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject" title="evennia.typeclasses.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.typeclasses.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.typeclasses.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 method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject.path" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AliasHandler">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">AliasHandler</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#AliasHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AliasHandler" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.tags.html#evennia.typeclasses.tags.TagHandler" title="evennia.typeclasses.tags.TagHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TagHandler</span></code></a></p>
|
||
<p>A handler for the Alias Tag type.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">Attribute</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/attributes.html#Attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.Attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttribute" title="evennia.typeclasses.attributes.IAttribute"><code class="xref py py-class docutils literal notranslate"><span class="pre">IAttribute</span></code></a>, <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>This attribute is stored via Django. Most Attributes will be using this class.</p>
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.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.typeclasses.models.Attribute.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.typeclasses.models.Attribute.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.typeclasses.models.Attribute.accountdb_set">
|
||
<span class="sig-name descname"><span class="pre">accountdb_set</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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 property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.attrtype">
|
||
<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">attrtype</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.attrtype" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_attrtype</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.category">
|
||
<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">category</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.category" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_category</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.channeldb_set">
|
||
<span class="sig-name descname"><span class="pre">channeldb_set</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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 property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.date_created" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_date_created</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.db_attrtype">
|
||
<span class="sig-name descname"><span class="pre">db_attrtype</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.db_attrtype" 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.typeclasses.models.Attribute.db_category">
|
||
<span class="sig-name descname"><span class="pre">db_category</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.db_date_created">
|
||
<span class="sig-name descname"><span class="pre">db_date_created</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.db_key">
|
||
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.db_lock_storage">
|
||
<span class="sig-name descname"><span class="pre">db_lock_storage</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.db_model">
|
||
<span class="sig-name descname"><span class="pre">db_model</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.db_strvalue">
|
||
<span class="sig-name descname"><span class="pre">db_strvalue</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.db_strvalue" 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.typeclasses.models.Attribute.db_value">
|
||
<span class="sig-name descname"><span class="pre">db_value</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.db_value" 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.typeclasses.models.Attribute.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.typeclasses.models.Attribute.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.typeclasses.models.Attribute.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.typeclasses.models.Attribute.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.typeclasses.models.Attribute.id">
|
||
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.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.typeclasses.models.Attribute.key" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_key</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.lock_storage" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.model">
|
||
<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">model</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.model" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_model</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.objectdb_set">
|
||
<span class="sig-name descname"><span class="pre">objectdb_set</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.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.attributes.Attribute'</span></em><a class="headerlink" href="#evennia.typeclasses.models.Attribute.path" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.scriptdb_set">
|
||
<span class="sig-name descname"><span class="pre">scriptdb_set</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.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>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.strvalue">
|
||
<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">strvalue</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.strvalue" title="Link to this definition">¶</a></dt>
|
||
<dd><p>A wrapper for getting database field <strong>db_strvalue</strong>.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.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.typeclasses.models.Attribute.typename" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.Attribute.value">
|
||
<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">value</span></span><a class="headerlink" href="#evennia.typeclasses.models.Attribute.value" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Getter. Allows for <strong>value = self.value</strong>.
|
||
We cannot cache here since it makes certain cases (such
|
||
as storing a dbobj which is then deleted elsewhere) out-of-sync.
|
||
The overhead of unpickling seems hard to avoid.</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">AttributeHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">backend_class</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#AttributeHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler" 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>Handler for adding Attributes to the object.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.__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>, <em class="sig-param"><span class="n"><span class="pre">backend_class</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#AttributeHandler.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Setup the AttributeHandler.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>obj</strong> (<a class="reference internal" href="#evennia.typeclasses.models.TypedObject" title="evennia.typeclasses.models.TypedObject"><em>TypedObject</em></a>) – An Account, Object, Channel, ServerSession (not technically a typed
|
||
object), etc. backend_class (IAttributeBackend class): The class of the backend to
|
||
use.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.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></em>, <em class="sig-param"><span class="n"><span class="pre">value</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">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">strattr</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">accessing_obj</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_access</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/typeclasses/attributes.html#AttributeHandler.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.add" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Add attribute to object, with optional <strong>lockstring</strong>.</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>) – An Attribute name to add.</p></li>
|
||
<li><p><strong>value</strong> (<em>any</em><em> or </em><em>str</em>) – The value of the Attribute. If
|
||
<strong>strattr</strong> keyword is set, this <em>must</em> be a string.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – The category for the Attribute.
|
||
The default <strong>None</strong> is the normal category used.</p></li>
|
||
<li><p><strong>lockstring</strong> (<em>str</em><em>, </em><em>optional</em>) – A lock string limiting access
|
||
to the attribute.</p></li>
|
||
<li><p><strong>strattr</strong> (<em>bool</em><em>, </em><em>optional</em>) – Make this a string-only Attribute.
|
||
This is only ever useful for optimization purposes.</p></li>
|
||
<li><p><strong>accessing_obj</strong> (<em>object</em><em>, </em><em>optional</em>) – An entity to check for
|
||
the <strong>attrcreate</strong> access-type. If not passing, this method
|
||
will be exited.</p></li>
|
||
<li><p><strong>default_access</strong> (<em>bool</em><em>, </em><em>optional</em>) – What access to grant if
|
||
<strong>accessing_obj</strong> is given but no lock of the type
|
||
<strong>attrcreate</strong> is defined on the Attribute in question.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.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">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">accessing_obj</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_access</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/typeclasses/attributes.html#AttributeHandler.all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.all" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return all Attribute objects on this object, 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>category</strong> (<em>str</em><em>, </em><em>optional</em>) – A given category to limit results to.</p></li>
|
||
<li><p><strong>accessing_obj</strong> (<em>object</em><em>, </em><em>optional</em>) – Check the <strong>attrread</strong>
|
||
lock on each attribute before returning them. If not
|
||
given, this check is skipped.</p></li>
|
||
<li><p><strong>default_access</strong> (<em>bool</em><em>, </em><em>optional</em>) – Use this permission as a
|
||
fallback if <strong>accessing_obj</strong> is given but one or more
|
||
Attributes has no lock of type <strong>attrread</strong> defined on them.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>Attributes (list)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>All the Attribute objects (note: Not</dt><dd><p>their values!) in the handler.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.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>, <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/attributes.html#AttributeHandler.batch_add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.batch_add" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Batch-version of <strong>add()</strong>. This is more efficient than
|
||
repeat-calling add when having many Attributes to add.</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>) – <p>Each argument should be a tuples (can be of varying
|
||
length) representing the Attribute to add to this object.
|
||
Supported tuples are</p>
|
||
<ul class="simple">
|
||
<li><p>(key, value)</p></li>
|
||
<li><p>(key, value, category)</p></li>
|
||
<li><p>(key, value, category, lockstring)</p></li>
|
||
<li><p>(key, value, category, lockstring, default_access)</p></li>
|
||
</ul>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><strong>strattr</strong> (<em>bool</em>) – If <strong>True</strong>, value must be a string. This
|
||
will save the value without pickling which is less
|
||
flexible but faster to search (not often used except
|
||
internally).</p>
|
||
</dd>
|
||
<dt class="field-odd">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>RuntimeError</strong> – If trying to pass a non-iterable as argument.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>The indata tuple order matters, so if you want a lockstring
|
||
but no category, set the category to <strong>None</strong>. This method
|
||
does not have the ability to check editing permissions like
|
||
normal .add does, and is mainly used internally. It does not
|
||
use the normal self.add but apply the Attributes directly
|
||
to the database.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.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>, <em class="sig-param"><span class="n"><span class="pre">accessing_obj</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_access</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/typeclasses/attributes.html#AttributeHandler.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.clear" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove all Attributes on this 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>category</strong> (<em>str</em><em>, </em><em>optional</em>) – If given, clear only Attributes
|
||
of this category.</p></li>
|
||
<li><p><strong>accessing_obj</strong> (<em>object</em><em>, </em><em>optional</em>) – If given, check the
|
||
<strong>attredit</strong> lock on each Attribute before continuing.</p></li>
|
||
<li><p><strong>default_access</strong> (<em>bool</em><em>, </em><em>optional</em>) – Use this permission as
|
||
fallback if <strong>access_obj</strong> is given but there is no lock of
|
||
type <strong>attredit</strong> on the Attribute in question.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.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_obj</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">strattr</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>, <em class="sig-param"><span class="n"><span class="pre">accessing_obj</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_access</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">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/attributes.html#AttributeHandler.get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.get" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Get the Attribute.</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 attribute identifier or
|
||
multiple attributes to get. if a list of keys, the
|
||
method will return a list.</p></li>
|
||
<li><p><strong>default</strong> (<em>any</em><em>, </em><em>optional</em>) – The value to return if an
|
||
Attribute was not defined. If set, it will be returned in
|
||
a one-item list.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – the category within which to
|
||
retrieve attribute(s).</p></li>
|
||
<li><p><strong>return_obj</strong> (<em>bool</em><em>, </em><em>optional</em>) – If set, the return is not the value of the
|
||
Attribute but the Attribute object itself.</p></li>
|
||
<li><p><strong>strattr</strong> (<em>bool</em><em>, </em><em>optional</em>) – Return the <strong>strvalue</strong> field of
|
||
the Attribute rather than the usual <strong>value</strong>, this is a
|
||
string-only value for quick database searches.</p></li>
|
||
<li><p><strong>raise_exception</strong> (<em>bool</em><em>, </em><em>optional</em>) – When an Attribute is not
|
||
found, the return from this is usually <strong>default</strong>. If this
|
||
is set, an exception is raised instead.</p></li>
|
||
<li><p><strong>accessing_obj</strong> (<em>object</em><em>, </em><em>optional</em>) – If set, an <strong>attrread</strong>
|
||
permission lock will be checked before returning each
|
||
looked-after Attribute.</p></li>
|
||
<li><p><strong>default_access</strong> (<em>bool</em><em>, </em><em>optional</em>) – If no <strong>attrread</strong> lock is set on
|
||
object, this determines if the lock should then be passed or not.</p></li>
|
||
<li><p><strong>return_list</strong> (<em>bool</em><em>, </em><em>optional</em>) – Always return a list, also if there is only
|
||
one or zero matches found.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>result (any or list)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>One or more matches for keys and/or</dt><dd><p>categories. Each match will be the value of the found Attribute(s)
|
||
unless <strong>return_obj</strong> is True, at which point it will be the
|
||
attribute object itself or None. If <strong>return_list</strong> is True, this
|
||
will always be a list, regardless of the number of elements.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>AttributeError</strong> – If <strong>raise_exception</strong> is set and no matching Attribute
|
||
was found matching <strong>key</strong>.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.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><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#AttributeHandler.has"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.has" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Checks if the given Attribute (or list of Attributes) 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 Attribute key or keys to check for.
|
||
If <strong>None</strong>, search by category.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em> or </em><em>None</em>) – Limit the check to Attributes 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_attribute (bool or list)</em> –</p>
|
||
<dl class="simple">
|
||
<dt>If the Attribute exists on</dt><dd><p>this object or not. If <strong>key</strong> was given as an iterable then
|
||
the return is a list of booleans.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.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>, <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>, <em class="sig-param"><span class="n"><span class="pre">accessing_obj</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_access</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/typeclasses/attributes.html#AttributeHandler.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.remove" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Remove attribute or a list of attributes from 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>list</em><em>, </em><em>optional</em>) – An Attribute key to remove or a list of keys. If
|
||
multiple keys, they must all be of the same <strong>category</strong>. If None and
|
||
category is not given, remove all Attributes.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) – The category within which to
|
||
remove the Attribute.</p></li>
|
||
<li><p><strong>raise_exception</strong> (<em>bool</em><em>, </em><em>optional</em>) – If set, not finding the
|
||
Attribute to delete will raise an exception instead of
|
||
just quietly failing.</p></li>
|
||
<li><p><strong>accessing_obj</strong> (<em>object</em><em>, </em><em>optional</em>) – An object to check
|
||
against the <strong>attredit</strong> lock. If not given, the check will
|
||
be skipped.</p></li>
|
||
<li><p><strong>default_access</strong> (<em>bool</em><em>, </em><em>optional</em>) – The fallback access to
|
||
grant if <strong>accessing_obj</strong> is given but there is no
|
||
<strong>attredit</strong> lock set on the Attribute in question.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><strong>AttributeError</strong> – If <strong>raise_exception</strong> is set and no matching Attribute
|
||
was found matching <strong>key</strong>.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>If neither key nor category is given, this acts as clear().</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeHandler.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/attributes.html#AttributeHandler.reset_cache"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeHandler.reset_cache" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeProperty">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">AttributeProperty</span></span><span class="sig-paren">(</span><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">strattr</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">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">autocreate</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/typeclasses/attributes.html#AttributeProperty"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeProperty" 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>AttributeProperty.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeProperty.__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">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">strattr</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">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">autocreate</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/typeclasses/attributes.html#AttributeProperty.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeProperty.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Allows for specifying Attributes as Django-like ‘fields’ on the class level. Note that while
|
||
one can set a lock on the Attribute, there is no way to <em>check</em> said lock when accessing via
|
||
the property - use the full <strong>AttributeHandler</strong> if you need to do access checks. Note however
|
||
that if you use the full <strong>AttributeHandler</strong> to access this Attribute, the <strong>at_get/at_set</strong>
|
||
methods on this class will _not_ fire (because you are bypassing the <strong>AttributeProperty</strong>
|
||
entirely in that case).</p>
|
||
<p>Initialize an Attribute as a property descriptor.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>default</strong> (<em>any</em>) – A default value if the attr is not set. If a callable, this will be
|
||
run without any arguments and is expected to return the default value.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em>) – The attribute’s category. If unset, use class default.</p></li>
|
||
<li><p><strong>strattr</strong> (<em>bool</em>) – If set, this Attribute <em>must</em> be a simple string, and will be
|
||
stored more efficiently.</p></li>
|
||
<li><p><strong>lockstring</strong> (<em>str</em>) – This is not itself useful with the property, but only if
|
||
using the full AttributeHandler.get(accessing_obj=…) to access the
|
||
Attribute.</p></li>
|
||
<li><p><strong>autocreate</strong> (<em>bool</em>) – True by default; this means Evennia makes sure to create a new
|
||
copy of the Attribute (with the default value) whenever a new object with this
|
||
property is created. If <strong>False</strong>, no Attribute will be created until the property
|
||
is explicitly assigned a value. This makes it more efficient while it retains
|
||
its default (there’s no db access), but without an actual Attribute generated,
|
||
one cannot access it via .db, the AttributeHandler or see it with <strong>examine</strong>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<p>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">Character</span><span class="p">(</span><span class="n">DefaultCharacter</span><span class="p">):</span>
|
||
<span class="n">foo</span> <span class="o">=</span> <span class="n">AttributeProperty</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="s2">"Bar"</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeProperty.at_get">
|
||
<span class="sig-name descname"><span class="pre">at_get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <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/attributes.html#AttributeProperty.at_get"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeProperty.at_get" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The value returned from the Attribute is passed through this method. It can be used
|
||
to react to the retrieval or modify the result in some way.</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>value</strong> (<em>any</em>) – Value returned from the Attribute.</p></li>
|
||
<li><p><strong>obj</strong> (<em>object</em>) – Object the attribute is attached to</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>any</em> – The value to return to the caller.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This is will only fire if you actually get the Attribute via this <strong>AttributeProperty</strong>.
|
||
That is, if you instead get it via the <strong>AttributeHandler</strong> (or via <strong>.db</strong>), you are
|
||
bypassing this <strong>AttributeProperty</strong> entirely and this method is never reached.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeProperty.at_set">
|
||
<span class="sig-name descname"><span class="pre">at_set</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <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/attributes.html#AttributeProperty.at_set"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.AttributeProperty.at_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The value to set is passed through the method. It can be used to customize/validate
|
||
the input in a custom child class.</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>value</strong> (<em>any</em>) – The value about to the stored in this Attribute.</p></li>
|
||
<li><p><strong>obj</strong> (<em>object</em>) – Object the attribute is attached to</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>any</em> – The value to store.</p>
|
||
</dd>
|
||
<dt class="field-odd">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>AttributeError</strong> – If the value is invalid to store.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This is will only fire if you actually set the Attribute via this <strong>AttributeProperty</strong>.
|
||
That is, if you instead set it via the <strong>AttributeHandler</strong> (or via <strong>.db</strong>), you are
|
||
bypassing this <strong>AttributeProperty</strong> entirely and this method is never reached.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeProperty.attrhandler_name">
|
||
<span class="sig-name descname"><span class="pre">attrhandler_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">'attributes'</span></em><a class="headerlink" href="#evennia.typeclasses.models.AttributeProperty.attrhandler_name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.AttributeProperty.cached_default_name_template">
|
||
<span class="sig-name descname"><span class="pre">cached_default_name_template</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'_property_attribute_default_{key}'</span></em><a class="headerlink" href="#evennia.typeclasses.models.AttributeProperty.cached_default_name_template" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">ContentType</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">app_label</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/contrib/contenttypes/models.html#ContentType"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ContentType" 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>
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.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.typeclasses.models.ContentType.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.typeclasses.models.ContentType.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.typeclasses.models.ContentType.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.typeclasses.models.ContentType.app_label">
|
||
<span class="sig-name descname"><span class="pre">app_label</span></span><a class="headerlink" href="#evennia.typeclasses.models.ContentType.app_label" 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.typeclasses.models.ContentType.app_labeled_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">app_labeled_name</span></span><a class="headerlink" href="#evennia.typeclasses.models.ContentType.app_labeled_name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.get_all_objects_for_this_type">
|
||
<span class="sig-name descname"><span class="pre">get_all_objects_for_this_type</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">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/contrib/contenttypes/models.html#ContentType.get_all_objects_for_this_type"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ContentType.get_all_objects_for_this_type" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return all objects of this type for the keyword arguments given.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.get_object_for_this_type">
|
||
<span class="sig-name descname"><span class="pre">get_object_for_this_type</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">using</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="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/django/contrib/contenttypes/models.html#ContentType.get_object_for_this_type"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ContentType.get_object_for_this_type" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return an object of this type for the keyword arguments given.
|
||
Basically, this is a proxy around this object_type’s get_object() model
|
||
method. The ObjectNotExist exception, if thrown, will not be caught,
|
||
so code that calls this method should catch it.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.id">
|
||
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.typeclasses.models.ContentType.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.typeclasses.models.ContentType.logentry_set">
|
||
<span class="sig-name descname"><span class="pre">logentry_set</span></span><a class="headerlink" href="#evennia.typeclasses.models.ContentType.logentry_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the reverse side of a
|
||
many-to-one 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">Child</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">parent</span> <span class="o">=</span> <span class="n">ForeignKey</span><span class="p">(</span><span class="n">Parent</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'children'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Parent.children**</strong> is a <strong>**ReverseManyToOneDescriptor**</strong> instance.</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.typeclasses.models.ContentType.model">
|
||
<span class="sig-name descname"><span class="pre">model</span></span><a class="headerlink" href="#evennia.typeclasses.models.ContentType.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 method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.model_class">
|
||
<span class="sig-name descname"><span class="pre">model_class</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/contrib/contenttypes/models.html#ContentType.model_class"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ContentType.model_class" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return the model class for this type of content.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.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.typeclasses.models.ContentType.name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.natural_key">
|
||
<span class="sig-name descname"><span class="pre">natural_key</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/contrib/contenttypes/models.html#ContentType.natural_key"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ContentType.natural_key" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.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.contrib.contenttypes.models.ContentTypeManager</span> <span class="pre">object></span></em><a class="headerlink" href="#evennia.typeclasses.models.ContentType.objects" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ContentType.permission_set">
|
||
<span class="sig-name descname"><span class="pre">permission_set</span></span><a class="headerlink" href="#evennia.typeclasses.models.ContentType.permission_set" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Accessor to the related objects manager on the reverse side of a
|
||
many-to-one 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">Child</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
|
||
<span class="n">parent</span> <span class="o">=</span> <span class="n">ForeignKey</span><span class="p">(</span><span class="n">Parent</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'children'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><strong>**Parent.children**</strong> is a <strong>**ReverseManyToOneDescriptor**</strong> instance.</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.typeclasses.models.DbHolder">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">DbHolder</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">manager_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'attributes'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#DbHolder"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.DbHolder" 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>Holder for allowing property access of attributes</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.DbHolder.__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>, <em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">manager_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'attributes'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#DbHolder.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.DbHolder.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py property">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.DbHolder.all">
|
||
<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">all</span></span><a class="headerlink" href="#evennia.typeclasses.models.DbHolder.all" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.DbHolder.get_all">
|
||
<span class="sig-name descname"><span class="pre">get_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#DbHolder.get_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.DbHolder.get_all" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">InMemoryAttributeBackend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attrtype</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttributeBackend" title="evennia.typeclasses.attributes.IAttributeBackend"><code class="xref py py-class docutils literal notranslate"><span class="pre">IAttributeBackend</span></code></a></p>
|
||
<p>This Backend for Attributes stores NOTHING in the database. Everything is kept in memory, and
|
||
normally lost on a crash, reload, shared memory flush, etc. It generates IDs for the Attributes
|
||
it manages, but these are of little importance beyond sorting and satisfying the caching logic
|
||
to know an Attribute hasn’t been deleted out from under the cache’s nose.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.__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">handler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attrtype</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.do_batch_finish">
|
||
<span class="sig-name descname"><span class="pre">do_batch_finish</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attr_objs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.do_batch_finish"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_batch_finish" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Nothing to do here for In-Memory.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>attr_objs</strong> (<em>list</em><em> of </em><a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttribute" title="evennia.typeclasses.attributes.IAttribute"><em>IAttribute</em></a>) – The Attributes created/updated thus far.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.do_batch_update_attribute">
|
||
<span class="sig-name descname"><span class="pre">do_batch_update_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attr_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lock_storage</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new_value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strvalue</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.do_batch_update_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_batch_update_attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>No need to bother saving anything. Just set some values.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.do_create_attribute">
|
||
<span class="sig-name descname"><span class="pre">do_create_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</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">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strvalue</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.do_create_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_create_attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>See parent class.</p>
|
||
<p>strvalue has no meaning for InMemory attributes.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.do_delete_attribute">
|
||
<span class="sig-name descname"><span class="pre">do_delete_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attr</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.do_delete_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_delete_attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Removes the Attribute from local storage. Once it’s out of the cache, garbage collection
|
||
will handle the rest.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>attr</strong> (<a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttribute" title="evennia.typeclasses.attributes.IAttribute"><em>IAttribute</em></a>) – The attribute to delete.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.do_update_attribute">
|
||
<span class="sig-name descname"><span class="pre">do_update_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strvalue</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.do_update_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_update_attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Simply sets a new Value to an Attribute.</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>attr</strong> (<a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttribute" title="evennia.typeclasses.attributes.IAttribute"><em>IAttribute</em></a>) – The Attribute being changed.</p></li>
|
||
<li><p><strong>value</strong> (<em>obj</em>) – The Value for the Attribute.</p></li>
|
||
<li><p><strong>strvalue</strong> (<em>bool</em>) – If True, <strong>value</strong> is expected to be a string.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.query_all">
|
||
<span class="sig-name descname"><span class="pre">query_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.query_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.query_all" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Fetch all Attributes from this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>attrlist (list)</em> – A list of Attribute objects.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.query_category">
|
||
<span class="sig-name descname"><span class="pre">query_category</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">category</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.query_category"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.query_category" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns every matching Attribute as a list, given a category.</p>
|
||
<p>This method calls up whatever storage the backend uses.</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> or </em><em>None</em>) – The category to query.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>attrs (list)</em> – The discovered Attributes.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.InMemoryAttributeBackend.query_key">
|
||
<span class="sig-name descname"><span class="pre">query_key</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#InMemoryAttributeBackend.query_key"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.InMemoryAttributeBackend.query_key" title="Link to this definition">¶</a></dt>
|
||
<dd><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>) – The key of the Attribute being searched for.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em> or </em><em>None</em>) – The category of the desired Attribute.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>attribute (IAttribute)</em> – A single Attribute.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.ModelAttributeBackend">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">ModelAttributeBackend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attrtype</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttributeBackend" title="evennia.typeclasses.attributes.IAttributeBackend"><code class="xref py py-class docutils literal notranslate"><span class="pre">IAttributeBackend</span></code></a></p>
|
||
<p>Uses Django models for storing Attributes.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.__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">handler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attrtype</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.do_batch_finish">
|
||
<span class="sig-name descname"><span class="pre">do_batch_finish</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attr_objs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.do_batch_finish"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.do_batch_finish" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Called after batch_add completed. Used for handling database operations
|
||
and/or caching complications.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>attr_objs</strong> (<em>list</em><em> of </em><a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttribute" title="evennia.typeclasses.attributes.IAttribute"><em>IAttribute</em></a>) – The Attributes created/updated thus far.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.do_batch_update_attribute">
|
||
<span class="sig-name descname"><span class="pre">do_batch_update_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attr_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lock_storage</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">new_value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strvalue</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.do_batch_update_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.do_batch_update_attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Called opnly by batch add. For the database backend, this is a method
|
||
of updating that can alter category and lock-storage.</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>attr_obj</strong> (<a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttribute" title="evennia.typeclasses.attributes.IAttribute"><em>IAttribute</em></a>) – The Attribute being altered.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em> or </em><em>None</em>) – The attribute’s (new) category.</p></li>
|
||
<li><p><strong>lock_storage</strong> (<em>str</em>) – The attribute’s new locks.</p></li>
|
||
<li><p><strong>new_value</strong> (<em>obj</em>) – The Attribute’s new value.</p></li>
|
||
<li><p><strong>strvalue</strong> (<em>bool</em>) – Signifies if this is a strvalue Attribute. Value MUST be a string or
|
||
this will lead to Trouble. Ignored for InMemory attributes.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.do_create_attribute">
|
||
<span class="sig-name descname"><span class="pre">do_create_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</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">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strvalue</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.do_create_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.do_create_attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Does the hard work of actually creating Attributes, whatever is needed.</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>) – The Attribute’s key.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em> or </em><em>None</em>) – The Attribute’s category, or None</p></li>
|
||
<li><p><strong>lockstring</strong> (<em>str</em>) – Any locks for the Attribute.</p></li>
|
||
<li><p><strong>value</strong> (<em>obj</em>) – The Value of the Attribute.</p></li>
|
||
<li><p><strong>strvalue</strong> (<em>bool</em>) – Signifies if this is a strvalue Attribute. Value MUST be a string or
|
||
this will lead to Trouble. Ignored for InMemory attributes.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>attr (IAttribute)</em> – The new Attribute.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.do_delete_attribute">
|
||
<span class="sig-name descname"><span class="pre">do_delete_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attr</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.do_delete_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.do_delete_attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Does the hard work of actually deleting things.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>attr</strong> (<a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttribute" title="evennia.typeclasses.attributes.IAttribute"><em>IAttribute</em></a>) – The attribute to delete.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.do_update_attribute">
|
||
<span class="sig-name descname"><span class="pre">do_update_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">attr</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strvalue</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.do_update_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.do_update_attribute" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Simply sets a new Value to an Attribute.</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>attr</strong> (<a class="reference internal" href="evennia.typeclasses.attributes.html#evennia.typeclasses.attributes.IAttribute" title="evennia.typeclasses.attributes.IAttribute"><em>IAttribute</em></a>) – The Attribute being changed.</p></li>
|
||
<li><p><strong>value</strong> (<em>obj</em>) – The Value for the Attribute.</p></li>
|
||
<li><p><strong>strvalue</strong> (<em>bool</em>) – If True, <strong>value</strong> is expected to be a string.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.query_all">
|
||
<span class="sig-name descname"><span class="pre">query_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.query_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.query_all" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Fetch all Attributes from this object.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><em>attrlist (list)</em> – A list of Attribute objects.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.query_category">
|
||
<span class="sig-name descname"><span class="pre">query_category</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">category</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.query_category"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.query_category" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Returns every matching Attribute as a list, given a category.</p>
|
||
<p>This method calls up whatever storage the backend uses.</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> or </em><em>None</em>) – The category to query.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>attrs (list)</em> – The discovered Attributes.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelAttributeBackend.query_key">
|
||
<span class="sig-name descname"><span class="pre">query_key</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/attributes.html#ModelAttributeBackend.query_key"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelAttributeBackend.query_key" title="Link to this definition">¶</a></dt>
|
||
<dd><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>) – The key of the Attribute being searched for.</p></li>
|
||
<li><p><strong>category</strong> (<em>str</em><em> or </em><em>None</em>) – The category of the desired Attribute.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>attribute (IAttribute)</em> – A single Attribute.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelBase">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">ModelBase</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bases</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attrs</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/django/db/models/base.html#ModelBase"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelBase" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">type</span></code></p>
|
||
<p>Metaclass for all models.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ModelBase.add_to_class">
|
||
<span class="sig-name descname"><span class="pre">add_to_class</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/db/models/base.html#ModelBase.add_to_class"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ModelBase.add_to_class" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py exception">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ObjectDoesNotExist">
|
||
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">ObjectDoesNotExist</span></span><a class="reference internal" href="../_modules/django/core/exceptions.html#ObjectDoesNotExist"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.ObjectDoesNotExist" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
|
||
<p>The requested object does not exist</p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.ObjectDoesNotExist.silent_variable_failure">
|
||
<span class="sig-name descname"><span class="pre">silent_variable_failure</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#evennia.typeclasses.models.ObjectDoesNotExist.silent_variable_failure" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.PermissionHandler">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">PermissionHandler</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#PermissionHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.PermissionHandler" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.tags.html#evennia.typeclasses.tags.TagHandler" title="evennia.typeclasses.tags.TagHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">TagHandler</span></code></a></p>
|
||
<p>A handler for the Permission Tag type.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.PermissionHandler.check">
|
||
<span class="sig-name descname"><span class="pre">check</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">permissions</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">require_all</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#PermissionHandler.check"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.PermissionHandler.check" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Straight-up check the provided permission against this handler. The check will pass if</p>
|
||
<ul class="simple">
|
||
<li><p>any/all given permission exists on the handler (depending on if <strong>require_all</strong> is set).</p></li>
|
||
<li><p>If handler sits on puppeted object and this is a hierarachical perm, the puppeting
|
||
Account’s permission will also be included in the check, prioritizing the Account’s perm
|
||
(this avoids escalation exploits by puppeting a too-high prio character)</p></li>
|
||
<li><p>a permission is also considered to exist on the handler, if it is <em>lower</em> than
|
||
a permission on the handler and this is a ‘hierarchical’ permission given
|
||
in <strong>settings.PERMISSION_HIERARCHY</strong>. Example: If the ‘Developer’ hierarchical
|
||
perm perm is set on the handler, and we check for the ‘Builder’ perm, the
|
||
check will pass.</p></li>
|
||
</ul>
|
||
<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>*permissions</strong> (<em>str</em>) – Any number of permissions to check. By default,
|
||
the permission is passed if any of these (or higher, if a
|
||
hierarchical permission defined in settings.PERMISSION_HIERARCHY)
|
||
exists in the handler. Permissions are not case-sensitive.</p></li>
|
||
<li><p><strong>require_all</strong> (<em>bool</em>) – If set, <em>all</em> provided permissions much pass
|
||
the check for the entire check to pass. By default only one
|
||
needs to pass.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>bool</em> – If the provided permission(s) pass the check on this handler.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Example</p>
|
||
<dl class="simple">
|
||
<dt>::</dt><dd><p>can_enter = obj.permissions.check(“Blacksmith”, “Builder”)</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>This works the same way as the <strong>perms</strong> lockfunc and could be
|
||
replicated with a lock check against the lockstring</p>
|
||
<blockquote>
|
||
<div><p>“locktype: perm(perm1) OR perm(perm2) OR …”</p>
|
||
</div></blockquote>
|
||
<p>(using AND for the <strong>require_all</strong> condition).</p>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.SharedMemoryModel.objects">
|
||
<span class="sig-name descname"><span class="pre">objects</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.SharedMemoryModelBase">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">SharedMemoryModelBase</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bases</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attrs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModelBase"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.SharedMemoryModelBase" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="#evennia.typeclasses.models.ModelBase" title="django.db.models.base.ModelBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">ModelBase</span></code></a></p>
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.Tag.accountdb_set">
|
||
<span class="sig-name descname"><span class="pre">accountdb_set</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.channeldb_set">
|
||
<span class="sig-name descname"><span class="pre">channeldb_set</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.db_category">
|
||
<span class="sig-name descname"><span class="pre">db_category</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.db_data">
|
||
<span class="sig-name descname"><span class="pre">db_data</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.db_key">
|
||
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.db_model">
|
||
<span class="sig-name descname"><span class="pre">db_model</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.db_tagtype">
|
||
<span class="sig-name descname"><span class="pre">db_tagtype</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.helpentry_set">
|
||
<span class="sig-name descname"><span class="pre">helpentry_set</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.id">
|
||
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.msg_set">
|
||
<span class="sig-name descname"><span class="pre">msg_set</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.Tag.objectdb_set">
|
||
<span class="sig-name descname"><span class="pre">objectdb_set</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.Tag.scriptdb_set">
|
||
<span class="sig-name descname"><span class="pre">scriptdb_set</span></span><a class="headerlink" href="#evennia.typeclasses.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.typeclasses.models.TagCategoryProperty">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">TagCategoryProperty</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">default_tags</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagCategoryProperty"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.TagCategoryProperty" 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>Tag Category Property.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.TagCategoryProperty.__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">default_tags</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/tags.html#TagCategoryProperty.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.TagCategoryProperty.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Assign a property for a Tag Category, with any number of Tag keys.
|
||
This is often more useful than the <strong>TagProperty</strong> since it’s common to want to check which
|
||
tags of a particular category the object is a member of.</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>str</em><em> or </em><em>callable</em>) – Tag keys to assign to this property, using the category given
|
||
by the name of the property. Note that, if these tags are always set on the object,
|
||
if they are removed by some other means, they will be re-added when this property
|
||
is accessed. Furthermore, changing this list after the object was created, will
|
||
not remove any old tags (there is no way for the property to know if the
|
||
new list is new or not). If a callable, it will be called without arguments to
|
||
return the tag key. It is not possible to set tag <strong>data</strong> this way (use the
|
||
Taghandler directly for that). Tag keys are not case sensitive.</p>
|
||
</dd>
|
||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><strong>ValueError</strong> – If the input is not a valid tag key or tuple.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>It is not possible to set Tags with a <strong>None</strong> category using a <strong>TagCategoryProperty</strong> -
|
||
use <strong>obj.tags.add()</strong> instead.</p>
|
||
<p>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">RogueCharacter</span><span class="p">(</span><span class="n">DefaultCharacter</span><span class="p">):</span>
|
||
<span class="n">guild</span> <span class="o">=</span> <span class="n">TagCategoryProperty</span><span class="p">(</span><span class="s2">"thieves_guild"</span><span class="p">,</span> <span class="s2">"merchant_guild"</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.TagCategoryProperty.taghandler_name">
|
||
<span class="sig-name descname"><span class="pre">taghandler_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">'tags'</span></em><a class="headerlink" href="#evennia.typeclasses.models.TagCategoryProperty.taghandler_name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.TagProperty">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">TagProperty</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>, <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#TagProperty"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.TagProperty" 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>Tag Property.</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.TagProperty.__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">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#TagProperty.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.TagProperty.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Tag property descriptor. Allows for setting tags on an object as Django-like ‘fields’
|
||
on the class level. Since Tags are almost always used for querying, Tags are always
|
||
created/assigned along with the object. Make sure the property/tagname does not collide
|
||
with an existing method/property on the class. If it does, you must use tags.add()
|
||
instead.</p>
|
||
<p>Note that while you _can_ check e.g. <strong>obj.tagname,this will give an AttributeError
|
||
if the Tag is not set. Most often you want to use **obj.tags.get(“tagname”)</strong> to check
|
||
if a tag is set on an object.</p>
|
||
<p>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">Character</span><span class="p">(</span><span class="n">DefaultCharacter</span><span class="p">):</span>
|
||
<span class="n">mytag</span> <span class="o">=</span> <span class="n">TagProperty</span><span class="p">()</span> <span class="c1"># category=None</span>
|
||
<span class="n">mytag2</span> <span class="o">=</span> <span class="n">TagProperty</span><span class="p">(</span><span class="n">category</span><span class="o">=</span><span class="s2">"tagcategory"</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.TagProperty.taghandler_name">
|
||
<span class="sig-name descname"><span class="pre">taghandler_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">'tags'</span></em><a class="headerlink" href="#evennia.typeclasses.models.TagProperty.taghandler_name" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.TypeclassBase">
|
||
<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.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">TypeclassBase</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bases</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">attrs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/typeclasses/models.html#TypeclassBase"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.TypeclassBase" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.utils.idmapper.models.html#evennia.utils.idmapper.models.SharedMemoryModelBase" title="evennia.utils.idmapper.models.SharedMemoryModelBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">SharedMemoryModelBase</span></code></a></p>
|
||
<p>Metaclass which should be set for the root of model proxies
|
||
that don’t define any new fields, like Object, Script etc. This
|
||
is the basis for the typeclassing system.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.call_at_first_save">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">call_at_first_save</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sender</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">instance</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">created</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#call_at_first_save"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.call_at_first_save" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Receives a signal just after the object is saved.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.class_from_module">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">class_from_module</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">defaultpaths</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">fallback</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#class_from_module"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.class_from_module" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return a class from a module, given the class’ full python path. This is
|
||
primarily used to convert db_typeclass_path:s to classes.</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>path</strong> (<em>str</em>) – Full Python dot-path to module.</p></li>
|
||
<li><p><strong>defaultpaths</strong> (<em>iterable</em><em>, </em><em>optional</em>) – If a direct import from <strong>path</strong> fails,
|
||
try subsequent imports by prepending those paths to <strong>path</strong>.</p></li>
|
||
<li><p><strong>fallback</strong> (<em>str</em>) – If all other attempts fail, use this path as a fallback.
|
||
This is intended as a last-resort. In the example of Evennia
|
||
loading, this would be a path to a default parent class in the
|
||
evennia repo itself.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>class (Class)</em> – An uninstantiated class recovered from path.</p>
|
||
</dd>
|
||
<dt class="field-odd">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>ImportError</strong> – If all loading failed.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.inherits_from">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">inherits_from</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#inherits_from"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.inherits_from" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Takes an object and tries to determine if it inherits at <em>any</em>
|
||
distance from parent.</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>any</em>) – Object to analyze. This may be either an instance or
|
||
a class.</p></li>
|
||
<li><p><strong>parent</strong> (<em>any</em>) – Can be either an instance, a class or the python
|
||
path to the class.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>inherits_from (bool)</em> – If <strong>parent</strong> is a parent to <strong>obj</strong> or not.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>What differentiates this function from Python’s <strong>isinstance()</strong> is the
|
||
flexibility in the types allowed for the object and parent being compared.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.is_iter">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">is_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#is_iter"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.is_iter" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Checks if an object behaves iterably.</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>) – Entity to check for iterability.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><em>is_iterable (bool)</em> – If <strong>obj</strong> is iterable or not.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>Strings are <em>not</em> accepted as iterable (although they are
|
||
actually iterable), since string iterations are usually not
|
||
what we want to do with a string.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.log_trace">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">log_trace</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</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="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/logger.html#log_trace"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.log_trace" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Log a traceback to the log. This should be called from within an
|
||
exception.</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>msg</strong> (<em>str</em><em>, </em><em>optional</em>) – Adds an extra line with added info
|
||
at the end of the traceback in the log.</p></li>
|
||
<li><p><strong>**kwargs</strong> – If given, The <strong>msg</strong> is parsed as a format string with <strong>{..}</strong>
|
||
formatting markers that should match the keywords.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.remove_attributes_on_delete">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">remove_attributes_on_delete</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sender</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">instance</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#remove_attributes_on_delete"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.remove_attributes_on_delete" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Wipe object’s Attributes when it’s deleted</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.reverse">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">reverse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">viewname</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">urlconf</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">args</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">kwargs</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">current_app</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="keyword-only-separator o"><abbr title="Keyword-only parameters separator (PEP 3102)"><span class="pre">*</span></abbr></span></em>, <em class="sig-param"><span class="n"><span class="pre">query</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">fragment</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/django/urls/base.html#reverse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.reverse" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.slugify">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">slugify</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allow_unicode</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/django/utils/text.html#slugify"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.slugify" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Convert to ASCII if ‘allow_unicode’ is False. Convert spaces or repeated
|
||
dashes to single dashes. Remove characters that aren’t alphanumerics,
|
||
underscores, or hyphens. Convert to lowercase. Also strip leading and
|
||
trailing whitespace, dashes, and underscores.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.typeclasses.models.smart_str">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.typeclasses.models.</span></span><span class="sig-name descname"><span class="pre">smart_str</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">s</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">encoding</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'utf-8'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strings_only</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">errors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strict'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/utils/encoding.html#smart_str"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.typeclasses.models.smart_str" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Return a string representing ‘s’. Treat bytestrings using the ‘encoding’
|
||
codec.</p>
|
||
<p>If strings_only is True, don’t convert (some) non-string-like objects.</p>
|
||
</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.typeclasses.models</a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject"><code class="docutils literal notranslate"><span class="pre">TypedObject</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject.objects"><code class="docutils literal notranslate"><span class="pre">TypedObject.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.__init__"><code class="docutils literal notranslate"><span class="pre">TypedObject.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.attributes"><code class="docutils literal notranslate"><span class="pre">TypedObject.attributes</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.locks"><code class="docutils literal notranslate"><span class="pre">TypedObject.locks</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.tags"><code class="docutils literal notranslate"><span class="pre">TypedObject.tags</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.aliases"><code class="docutils literal notranslate"><span class="pre">TypedObject.aliases</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.permissions"><code class="docutils literal notranslate"><span class="pre">TypedObject.permissions</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.nattributes"><code class="docutils literal notranslate"><span class="pre">TypedObject.nattributes</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.Meta"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.Meta.verbose_name"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta.verbose_name</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.Meta.ordering"><code class="docutils literal notranslate"><span class="pre">TypedObject.Meta.ordering</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.name"><code class="docutils literal notranslate"><span class="pre">TypedObject.name</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.key"><code class="docutils literal notranslate"><span class="pre">TypedObject.key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.dbid"><code class="docutils literal notranslate"><span class="pre">TypedObject.dbid</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.dbref"><code class="docutils literal notranslate"><span class="pre">TypedObject.dbref</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject.search"><code class="docutils literal notranslate"><span class="pre">TypedObject.search()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject.access"><code class="docutils literal notranslate"><span class="pre">TypedObject.access()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.delete"><code class="docutils literal notranslate"><span class="pre">TypedObject.delete()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.db"><code class="docutils literal notranslate"><span class="pre">TypedObject.db</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypedObject.ndb"><code class="docutils literal notranslate"><span class="pre">TypedObject.ndb</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject.path"><code class="docutils literal notranslate"><span class="pre">TypedObject.path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.typename"><code class="docutils literal notranslate"><span class="pre">TypedObject.typename</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.models.TypedObject.web_get_update_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.web_get_update_url()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TypedObject.get_absolute_url"><code class="docutils literal notranslate"><span class="pre">TypedObject.get_absolute_url()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AliasHandler"><code class="docutils literal notranslate"><span class="pre">AliasHandler</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute"><code class="docutils literal notranslate"><span class="pre">Attribute</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">Attribute.DoesNotExist</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">Attribute.MultipleObjectsReturned</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.accountdb_set"><code class="docutils literal notranslate"><span class="pre">Attribute.accountdb_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.attrtype"><code class="docutils literal notranslate"><span class="pre">Attribute.attrtype</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.category"><code class="docutils literal notranslate"><span class="pre">Attribute.category</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.channeldb_set"><code class="docutils literal notranslate"><span class="pre">Attribute.channeldb_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.date_created"><code class="docutils literal notranslate"><span class="pre">Attribute.date_created</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.db_attrtype"><code class="docutils literal notranslate"><span class="pre">Attribute.db_attrtype</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.db_category"><code class="docutils literal notranslate"><span class="pre">Attribute.db_category</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.db_date_created"><code class="docutils literal notranslate"><span class="pre">Attribute.db_date_created</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.db_key"><code class="docutils literal notranslate"><span class="pre">Attribute.db_key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.db_lock_storage"><code class="docutils literal notranslate"><span class="pre">Attribute.db_lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.db_model"><code class="docutils literal notranslate"><span class="pre">Attribute.db_model</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.db_strvalue"><code class="docutils literal notranslate"><span class="pre">Attribute.db_strvalue</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.db_value"><code class="docutils literal notranslate"><span class="pre">Attribute.db_value</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.get_next_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">Attribute.get_next_by_db_date_created()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.get_previous_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">Attribute.get_previous_by_db_date_created()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.id"><code class="docutils literal notranslate"><span class="pre">Attribute.id</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.key"><code class="docutils literal notranslate"><span class="pre">Attribute.key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.lock_storage"><code class="docutils literal notranslate"><span class="pre">Attribute.lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.model"><code class="docutils literal notranslate"><span class="pre">Attribute.model</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.objectdb_set"><code class="docutils literal notranslate"><span class="pre">Attribute.objectdb_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.path"><code class="docutils literal notranslate"><span class="pre">Attribute.path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.scriptdb_set"><code class="docutils literal notranslate"><span class="pre">Attribute.scriptdb_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.strvalue"><code class="docutils literal notranslate"><span class="pre">Attribute.strvalue</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.typename"><code class="docutils literal notranslate"><span class="pre">Attribute.typename</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Attribute.value"><code class="docutils literal notranslate"><span class="pre">Attribute.value</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler"><code class="docutils literal notranslate"><span class="pre">AttributeHandler</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.__init__"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.add"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.add()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.all"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.all()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.batch_add"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.batch_add()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.clear"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.clear()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.get"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.get()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.has"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.has()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.remove"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.remove()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeHandler.reset_cache"><code class="docutils literal notranslate"><span class="pre">AttributeHandler.reset_cache()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeProperty"><code class="docutils literal notranslate"><span class="pre">AttributeProperty</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeProperty.__init__"><code class="docutils literal notranslate"><span class="pre">AttributeProperty.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeProperty.at_get"><code class="docutils literal notranslate"><span class="pre">AttributeProperty.at_get()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeProperty.at_set"><code class="docutils literal notranslate"><span class="pre">AttributeProperty.at_set()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeProperty.attrhandler_name"><code class="docutils literal notranslate"><span class="pre">AttributeProperty.attrhandler_name</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.AttributeProperty.cached_default_name_template"><code class="docutils literal notranslate"><span class="pre">AttributeProperty.cached_default_name_template</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType"><code class="docutils literal notranslate"><span class="pre">ContentType</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">ContentType.DoesNotExist</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">ContentType.MultipleObjectsReturned</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.app_label"><code class="docutils literal notranslate"><span class="pre">ContentType.app_label</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.app_labeled_name"><code class="docutils literal notranslate"><span class="pre">ContentType.app_labeled_name</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.get_all_objects_for_this_type"><code class="docutils literal notranslate"><span class="pre">ContentType.get_all_objects_for_this_type()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.get_object_for_this_type"><code class="docutils literal notranslate"><span class="pre">ContentType.get_object_for_this_type()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.id"><code class="docutils literal notranslate"><span class="pre">ContentType.id</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.logentry_set"><code class="docutils literal notranslate"><span class="pre">ContentType.logentry_set</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.model"><code class="docutils literal notranslate"><span class="pre">ContentType.model</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.model_class"><code class="docutils literal notranslate"><span class="pre">ContentType.model_class()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.name"><code class="docutils literal notranslate"><span class="pre">ContentType.name</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.natural_key"><code class="docutils literal notranslate"><span class="pre">ContentType.natural_key()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.objects"><code class="docutils literal notranslate"><span class="pre">ContentType.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ContentType.permission_set"><code class="docutils literal notranslate"><span class="pre">ContentType.permission_set</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.DbHolder"><code class="docutils literal notranslate"><span class="pre">DbHolder</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.DbHolder.__init__"><code class="docutils literal notranslate"><span class="pre">DbHolder.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.DbHolder.all"><code class="docutils literal notranslate"><span class="pre">DbHolder.all</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.DbHolder.get_all"><code class="docutils literal notranslate"><span class="pre">DbHolder.get_all()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.__init__"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_batch_finish"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.do_batch_finish()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_batch_update_attribute"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.do_batch_update_attribute()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_create_attribute"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.do_create_attribute()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_delete_attribute"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.do_delete_attribute()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.do_update_attribute"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.do_update_attribute()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.query_all"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.query_all()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.query_category"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.query_category()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.InMemoryAttributeBackend.query_key"><code class="docutils literal notranslate"><span class="pre">InMemoryAttributeBackend.query_key()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler"><code class="docutils literal notranslate"><span class="pre">LockHandler</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.__init__"><code class="docutils literal notranslate"><span class="pre">LockHandler.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.add"><code class="docutils literal notranslate"><span class="pre">LockHandler.add()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.all"><code class="docutils literal notranslate"><span class="pre">LockHandler.all()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.append"><code class="docutils literal notranslate"><span class="pre">LockHandler.append()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.LockHandler.check"><code class="docutils literal notranslate"><span class="pre">LockHandler.check()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.LockHandler.clear"><code class="docutils literal notranslate"><span class="pre">LockHandler.clear()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.delete"><code class="docutils literal notranslate"><span class="pre">LockHandler.delete()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.get"><code class="docutils literal notranslate"><span class="pre">LockHandler.get()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.remove"><code class="docutils literal notranslate"><span class="pre">LockHandler.remove()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.replace"><code class="docutils literal notranslate"><span class="pre">LockHandler.replace()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.LockHandler.reset"><code class="docutils literal notranslate"><span class="pre">LockHandler.reset()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.ModelAttributeBackend"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.__init__"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.do_batch_finish"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.do_batch_finish()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.do_batch_update_attribute"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.do_batch_update_attribute()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.do_create_attribute"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.do_create_attribute()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.do_delete_attribute"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.do_delete_attribute()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.do_update_attribute"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.do_update_attribute()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.query_all"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.query_all()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.query_category"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.query_category()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelAttributeBackend.query_key"><code class="docutils literal notranslate"><span class="pre">ModelAttributeBackend.query_key()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelBase"><code class="docutils literal notranslate"><span class="pre">ModelBase</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ModelBase.add_to_class"><code class="docutils literal notranslate"><span class="pre">ModelBase.add_to_class()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ObjectDoesNotExist"><code class="docutils literal notranslate"><span class="pre">ObjectDoesNotExist</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.ObjectDoesNotExist.silent_variable_failure"><code class="docutils literal notranslate"><span class="pre">ObjectDoesNotExist.silent_variable_failure</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.PermissionHandler"><code class="docutils literal notranslate"><span class="pre">PermissionHandler</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.PermissionHandler.check"><code class="docutils literal notranslate"><span class="pre">PermissionHandler.check()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.SharedMemoryModel"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.SharedMemoryModel.Meta"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.Meta</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.SharedMemoryModel.delete"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.delete()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.SharedMemoryModel.objects"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.SharedMemoryModel.path"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.path</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.SharedMemoryModel.save"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModel.save()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.SharedMemoryModelBase"><code class="docutils literal notranslate"><span class="pre">SharedMemoryModelBase</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Tag"><code class="docutils literal notranslate"><span class="pre">Tag</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Tag.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">Tag.DoesNotExist</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.Tag.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">Tag.MultipleObjectsReturned</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.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.typeclasses.models.Tag.id"><code class="docutils literal notranslate"><span class="pre">Tag.id</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.models.Tag.objects"><code class="docutils literal notranslate"><span class="pre">Tag.objects</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TagCategoryProperty"><code class="docutils literal notranslate"><span class="pre">TagCategoryProperty</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagCategoryProperty.__init__"><code class="docutils literal notranslate"><span class="pre">TagCategoryProperty.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagCategoryProperty.taghandler_name"><code class="docutils literal notranslate"><span class="pre">TagCategoryProperty.taghandler_name</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagHandler"><code class="docutils literal notranslate"><span class="pre">TagHandler</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagHandler.__init__"><code class="docutils literal notranslate"><span class="pre">TagHandler.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagHandler.add"><code class="docutils literal notranslate"><span class="pre">TagHandler.add()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagHandler.all"><code class="docutils literal notranslate"><span class="pre">TagHandler.all()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.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.typeclasses.models.TagHandler.clear"><code class="docutils literal notranslate"><span class="pre">TagHandler.clear()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagHandler.get"><code class="docutils literal notranslate"><span class="pre">TagHandler.get()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagHandler.has"><code class="docutils literal notranslate"><span class="pre">TagHandler.has()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagHandler.remove"><code class="docutils literal notranslate"><span class="pre">TagHandler.remove()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.TagProperty"><code class="docutils literal notranslate"><span class="pre">TagProperty</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagProperty.__init__"><code class="docutils literal notranslate"><span class="pre">TagProperty.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TagProperty.taghandler_name"><code class="docutils literal notranslate"><span class="pre">TagProperty.taghandler_name</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.TypeclassBase"><code class="docutils literal notranslate"><span class="pre">TypeclassBase</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.call_at_first_save"><code class="docutils literal notranslate"><span class="pre">call_at_first_save()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.class_from_module"><code class="docutils literal notranslate"><span class="pre">class_from_module()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.inherits_from"><code class="docutils literal notranslate"><span class="pre">inherits_from()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.is_iter"><code class="docutils literal notranslate"><span class="pre">is_iter()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.lazy_property"><code class="docutils literal notranslate"><span class="pre">lazy_property</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.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.typeclasses.models.log_trace"><code class="docutils literal notranslate"><span class="pre">log_trace()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.remove_attributes_on_delete"><code class="docutils literal notranslate"><span class="pre">remove_attributes_on_delete()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.reverse"><code class="docutils literal notranslate"><span class="pre">reverse()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.slugify"><code class="docutils literal notranslate"><span class="pre">slugify()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.typeclasses.models.smart_str"><code class="docutils literal notranslate"><span class="pre">smart_str()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<div>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="evennia.typeclasses.managers.html"
|
||
title="previous chapter">evennia.typeclasses.managers</a></p>
|
||
</div>
|
||
<div>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="evennia.typeclasses.tags.html"
|
||
title="next chapter">evennia.typeclasses.tags</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.typeclasses.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.typeclasses.tags.html" title="evennia.typeclasses.tags"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.typeclasses.managers.html" title="evennia.typeclasses.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.typeclasses.html" >evennia.typeclasses</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">evennia.typeclasses.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> |