<spanid="evennia-utils-idmapper-models"></span><h1>evennia.utils.idmapper.models<aclass="headerlink"href="#module-evennia.utils.idmapper.models"title="Permalink to this headline">¶</a></h1>
<p>Django ID mapper</p>
<p>Modified for Evennia by making sure that no model references
leave caching unexpectedly (no use of WeakRefs).</p>
<p>Also adds <strong>cache_size()</strong> for monitoring the size of the cache.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">SharedMemoryModelBase</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em>, <emclass="sig-param"><spanclass="n">bases</span></em>, <emclass="sig-param"><spanclass="n">attrs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModelBase"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModelBase"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">SharedMemoryModel</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/idmapper/models.html#SharedMemoryModel"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">objects</code><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.objects"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">abstract</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.Meta.abstract"title="Permalink to this definition">¶</a></dt>
<emclass="property">classmethod </em><codeclass="sig-name descname">get_cached_instance</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">id</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.get_cached_instance"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.get_cached_instance"title="Permalink to this definition">¶</a></dt>
<emclass="property">classmethod </em><codeclass="sig-name descname">cache_instance</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">instance</span></em>, <emclass="sig-param"><spanclass="n">new</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.cache_instance"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.cache_instance"title="Permalink to this definition">¶</a></dt>
<emclass="property">classmethod </em><codeclass="sig-name descname">get_all_cached_instances</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.get_all_cached_instances"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.get_all_cached_instances"title="Permalink to this definition">¶</a></dt>
<dd><p>Return the objects so far cached by idmapper for this class.</p>
<emclass="property">classmethod </em><codeclass="sig-name descname">flush_cached_instance</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">instance</span></em>, <emclass="sig-param"><spanclass="n">force</span><spanclass="o">=</span><spanclass="default_value">True</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.flush_cached_instance"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.flush_cached_instance"title="Permalink to this definition">¶</a></dt>
<emclass="property">classmethod </em><codeclass="sig-name descname">flush_instance_cache</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">force</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.flush_instance_cache"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.flush_instance_cache"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_idmapper_flush</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.at_idmapper_flush"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.at_idmapper_flush"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called when the idmapper cache is flushed and
<codeclass="sig-name descname">flush_from_cache</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">force</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#SharedMemoryModel.flush_from_cache"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.flush_from_cache"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">delete</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/idmapper/models.html#SharedMemoryModel.delete"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.delete"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">save</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/idmapper/models.html#SharedMemoryModel.save"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.save"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.utils.idmapper.models.SharedMemoryModel'</em><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'SharedMemoryModelBase'</em><aclass="headerlink"href="#evennia.utils.idmapper.models.SharedMemoryModel.typename"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">WeakSharedMemoryModelBase</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">name</span></em>, <emclass="sig-param"><spanclass="n">bases</span></em>, <emclass="sig-param"><spanclass="n">attrs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#WeakSharedMemoryModelBase"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.WeakSharedMemoryModelBase"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">WeakSharedMemoryModel</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/idmapper/models.html#WeakSharedMemoryModel"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.WeakSharedMemoryModel"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-name descname">Meta</code><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#WeakSharedMemoryModel.Meta"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.WeakSharedMemoryModel.Meta"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">abstract</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.utils.idmapper.models.WeakSharedMemoryModel.Meta.abstract"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.utils.idmapper.models.WeakSharedMemoryModel'</em><aclass="headerlink"href="#evennia.utils.idmapper.models.WeakSharedMemoryModel.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'WeakSharedMemoryModelBase'</em><aclass="headerlink"href="#evennia.utils.idmapper.models.WeakSharedMemoryModel.typename"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">flush_cache</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/idmapper/models.html#flush_cache"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.flush_cache"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">flush_cached_instance</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">sender</span></em>, <emclass="sig-param"><spanclass="n">instance</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#flush_cached_instance"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.flush_cached_instance"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">update_cached_instance</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">sender</span></em>, <emclass="sig-param"><spanclass="n">instance</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#update_cached_instance"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.update_cached_instance"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">conditional_flush</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">max_rmem</span></em>, <emclass="sig-param"><spanclass="n">force</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#conditional_flush"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.conditional_flush"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.utils.idmapper.models.</code><codeclass="sig-name descname">cache_size</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">mb</span><spanclass="o">=</span><spanclass="default_value">True</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/utils/idmapper/models.html#cache_size"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.utils.idmapper.models.cache_size"title="Permalink to this definition">¶</a></dt>