<spanid="evennia-contrib-base-systems-components-dbfield"></span><h1>evennia.contrib.base_systems.components.dbfield<aclass="headerlink"href="#module-evennia.contrib.base_systems.components.dbfield"title="Permalink to this headline">¶</a></h1>
<p>Components - ChrisLR 2022</p>
<p>This file contains the Descriptors used to set Fields in Components</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.dbfield.</code><codeclass="sig-name descname">DBField</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">default</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">autocreate</span><spanclass="o">=</span><spanclass="default_value">False</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#DBField"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.DBField"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">default</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">autocreate</span><spanclass="o">=</span><spanclass="default_value">False</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#DBField.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.DBField.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Allows for specifying Attributes as Django-like ‘fields’ on the class level. Note that while
one can set a lock on the Attribute, there is no way to <em>check</em> said lock when accessing via
the property - use the full <strong>AttributeHandler</strong> if you need to do access checks. Note however
that if you use the full <strong>AttributeHandler</strong> to access this Attribute, the <strong>at_get/at_set</strong>
methods on this class will _not_ fire (because you are bypassing the <strong>AttributeProperty</strong>
entirely in that case).</p>
<p>Initialize an Attribute as a property descriptor.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Keyword Arguments</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>default</strong> (<em>any</em>) – A default value if the attr is not set. If a callable, this will be
run without any arguments and is expected to return the default value.</p></li>
<li><p><strong>category</strong> (<em>str</em>) – The attribute’s category. If unset, use class default.</p></li>
<li><p><strong>strattr</strong> (<em>bool</em>) – If set, this Attribute <em>must</em> be a simple string, and will be
stored more efficiently.</p></li>
<li><p><strong>lockstring</strong> (<em>str</em>) – This is not itself useful with the property, but only if
using the full AttributeHandler.get(accessing_obj=…) to access the
Attribute.</p></li>
<li><p><strong>autocreate</strong> (<em>bool</em>) – True by default; this means Evennia makes sure to create a new
copy of the Attribute (with the default value) whenever a new object with this
property is created. If <strong>False</strong>, no Attribute will be created until the property
is explicitly assigned a value. This makes it more efficient while it retains
its default (there’s no db access), but without an actual Attribute generated,
one cannot access it via .db, the AttributeHandler or see it with <strong>examine</strong>.</p></li>
<codeclass="sig-name descname">at_added</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">component</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#DBField.at_added"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.DBField.at_added"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the parent component is added to a host.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>component</strong> (<aclass="reference internal"href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component"title="evennia.contrib.base_systems.components.component.Component"><em>Component</em></a>) – The component instance being added.</p>
<codeclass="sig-name descname">at_removed</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">component</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#DBField.at_removed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.DBField.at_removed"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the parent component is removed from a host.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>component</strong> (<aclass="reference internal"href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component"title="evennia.contrib.base_systems.components.component.Component"><em>Component</em></a>) – The component instance being removed.</p>
<codeclass="sig-name descname">at_added</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">component</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#NDBField.at_added"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.NDBField.at_added"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the parent component is added to a host.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>component</strong> (<aclass="reference internal"href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component"title="evennia.contrib.base_systems.components.component.Component"><em>Component</em></a>) – The component instance being added.</p>
<codeclass="sig-name descname">at_removed</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">component</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#NDBField.at_removed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.NDBField.at_removed"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the parent component is removed from a host.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>component</strong> (<aclass="reference internal"href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component"title="evennia.contrib.base_systems.components.component.Component"><em>Component</em></a>) – The component instance being removed.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.dbfield.</code><codeclass="sig-name descname">TagField</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">default</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">enforce_single</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#TagField"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.TagField"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">default</span><spanclass="o">=</span><spanclass="default_value">None</span></em>, <emclass="sig-param"><spanclass="n">enforce_single</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#TagField.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.TagField.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">at_added</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">component</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#TagField.at_added"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.TagField.at_added"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the parent component is added to a host.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>component</strong> (<aclass="reference internal"href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component"title="evennia.contrib.base_systems.components.component.Component"><em>Component</em></a>) – The component instance being added.</p>
<codeclass="sig-name descname">at_removed</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">component</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/dbfield.html#TagField.at_removed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.dbfield.TagField.at_removed"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the parent component is removed from a host.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>component</strong> (<aclass="reference internal"href="evennia.contrib.base_systems.components.component.html#evennia.contrib.base_systems.components.component.Component"title="evennia.contrib.base_systems.components.component.Component"><em>Component</em></a>) – The component instance being removed.</p>