evennia/docs/latest/api/evennia.utils.dbserialize.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

1059 lines
No EOL
104 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html 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.utils.dbserialize &#8212; 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.utils.eveditor" href="evennia.utils.eveditor.html" />
<link rel="prev" title="evennia.utils.create" href="evennia.utils.create.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.utils.eveditor.html" title="evennia.utils.eveditor"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.utils.create.html" title="evennia.utils.create"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.utils.html" accesskey="U">evennia.utils</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.utils.dbserialize</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.utils.dbserialize">
<span id="evennia-utils-dbserialize"></span><h1>evennia.utils.dbserialize<a class="headerlink" href="#module-evennia.utils.dbserialize" title="Link to this heading"></a></h1>
<p>This module handles serialization of arbitrary python structural data,
intended primarily to be stored in the database. It also supports
storing Django model instances (which plain pickle cannot do).</p>
<p>This serialization is used internally by the server, notably for
storing data in Attributes and for piping data to process pools.</p>
<p>The purpose of dbserialize is to handle all forms of data. For
well-structured non-arbitrary exchange, such as communicating with a
rich web client, a simpler JSON serialization makes more sense.</p>
<p>This module also implements the <strong>SaverList</strong>, <strong>SaverDict</strong> and <strong>SaverSet</strong>
classes. These are iterables that track their position in a nested
structure and makes sure to send updates up to their root. This is
used by Attributes - without it, one would not be able to update mutables
in-situ, e.g <strong>obj.db.mynestedlist[3][5] = 3</strong> would never be saved and
be out of sync with the database.</p>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.to_pickle">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">to_pickle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/dbserialize.html#to_pickle"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.to_pickle" title="Link to this definition"></a></dt>
<dd><p>This prepares data on arbitrary form to be pickled. It handles any
nested structure and returns data on a form that is safe to pickle
(including having converted any database models to their internal
representation). We also convert any Saver*-type objects back to
their normal representations, they are not pickle-safe.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>data</strong> (<em>any</em>) Data to pickle.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>data (any)</em> Pickled data.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.from_pickle">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">from_pickle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">db_obj</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/dbserialize.html#from_pickle"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.from_pickle" title="Link to this definition"></a></dt>
<dd><p>This should be fed a just de-pickled data object. It will be converted back
to a form that may contain database objects again. Note that if a database
object was removed (or changed in-place) in the database, None will be
returned.</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>data</strong> (<em>any</em>) Pickled data to unpickle.</p></li>
<li><p><strong>db_obj</strong> (<em>Atribute</em><em>, </em><em>any</em>) This is the model instance (normally
an Attribute) that _Saver*-type iterables (_SaverList etc)
will save to when they update. It must have a value property
that saves assigned data to the database. Skip if not
serializing onto a given object. If db_obj is given, this
function will convert lists, dicts and sets to their
_SaverList, _SaverDict and _SaverSet counterparts.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>data (any)</em> Unpickled data.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.do_pickle">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">do_pickle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/dbserialize.html#do_pickle"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.do_pickle" title="Link to this definition"></a></dt>
<dd><p>Perform pickle to string</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.do_unpickle">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">do_unpickle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/dbserialize.html#do_unpickle"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.do_unpickle" title="Link to this definition"></a></dt>
<dd><p>Retrieve pickle from pickled string</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.dbserialize">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">dbserialize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/dbserialize.html#dbserialize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.dbserialize" title="Link to this definition"></a></dt>
<dd><p>Serialize to pickled form in one step</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.dbunserialize">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">dbunserialize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">db_obj</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/dbserialize.html#dbunserialize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.dbunserialize" title="Link to this definition"></a></dt>
<dd><p>Un-serialize in one step. See from_pickle for help db_obj.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.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.utils.dbserialize.</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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.ContentType.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.ContentType.app_label">
<span class="sig-name descname"><span class="pre">app_label</span></span><a class="headerlink" href="#evennia.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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_types 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.utils.dbserialize.ContentType.id">
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.utils.dbserialize.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.utils.dbserialize.ContentType.logentry_set">
<span class="sig-name descname"><span class="pre">logentry_set</span></span><a class="headerlink" href="#evennia.utils.dbserialize.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">&#39;children&#39;</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.utils.dbserialize.ContentType.model">
<span class="sig-name descname"><span class="pre">model</span></span><a class="headerlink" href="#evennia.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.ContentType.name" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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">&lt;django.contrib.contenttypes.models.ContentTypeManager</span> <span class="pre">object&gt;</span></em><a class="headerlink" href="#evennia.utils.dbserialize.ContentType.objects" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.ContentType.permission_set">
<span class="sig-name descname"><span class="pre">permission_set</span></span><a class="headerlink" href="#evennia.utils.dbserialize.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">&#39;children&#39;</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.utils.dbserialize.IntFlag">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">IntFlag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">new_class_name</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em>, <em class="sig-param"><span class="n"><span class="pre">names</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">module</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">qualname</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">type</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">start</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">boundary</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/enum.html#IntFlag"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.IntFlag" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">ReprEnum</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">Flag</span></code></p>
<p>Support for integer-based Flags</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableMapping">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">MutableMapping</span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableMapping"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableMapping" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Mapping</span></code></p>
<p>A MutableMapping is a generic container for associating
key/value pairs.</p>
<p>This class provides concrete generic implementations of all
methods except for __getitem__, __setitem__, __delitem__,
__iter__, and __len__.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableMapping.clear">
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None.</span>&#160; <span class="pre">Remove</span> <span class="pre">all</span> <span class="pre">items</span> <span class="pre">from</span> <span class="pre">D.</span></span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableMapping.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableMapping.clear" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableMapping.pop">
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">k</span></span></em><span class="optional">[</span>, <em class="sig-param"><span class="n"><span class="pre">d</span></span></em><span class="optional">]</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">v,</span> <span class="pre">remove</span> <span class="pre">specified</span> <span class="pre">key</span> <span class="pre">and</span> <span class="pre">return</span> <span class="pre">the</span> <span class="pre">corresponding</span> <span class="pre">value.</span></span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableMapping.pop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableMapping.pop" title="Link to this definition"></a></dt>
<dd><p>If key is not found, d is returned if given, otherwise KeyError is raised.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableMapping.popitem">
<span class="sig-name descname"><span class="pre">popitem</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">(k,</span> <span class="pre">v),</span> <span class="pre">remove</span> <span class="pre">and</span> <span class="pre">return</span> <span class="pre">some</span> <span class="pre">(key,</span> <span class="pre">value)</span> <span class="pre">pair</span></span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableMapping.popitem"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableMapping.popitem" title="Link to this definition"></a></dt>
<dd><p>as a 2-tuple; but raise KeyError if D is empty.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableMapping.setdefault">
<span class="sig-name descname"><span class="pre">setdefault</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">k</span></span></em><span class="optional">[</span>, <em class="sig-param"><span class="n"><span class="pre">d</span></span></em><span class="optional">]</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">D.get(k,d),</span> <span class="pre">also</span> <span class="pre">set</span> <span class="pre">D[k]=d</span> <span class="pre">if</span> <span class="pre">k</span> <span class="pre">not</span> <span class="pre">in</span> <span class="pre">D</span></span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableMapping.setdefault"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableMapping.setdefault" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableMapping.update">
<span class="sig-name descname"><span class="pre">update</span></span><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param"><span class="n"><span class="pre">E</span></span></em>, <span class="optional">]</span><em class="sig-param"><span class="n"><span class="pre">**F</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None.</span>&#160; <span class="pre">Update</span> <span class="pre">D</span> <span class="pre">from</span> <span class="pre">mapping/iterable</span> <span class="pre">E</span> <span class="pre">and</span> <span class="pre">F.</span></span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableMapping.update"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableMapping.update" title="Link to this definition"></a></dt>
<dd><p>If E present and has a .keys() method, does: for k in E.keys(): D[k] = E[k]
If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v
In either case, this is followed by: for k, v in F.items(): D[k] = v</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSequence">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">MutableSequence</span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableSequence"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSequence" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Sequence</span></code></p>
<p>All the operations on a read-write sequence.</p>
<p>Concrete subclasses must provide __new__ or __init__,
__getitem__, __setitem__, __delitem__, __len__, and insert().</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSequence.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">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/collections/abc.html#MutableSequence.append"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSequence.append" title="Link to this definition"></a></dt>
<dd><p>S.append(value) append value to the end of the sequence</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSequence.clear">
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span> <span class="pre">--</span> <span class="pre">remove</span> <span class="pre">all</span> <span class="pre">items</span> <span class="pre">from</span> <span class="pre">S</span></span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableSequence.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSequence.clear" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSequence.extend">
<span class="sig-name descname"><span class="pre">extend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">values</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/collections/abc.html#MutableSequence.extend"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSequence.extend" title="Link to this definition"></a></dt>
<dd><p>S.extend(iterable) extend sequence by appending elements from the iterable</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSequence.insert">
<em class="property"><span class="k"><span class="pre">abstractmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">insert</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">index</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/collections/abc.html#MutableSequence.insert"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSequence.insert" title="Link to this definition"></a></dt>
<dd><p>S.insert(index, value) insert value before index</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSequence.pop">
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param"><span class="n"><span class="pre">index</span></span></em><span class="optional">]</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">item</span> <span class="pre">--</span> <span class="pre">remove</span> <span class="pre">and</span> <span class="pre">return</span> <span class="pre">item</span> <span class="pre">at</span> <span class="pre">index</span> <span class="pre">(default</span> <span class="pre">last).</span></span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableSequence.pop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSequence.pop" title="Link to this definition"></a></dt>
<dd><p>Raise IndexError if list is empty or index is out of range.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSequence.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">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/collections/abc.html#MutableSequence.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSequence.remove" title="Link to this definition"></a></dt>
<dd><p>S.remove(value) remove first occurrence of value.
Raise ValueError if the value is not present.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSequence.reverse">
<span class="sig-name descname"><span class="pre">reverse</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/collections/abc.html#MutableSequence.reverse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSequence.reverse" title="Link to this definition"></a></dt>
<dd><p>S.reverse() reverse <em>IN PLACE</em></p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSet">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">MutableSet</span></span><a class="reference internal" href="../_modules/collections/abc.html#MutableSet"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSet" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Set</span></code></p>
<p>A mutable set is a finite, iterable container.</p>
<p>This class provides concrete generic implementations of all
methods except for __contains__, __iter__, __len__,
add(), and discard().</p>
<p>To override the comparisons (presumably for speed, as the
semantics are fixed), all you have to do is redefine __le__ and
then the other operations will automatically follow suit.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSet.add">
<em class="property"><span class="k"><span class="pre">abstractmethod</span></span><span class="w"> </span></em><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">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/collections/abc.html#MutableSet.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSet.add" title="Link to this definition"></a></dt>
<dd><p>Add an element.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSet.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/collections/abc.html#MutableSet.clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSet.clear" title="Link to this definition"></a></dt>
<dd><p>This is slow (creates N new iterators!) but effective.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSet.discard">
<em class="property"><span class="k"><span class="pre">abstractmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">discard</span></span><span class="sig-paren">(</span><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/collections/abc.html#MutableSet.discard"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSet.discard" title="Link to this definition"></a></dt>
<dd><p>Remove an element. Do not raise an exception if absent.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSet.pop">
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/collections/abc.html#MutableSet.pop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSet.pop" title="Link to this definition"></a></dt>
<dd><p>Return the popped value. Raise KeyError if empty.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.MutableSet.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">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/collections/abc.html#MutableSet.remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.MutableSet.remove" title="Link to this definition"></a></dt>
<dd><p>Remove an element. If not a member, raise a KeyError.</p>
</dd></dl>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.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.utils.dbserialize.</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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.OrderedDict">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">OrderedDict</span></span><a class="reference internal" href="../_modules/collections.html#OrderedDict"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.OrderedDict" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
<p>Dictionary that remembers insertion order</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.__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="headerlink" href="#evennia.utils.dbserialize.OrderedDict.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.clear">
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None.</span>&#160; <span class="pre">Remove</span> <span class="pre">all</span> <span class="pre">items</span> <span class="pre">from</span> <span class="pre">od.</span></span></span><a class="headerlink" href="#evennia.utils.dbserialize.OrderedDict.clear" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.copy">
<span class="sig-name descname"><span class="pre">copy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">a</span> <span class="pre">shallow</span> <span class="pre">copy</span> <span class="pre">of</span> <span class="pre">od</span></span></span><a class="headerlink" href="#evennia.utils.dbserialize.OrderedDict.copy" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.fromkeys">
<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">fromkeys</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">iterable</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</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="headerlink" href="#evennia.utils.dbserialize.OrderedDict.fromkeys" title="Link to this definition"></a></dt>
<dd><p>Create a new ordered dictionary with keys from iterable and values set to value.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.items">
<span class="sig-name descname"><span class="pre">items</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.OrderedDict.items" title="Link to this definition"></a></dt>
<dd><p>Return a set-like object providing a view on the dicts items.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.keys">
<span class="sig-name descname"><span class="pre">keys</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.OrderedDict.keys" title="Link to this definition"></a></dt>
<dd><p>Return a set-like object providing a view on the dicts keys.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.move_to_end">
<span class="sig-name descname"><span class="pre">move_to_end</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">last</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="headerlink" href="#evennia.utils.dbserialize.OrderedDict.move_to_end" title="Link to this definition"></a></dt>
<dd><p>Move an existing element to the end (or beginning if last is false).</p>
<p>Raise KeyError if the element does not exist.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.pop">
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em><span class="optional">[</span>, <em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="optional">]</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">v,</span> <span class="pre">remove</span> <span class="pre">specified</span> <span class="pre">key</span> <span class="pre">and</span> <span class="pre">return</span> <span class="pre">the</span> <span class="pre">corresponding</span> <span class="pre">value.</span></span></span><a class="headerlink" href="#evennia.utils.dbserialize.OrderedDict.pop" title="Link to this definition"></a></dt>
<dd><p>If the key is not found, return the default if given; otherwise,
raise a KeyError.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.popitem">
<span class="sig-name descname"><span class="pre">popitem</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">last</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="headerlink" href="#evennia.utils.dbserialize.OrderedDict.popitem" title="Link to this definition"></a></dt>
<dd><p>Remove and return a (key, value) pair from the dictionary.</p>
<p>Pairs are returned in LIFO order if last is true or FIFO order if false.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.setdefault">
<span class="sig-name descname"><span class="pre">setdefault</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">default</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="headerlink" href="#evennia.utils.dbserialize.OrderedDict.setdefault" title="Link to this definition"></a></dt>
<dd><p>Insert key with a value of default if key is not in the dictionary.</p>
<p>Return the value for key if key is in the dictionary, else default.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.update">
<span class="sig-name descname"><span class="pre">update</span></span><span class="sig-paren">(</span><span class="optional">[</span><em class="sig-param"><span class="n"><span class="pre">E</span></span></em>, <span class="optional">]</span><em class="sig-param"><span class="n"><span class="pre">**F</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None.</span>&#160; <span class="pre">Update</span> <span class="pre">D</span> <span class="pre">from</span> <span class="pre">mapping/iterable</span> <span class="pre">E</span> <span class="pre">and</span> <span class="pre">F.</span></span></span><a class="headerlink" href="#evennia.utils.dbserialize.OrderedDict.update" title="Link to this definition"></a></dt>
<dd><p>If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k]
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.OrderedDict.values">
<span class="sig-name descname"><span class="pre">values</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.OrderedDict.values" title="Link to this definition"></a></dt>
<dd><p>Return an object providing a view on the dicts values.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.SafeString">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">SafeString</span></span><a class="reference internal" href="../_modules/django/utils/safestring.html#SafeString"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.SafeString" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">SafeData</span></code></p>
<p>A str subclass that has been specifically marked as “safe” for HTML output
purposes.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.UnpicklingError">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">UnpicklingError</span></span><a class="headerlink" href="#evennia.utils.dbserialize.UnpicklingError" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">PickleError</span></code></p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.defaultdict">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">defaultdict</span></span><a class="headerlink" href="#evennia.utils.dbserialize.defaultdict" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
<p>defaultdict(default_factory=None, /, […]) &gt; dict with default factory</p>
<p>The default factory is called without arguments to produce
a new value when a key is not present, in __getitem__ only.
A defaultdict compares equal to a dict with the same items.
All remaining arguments are treated the same as if they were
passed to the dict constructor, including keyword arguments.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.defaultdict.__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="headerlink" href="#evennia.utils.dbserialize.defaultdict.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.defaultdict.copy">
<span class="sig-name descname"><span class="pre">copy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">a</span> <span class="pre">shallow</span> <span class="pre">copy</span> <span class="pre">of</span> <span class="pre">D.</span></span></span><a class="headerlink" href="#evennia.utils.dbserialize.defaultdict.copy" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.defaultdict.default_factory">
<span class="sig-name descname"><span class="pre">default_factory</span></span><a class="headerlink" href="#evennia.utils.dbserialize.defaultdict.default_factory" title="Link to this definition"></a></dt>
<dd><p>Factory for default value called by __missing__().</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque">
<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.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">deque</span></span><a class="headerlink" href="#evennia.utils.dbserialize.deque" 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>A list-like sequence optimized for data accesses near its endpoints.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.__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="headerlink" href="#evennia.utils.dbserialize.deque.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.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">item</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.append" title="Link to this definition"></a></dt>
<dd><p>Add an element to the right side of the deque.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.appendleft">
<span class="sig-name descname"><span class="pre">appendleft</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.appendleft" title="Link to this definition"></a></dt>
<dd><p>Add an element to the left side of the deque.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.clear">
<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.clear" title="Link to this definition"></a></dt>
<dd><p>Remove all elements from the deque.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.copy">
<span class="sig-name descname"><span class="pre">copy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.copy" title="Link to this definition"></a></dt>
<dd><p>Return a shallow copy of a deque.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.count">
<span class="sig-name descname"><span class="pre">count</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="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.count" title="Link to this definition"></a></dt>
<dd><p>Return number of occurrences of value.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.extend">
<span class="sig-name descname"><span class="pre">extend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">iterable</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.extend" title="Link to this definition"></a></dt>
<dd><p>Extend the right side of the deque with elements from the iterable.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.extendleft">
<span class="sig-name descname"><span class="pre">extendleft</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">iterable</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.extendleft" title="Link to this definition"></a></dt>
<dd><p>Extend the left side of the deque with elements from the iterable.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.index">
<span class="sig-name descname"><span class="pre">index</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.index" title="Link to this definition"></a></dt>
<dd><p>Return first index of value.</p>
<p>Raises ValueError if the value is not present.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.insert">
<span class="sig-name descname"><span class="pre">insert</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.insert" title="Link to this definition"></a></dt>
<dd><p>Insert value before index.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.maxlen">
<span class="sig-name descname"><span class="pre">maxlen</span></span><a class="headerlink" href="#evennia.utils.dbserialize.deque.maxlen" title="Link to this definition"></a></dt>
<dd><p>maximum size of a deque or None if unbounded</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.pop">
<span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.pop" title="Link to this definition"></a></dt>
<dd><p>Remove and return the rightmost element.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.popleft">
<span class="sig-name descname"><span class="pre">popleft</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.popleft" title="Link to this definition"></a></dt>
<dd><p>Remove and return the leftmost element.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.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">value</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.remove" title="Link to this definition"></a></dt>
<dd><p>Remove first occurrence of value.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.reverse">
<span class="sig-name descname"><span class="pre">reverse</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.reverse" title="Link to this definition"></a></dt>
<dd><p>Reverse <em>IN PLACE</em>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deque.rotate">
<span class="sig-name descname"><span class="pre">rotate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">n</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.deque.rotate" title="Link to this definition"></a></dt>
<dd><p>Rotate the deque n steps to the right. If n is negative, rotates left.</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.deserialize">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">deserialize</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/dbserialize.html#deserialize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.deserialize" title="Link to this definition"></a></dt>
<dd><p>Make sure to <em>fully</em> decouple a structure from the database, by turning all _Saver*-mutables
inside it back into their normal Python forms.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.dumps">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">dumps</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">protocol</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">fix_imports</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">buffer_callback</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="headerlink" href="#evennia.utils.dbserialize.dumps" title="Link to this definition"></a></dt>
<dd><p>Return the pickled representation of the object as a bytes object.</p>
<p>The optional <em>protocol</em> argument tells the pickler to use the given
protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
protocol is 4. It was introduced in Python 3.4, and is incompatible
with previous versions.</p>
<p>Specifying a negative protocol version selects the highest protocol
version supported. The higher the protocol used, the more recent the
version of Python needed to read the pickle produced.</p>
<p>If <em>fix_imports</em> is True and <em>protocol</em> is less than 3, pickle will
try to map the new Python 3 names to the old module names used in
Python 2, so that the pickle data stream is readable with Python 2.</p>
<p>If <em>buffer_callback</em> is None (the default), buffer views are serialized
into <em>file</em> as part of the pickle stream. It is an error if
<em>buffer_callback</em> is not None and <em>protocol</em> is None or smaller than 5.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.is_iter">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</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.utils.dbserialize.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 function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.loads">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">loads</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></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">fix_imports</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">encoding</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'ASCII'</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>, <em class="sig-param"><span class="n"><span class="pre">buffers</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.dbserialize.loads" title="Link to this definition"></a></dt>
<dd><p>Read and return an object from the given pickle data.</p>
<p>The protocol version of the pickle is detected automatically, so no
protocol argument is needed. Bytes past the pickled objects
representation are ignored.</p>
<p>Optional keyword arguments are <em>fix_imports</em>, <em>encoding</em> and <em>errors</em>,
which are used to control compatibility support for pickle stream
generated by Python 2. If <em>fix_imports</em> is True, pickle will try to
map the old Python 2 names to the new names used in Python 3. The
<em>encoding</em> and <em>errors</em> tell pickle how to decode 8-bit string
instances pickled by Python 2; these default to ASCII and strict,
respectively. The <em>encoding</em> can be bytes to read these 8-bit
string instances as bytes objects.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.pack_dbobj">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">pack_dbobj</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/dbserialize.html#pack_dbobj"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.pack_dbobj" title="Link to this definition"></a></dt>
<dd><p>Check and convert django database objects to an internal representation.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>item</strong> (<em>any</em>) A database entity to pack</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>packed (any or tuple)</em> </p>
<dl class="simple">
<dt>Either returns the original input item</dt><dd><p>or the packing tuple <strong>(“__packed_dbobj__”, key, creation_time, id)</strong>.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.pack_session">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">pack_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/dbserialize.html#pack_session"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.pack_session" title="Link to this definition"></a></dt>
<dd><p>Handle the safe serializion of Sessions objects (these contain
hidden references to database objects (accounts, puppets) so they
cant be safely serialized).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>item</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>)</em>) This item must have all properties of a session
before entering this call.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>packed (tuple or None)</em> </p>
<dl class="simple">
<dt>A session-packed tuple on the form</dt><dd><p><strong>(__packed_session__, sessid, conn_time)</strong>. If this sessid
does not match a session in the Session handler, None is returned.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.to_bytes">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">to_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">session</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#to_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.to_bytes" title="Link to this definition"></a></dt>
<dd><p>Try to encode the given text to bytes, using encodings from settings or from Session. Will
always return a bytes, even if given something that is not str or bytes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>any</em>) The text to encode to bytes. If bytes, return unchanged. If not a str, convert
to str before converting.</p></li>
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>, </em><em>optional</em>) A Session to get encoding info from. Will try this before
falling back to settings.ENCODINGS.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>encoded_text (bytes)</em> </p>
<dl class="simple">
<dt>the encoded text following the sessions protocol flag followed by the</dt><dd><p>encodings specified in settings.ENCODINGS. If all attempt fail, log the error and send
the text with “?” in place of problematic characters. If the specified encoding cannot
be found, the protocol flag is reset to utf-8. In any case, returns bytes.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>If <strong>text</strong> is already bytes, return it as is.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.unpack_dbobj">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">unpack_dbobj</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/dbserialize.html#unpack_dbobj"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.unpack_dbobj" title="Link to this definition"></a></dt>
<dd><p>Check and convert internal representations back to Django database
models.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>item</strong> (<em>packed_dbobj</em>) The fact that item is a packed dbobj
should be checked before this call.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>unpacked (any)</em> </p>
<dl class="simple">
<dt>Either the original input or converts the</dt><dd><p>internal store back to a database representation (its
typeclass is returned if applicable).</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.unpack_session">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">unpack_session</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">item</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/dbserialize.html#unpack_session"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.unpack_session" title="Link to this definition"></a></dt>
<dd><p>Check and convert internal representations back to Sessions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>item</strong> (<em>packed_session</em>) The fact that item is a packed session
should be checked before this call.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>unpacked (any)</em> </p>
<dl class="simple">
<dt>Either the original input or converts the</dt><dd><p>internal store back to a Session. If Session no longer
exists, None will be returned.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.update_wrapper">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">update_wrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapper</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">assigned</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__module__',</span> <span class="pre">'__name__',</span> <span class="pre">'__qualname__',</span> <span class="pre">'__doc__',</span> <span class="pre">'__annotations__',</span> <span class="pre">'__type_params__')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">updated</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__dict__',)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/functools.html#update_wrapper"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.update_wrapper" title="Link to this definition"></a></dt>
<dd><p>Update a wrapper function to look like the wrapped function</p>
<p>wrapper is the function to be updated
wrapped is the original function
assigned is a tuple naming the attributes assigned directly
from the wrapped function to the wrapper function (defaults to
functools.WRAPPER_ASSIGNMENTS)
updated is a tuple naming the attributes of the wrapper that
are updated with the corresponding attribute from the wrapped
function (defaults to functools.WRAPPER_UPDATES)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.dbserialize.uses_database">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.dbserialize.</span></span><span class="sig-name descname"><span class="pre">uses_database</span></span><span class="sig-paren">(</span><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">'sqlite3'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#uses_database"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.dbserialize.uses_database" title="Link to this definition"></a></dt>
<dd><p>Checks if the game is currently using a given database. This is a
shortcut to having to use the full backend name.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>name</strong> (<em>str</em>) One of sqlite3, mysql, postgresql or oracle.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>uses (bool)</em> If the given database is used or not.</p>
</dd>
</dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.utils.dbserialize</a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.to_pickle"><code class="docutils literal notranslate"><span class="pre">to_pickle()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.from_pickle"><code class="docutils literal notranslate"><span class="pre">from_pickle()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.do_pickle"><code class="docutils literal notranslate"><span class="pre">do_pickle()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.do_unpickle"><code class="docutils literal notranslate"><span class="pre">do_unpickle()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.dbserialize"><code class="docutils literal notranslate"><span class="pre">dbserialize()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.dbunserialize"><code class="docutils literal notranslate"><span class="pre">dbunserialize()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.ContentType"><code class="docutils literal notranslate"><span class="pre">ContentType</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.ContentType.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">ContentType.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.ContentType.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">ContentType.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.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.utils.dbserialize.ContentType.id"><code class="docutils literal notranslate"><span class="pre">ContentType.id</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.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.utils.dbserialize.ContentType.model"><code class="docutils literal notranslate"><span class="pre">ContentType.model</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.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.utils.dbserialize.ContentType.name"><code class="docutils literal notranslate"><span class="pre">ContentType.name</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.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.utils.dbserialize.ContentType.objects"><code class="docutils literal notranslate"><span class="pre">ContentType.objects</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.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.utils.dbserialize.IntFlag"><code class="docutils literal notranslate"><span class="pre">IntFlag</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableMapping"><code class="docutils literal notranslate"><span class="pre">MutableMapping</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableMapping.clear"><code class="docutils literal notranslate"><span class="pre">MutableMapping.clear()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableMapping.pop"><code class="docutils literal notranslate"><span class="pre">MutableMapping.pop()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableMapping.popitem"><code class="docutils literal notranslate"><span class="pre">MutableMapping.popitem()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableMapping.setdefault"><code class="docutils literal notranslate"><span class="pre">MutableMapping.setdefault()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableMapping.update"><code class="docutils literal notranslate"><span class="pre">MutableMapping.update()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSequence"><code class="docutils literal notranslate"><span class="pre">MutableSequence</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSequence.append"><code class="docutils literal notranslate"><span class="pre">MutableSequence.append()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSequence.clear"><code class="docutils literal notranslate"><span class="pre">MutableSequence.clear()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSequence.extend"><code class="docutils literal notranslate"><span class="pre">MutableSequence.extend()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSequence.insert"><code class="docutils literal notranslate"><span class="pre">MutableSequence.insert()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSequence.pop"><code class="docutils literal notranslate"><span class="pre">MutableSequence.pop()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSequence.remove"><code class="docutils literal notranslate"><span class="pre">MutableSequence.remove()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSequence.reverse"><code class="docutils literal notranslate"><span class="pre">MutableSequence.reverse()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSet"><code class="docutils literal notranslate"><span class="pre">MutableSet</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSet.add"><code class="docutils literal notranslate"><span class="pre">MutableSet.add()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSet.clear"><code class="docutils literal notranslate"><span class="pre">MutableSet.clear()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSet.discard"><code class="docutils literal notranslate"><span class="pre">MutableSet.discard()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSet.pop"><code class="docutils literal notranslate"><span class="pre">MutableSet.pop()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.MutableSet.remove"><code class="docutils literal notranslate"><span class="pre">MutableSet.remove()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.ObjectDoesNotExist"><code class="docutils literal notranslate"><span class="pre">ObjectDoesNotExist</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.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.utils.dbserialize.OrderedDict"><code class="docutils literal notranslate"><span class="pre">OrderedDict</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.__init__"><code class="docutils literal notranslate"><span class="pre">OrderedDict.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.clear"><code class="docutils literal notranslate"><span class="pre">OrderedDict.clear()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.copy"><code class="docutils literal notranslate"><span class="pre">OrderedDict.copy()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.fromkeys"><code class="docutils literal notranslate"><span class="pre">OrderedDict.fromkeys()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.items"><code class="docutils literal notranslate"><span class="pre">OrderedDict.items()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.keys"><code class="docutils literal notranslate"><span class="pre">OrderedDict.keys()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.move_to_end"><code class="docutils literal notranslate"><span class="pre">OrderedDict.move_to_end()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.pop"><code class="docutils literal notranslate"><span class="pre">OrderedDict.pop()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.popitem"><code class="docutils literal notranslate"><span class="pre">OrderedDict.popitem()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.setdefault"><code class="docutils literal notranslate"><span class="pre">OrderedDict.setdefault()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.update"><code class="docutils literal notranslate"><span class="pre">OrderedDict.update()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.OrderedDict.values"><code class="docutils literal notranslate"><span class="pre">OrderedDict.values()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.SafeString"><code class="docutils literal notranslate"><span class="pre">SafeString</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.UnpicklingError"><code class="docutils literal notranslate"><span class="pre">UnpicklingError</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.defaultdict"><code class="docutils literal notranslate"><span class="pre">defaultdict</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.defaultdict.__init__"><code class="docutils literal notranslate"><span class="pre">defaultdict.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.defaultdict.copy"><code class="docutils literal notranslate"><span class="pre">defaultdict.copy()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.defaultdict.default_factory"><code class="docutils literal notranslate"><span class="pre">defaultdict.default_factory</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque"><code class="docutils literal notranslate"><span class="pre">deque</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.__init__"><code class="docutils literal notranslate"><span class="pre">deque.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.append"><code class="docutils literal notranslate"><span class="pre">deque.append()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.appendleft"><code class="docutils literal notranslate"><span class="pre">deque.appendleft()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.clear"><code class="docutils literal notranslate"><span class="pre">deque.clear()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.copy"><code class="docutils literal notranslate"><span class="pre">deque.copy()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.count"><code class="docutils literal notranslate"><span class="pre">deque.count()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.extend"><code class="docutils literal notranslate"><span class="pre">deque.extend()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.extendleft"><code class="docutils literal notranslate"><span class="pre">deque.extendleft()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.index"><code class="docutils literal notranslate"><span class="pre">deque.index()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.insert"><code class="docutils literal notranslate"><span class="pre">deque.insert()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.maxlen"><code class="docutils literal notranslate"><span class="pre">deque.maxlen</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.pop"><code class="docutils literal notranslate"><span class="pre">deque.pop()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.popleft"><code class="docutils literal notranslate"><span class="pre">deque.popleft()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.remove"><code class="docutils literal notranslate"><span class="pre">deque.remove()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.reverse"><code class="docutils literal notranslate"><span class="pre">deque.reverse()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deque.rotate"><code class="docutils literal notranslate"><span class="pre">deque.rotate()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.deserialize"><code class="docutils literal notranslate"><span class="pre">deserialize()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.dumps"><code class="docutils literal notranslate"><span class="pre">dumps()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.is_iter"><code class="docutils literal notranslate"><span class="pre">is_iter()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.loads"><code class="docutils literal notranslate"><span class="pre">loads()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.pack_dbobj"><code class="docutils literal notranslate"><span class="pre">pack_dbobj()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.pack_session"><code class="docutils literal notranslate"><span class="pre">pack_session()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.to_bytes"><code class="docutils literal notranslate"><span class="pre">to_bytes()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.unpack_dbobj"><code class="docutils literal notranslate"><span class="pre">unpack_dbobj()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.unpack_session"><code class="docutils literal notranslate"><span class="pre">unpack_session()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.update_wrapper"><code class="docutils literal notranslate"><span class="pre">update_wrapper()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.dbserialize.uses_database"><code class="docutils literal notranslate"><span class="pre">uses_database()</span></code></a></li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.utils.create.html"
title="previous chapter">evennia.utils.create</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.utils.eveditor.html"
title="next chapter">evennia.utils.eveditor</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.utils.dbserialize.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.utils.eveditor.html" title="evennia.utils.eveditor"
>next</a> |</li>
<li class="right" >
<a href="evennia.utils.create.html" title="evennia.utils.create"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.utils.html" >evennia.utils</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.utils.dbserialize</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>