<spanid="evennia-utils-picklefield"></span><h1>evennia.utils.picklefield<aclass="headerlink"href="#module-evennia.utils.picklefield"title="Permalink to this headline">¶</a></h1>
<p>Pickle field implementation for Django.</p>
<p>Modified for Evennia by Griatch and the Evennia community.</p>
<dlclass="py class">
<dtid="evennia.utils.picklefield.PickledObject">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.picklefield.</code><codeclass="sig-name descname">PickledObject</code><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObject"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObject"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.utils.picklefield.</code><codeclass="sig-name descname">wrap_conflictual_object</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#wrap_conflictual_object"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.wrap_conflictual_object"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="py function">
<dtid="evennia.utils.picklefield.dbsafe_encode">
<codeclass="sig-prename descclassname">evennia.utils.picklefield.</code><codeclass="sig-name descname">dbsafe_encode</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">value</span></em>, <emclass="sig-param"><spanclass="n">compress_object</span><spanclass="o">=</span><spanclass="default_value">False</span></em>, <emclass="sig-param"><spanclass="n">pickle_protocol</span><spanclass="o">=</span><spanclass="default_value">4</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#dbsafe_encode"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.dbsafe_encode"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="py function">
<dtid="evennia.utils.picklefield.dbsafe_decode">
<codeclass="sig-prename descclassname">evennia.utils.picklefield.</code><codeclass="sig-name descname">dbsafe_decode</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">value</span></em>, <emclass="sig-param"><spanclass="n">compress_object</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#dbsafe_decode"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.dbsafe_decode"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="py class">
<dtid="evennia.utils.picklefield.PickledWidget">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.picklefield.</code><codeclass="sig-name descname">PickledWidget</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">attrs</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledWidget"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledWidget"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">render</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em>, <emclass="sig-param"><spanclass="n">value</span></em>, <emclass="sig-param"><spanclass="n">attrs</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">renderer</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledWidget.render"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledWidget.render"title="Permalink to this definition">¶</a></dt>
<dd><p>Display of the PickledField in django admin</p>
<codeclass="sig-name descname">value_from_datadict</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">data</span></em>, <emclass="sig-param"><spanclass="n">files</span></em>, <emclass="sig-param"><spanclass="n">name</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledWidget.value_from_datadict"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledWidget.value_from_datadict"title="Permalink to this definition">¶</a></dt>
<dd><p>Given a dictionary of data and this widget’s name, return the value
<emclass="property">property </em><codeclass="sig-name descname">media</code><aclass="headerlink"href="#evennia.utils.picklefield.PickledWidget.media"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.picklefield.</code><codeclass="sig-name descname">PickledFormField</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledFormField"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledFormField"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">widget</code><aclass="headerlink"href="#evennia.utils.picklefield.PickledFormField.widget"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.utils.picklefield.PickledWidget"title="evennia.utils.picklefield.PickledWidget"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">PickledWidget</span></code></a></p>
<codeclass="sig-name descname">default_error_messages</code><emclass="property"> = {'invalid': 'This is not a Python Literal. You can store things like strings, integers, or floats, but you must do it by typing them as you would type them in the Python Interpreter. For instance, strings must be surrounded by quote marks. We have converted it to a string for your convenience. If it is acceptable, please hit save again.', 'required': 'This field is required.'}</em><aclass="headerlink"href="#evennia.utils.picklefield.PickledFormField.default_error_messages"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledFormField.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledFormField.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">clean</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">value</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledFormField.clean"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledFormField.clean"title="Permalink to this definition">¶</a></dt>
<dd><p>Validate the given value and return its “cleaned” value as an
appropriate Python object. Raise ValidationError for any errors.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.picklefield.</code><codeclass="sig-name descname">PickledObjectField</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">get_default</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.get_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.get_default"title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the default value for this field.</p>
<p>The default implementation on models.Field calls force_str
on the default, which means you can’t set arbitrary Python
objects as the default. To fix this, we just return the value
without calling force_str on it. Note that if you set a
callable as a default, the field will still call it. It will
<codeclass="sig-name descname">from_db_value</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">value</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.from_db_value"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.from_db_value"title="Permalink to this definition">¶</a></dt>
<dd><p>B64decode and unpickle the object, optionally decompressing it.</p>
<p>If an error is raised in de-pickling and we’re sure the value is
a definite pickle, the error is allowed to propagate. If we
aren’t sure if the value is a pickle or not, then we catch the
<codeclass="sig-name descname">formfield</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.formfield"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.formfield"title="Permalink to this definition">¶</a></dt>
<dd><p>Return a django.forms.Field instance for this field.</p>
<codeclass="sig-name descname">pre_save</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">model_instance</span></em>, <emclass="sig-param"><spanclass="n">add</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.pre_save"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.pre_save"title="Permalink to this definition">¶</a></dt>
<dd><p>Return field’s value just before saving.</p>
<codeclass="sig-name descname">get_db_prep_value</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">value</span></em>, <emclass="sig-param"><spanclass="n">connection</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">prepared</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.get_db_prep_value"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.get_db_prep_value"title="Permalink to this definition">¶</a></dt>
<dd><p>Pickle and b64encode the object, optionally compressing it.</p>
<p>The pickling protocol is specified explicitly (by default 2),
rather than as -1 or HIGHEST_PROTOCOL, because we don’t want the
protocol to change over time. If it did, <strong>**exact**</strong> and <strong>**in**</strong>
lookups would likely fail, since pickle would now be generating
<codeclass="sig-name descname">value_to_string</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">obj</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.value_to_string"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.value_to_string"title="Permalink to this definition">¶</a></dt>
<dd><p>Return a string value of this field from the passed obj.
<codeclass="sig-name descname">get_internal_type</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.get_internal_type"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.get_internal_type"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_db_prep_lookup</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">lookup_type</span></em>, <emclass="sig-param"><spanclass="n">value</span></em>, <emclass="sig-param"><spanclass="n">connection</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">prepared</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/picklefield.html#PickledObjectField.get_db_prep_lookup"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.picklefield.PickledObjectField.get_db_prep_lookup"title="Permalink to this definition">¶</a></dt>