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

1164 lines
No EOL
98 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.search &#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.test_resources" href="evennia.utils.test_resources.html" />
<link rel="prev" title="evennia.utils.picklefield" href="evennia.utils.picklefield.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.test_resources.html" title="evennia.utils.test_resources"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.utils.picklefield.html" title="evennia.utils.picklefield"
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.search</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.utils.search">
<span id="evennia-utils-search"></span><h1>evennia.utils.search<a class="headerlink" href="#module-evennia.utils.search" title="Link to this heading"></a></h1>
<p>This is a convenient container gathering all the main
search methods for the various database tables.</p>
<p>It is intended to be used e.g. as</p>
<p>&gt; from evennia.utils import search
&gt; match = search.objects(…)</p>
<p>Note that this is not intended to be a complete listing of all search
methods! You need to refer to the respective manager to get all
possible search methods. To get to the managers from your code, import
the database model and call its objects property.</p>
<p>Also remember that all commands in this file return lists (also if
there is only one match) unless noted otherwise.</p>
<dl class="simple">
<dt>Example: To reach the search method get_object_with_account</dt><dd><p>in evennia/objects/managers.py:</p>
</dd>
</dl>
<p>&gt; from evennia.objects.models import ObjectDB
&gt; match = Object.objects.get_object_with_account(…)</p>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_object">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_object</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_object"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_object" title="Link to this definition"></a></dt>
<dd><p>Search for objects in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Object key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all objects.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these object candidates,
if given. Default is to search all objects.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by objects with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>location</strong> (<em>Object</em>) Filter by objects at this location.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by objects having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by objects having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Objects matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_account">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_account</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_account"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_account" title="Link to this definition"></a></dt>
<dd><p>Search for accounts in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Account key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all accounts.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these account candidates,
if given. Default is to search all accounts.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by accounts with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by accounts having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Accounts matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_script">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_script</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_script"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_script" title="Link to this definition"></a></dt>
<dd><p>Search for scripts in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Script key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all scripts.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these script candidates,
if given. Default is to search all scripts.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by scripts with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) Filter by scripts defined on this object.</p></li>
<li><p><strong>account</strong> (<em>Account</em>) Filter by scripts defined on this account.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by scripts having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by scripts having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Scripts matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_message">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_message</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_message"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_message" title="Link to this definition"></a></dt>
<dd><p>Search for messages in the database.</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>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>str</em>) Filter by messages sent by this entity.
If a string, this is an external sender name.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>str</em>) Filter by messages received by this entity.
If a string, this is an external receiver name.</p></li>
<li><p><strong>channel</strong> (<em>Channel</em>) Filter by messages sent to this channel.</p></li>
<li><p><strong>date</strong> (<em>datetime</em>) Filter by messages sent on this date.</p></li>
<li><p><strong>type</strong> (<em>str</em>) Filter by messages of this type.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by messages having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>exclude_tags</strong> (<em>str</em><em> or </em><em>list</em>) Exclude messages with these tags.</p></li>
<li><p><strong>search_text</strong> (<em>str</em>) Search for text in message content.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) If True, require exact text match. Default False.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Messages matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_channel">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_channel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_channel" title="Link to this definition"></a></dt>
<dd><p>Search for channels in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Channel key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all channels.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these channel candidates,
if given. Default is to search all channels.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by channels with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by channels having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by channels having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Channels matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_help_entry">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_help_entry</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.search.search_help_entry" title="Link to this definition"></a></dt>
<dd><p>Search for help entries in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Help entry key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all help entries.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>category</strong> (<em>str</em>) Filter by help entries in this category.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by help entries having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Filter by help entries with these locks.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of HelpEntries matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_tag">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_tag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tagtype</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="headerlink" href="#evennia.utils.search.search_tag" title="Link to this definition"></a></dt>
<dd><p>Find object based on tag or category.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) The tag key to search for.</p></li>
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) The category of tag
to search for. If not set, uncategorized
tags will be searched.</p></li>
<li><p><strong>tagtype</strong> (<em>str</em><em>, </em><em>optional</em>) type of Tag, by default
this is either <strong>None</strong> (a normal Tag), <strong>alias</strong> or
<strong>permission</strong>. This always apply to all queried tags.</p></li>
<li><p><strong>kwargs</strong> (<em>any</em>) Other optional parameter that may be supported
by the manager method.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>matches (list)</em> </p>
<dl class="simple">
<dt>List of Objects with tags matching</dt><dd><p>the search criteria, or an empty list if no
matches were found.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_script_tag">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_script_tag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tagtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_script_tag"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_script_tag" title="Link to this definition"></a></dt>
<dd><p>Find script based on tag or category.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_account_tag">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_account_tag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tagtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_account_tag"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_account_tag" title="Link to this definition"></a></dt>
<dd><p>Find account based on tag or category.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_channel_tag">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_channel_tag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tagtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_channel_tag"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_channel_tag" title="Link to this definition"></a></dt>
<dd><p>Find channel based on tag or category.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_typeclass">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_typeclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">typeclass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">include_children</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">include_parents</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.utils.search.search_typeclass" title="Link to this definition"></a></dt>
<dd><p>Searches through all objects returning those of a certain typeclass.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>class</em>) A typeclass class or a python path to a typeclass.</p></li>
<li><p><strong>include_children</strong> (<em>bool</em><em>, </em><em>optional</em>) Return objects with
given typeclass <em>and</em> all children inheriting from this
typeclass. Mutuall exclusive to <strong>include_parents</strong>.</p></li>
<li><p><strong>include_parents</strong> (<em>bool</em><em>, </em><em>optional</em>) Return objects with
given typeclass <em>and</em> all parents to this typeclass.
Mutually exclusive to <strong>include_children</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>objects (list)</em> The objects found with the given typeclasses.</p>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.utils.search.SimpleLazyObject">
<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.search.</span></span><span class="sig-name descname"><span class="pre">SimpleLazyObject</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/utils/functional.html#SimpleLazyObject"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.SimpleLazyObject" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">LazyObject</span></code></p>
<p>A lazy object initialized from any function.</p>
<p>Designed for compound objects of unknown type. For builtins or objects of
known type, use django.utils.functional.lazy.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.utils.search.SimpleLazyObject.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/django/utils/functional.html#SimpleLazyObject.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.SimpleLazyObject.__init__" title="Link to this definition"></a></dt>
<dd><p>Pass in a callable that returns the object to be wrapped.</p>
<p>If copies are made of the resulting SimpleLazyObject, which can happen
in various circumstances within Django, then you must ensure that the
callable can be safely run more than once and will return the same
value.</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.account_search">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">account_search</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.search.account_search" title="Link to this definition"></a></dt>
<dd><p>Search for accounts in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Account key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all accounts.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these account candidates,
if given. Default is to search all accounts.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by accounts with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by accounts having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Accounts matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.accounts">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">accounts</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.search.accounts" title="Link to this definition"></a></dt>
<dd><p>Search for accounts in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Account key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all accounts.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these account candidates,
if given. Default is to search all accounts.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by accounts with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by accounts having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Accounts matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.channel_search">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">channel_search</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.search.channel_search" title="Link to this definition"></a></dt>
<dd><p>Search for channels in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Channel key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all channels.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these channel candidates,
if given. Default is to search all channels.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by channels with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by channels having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by channels having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Channels matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.channels">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">channels</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.search.channels" title="Link to this definition"></a></dt>
<dd><p>Search for channels in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Channel key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all channels.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these channel candidates,
if given. Default is to search all channels.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by channels with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by channels having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by channels having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Channels matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.help_entries">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">help_entries</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.search.help_entries" title="Link to this definition"></a></dt>
<dd><p>Search for help entries in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Help entry key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all help entries.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>category</strong> (<em>str</em>) Filter by help entries in this category.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by help entries having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Filter by help entries with these locks.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of HelpEntries matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.help_entry_search">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">help_entry_search</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.search.help_entry_search" title="Link to this definition"></a></dt>
<dd><p>Search for help entries in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Help entry key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all help entries.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>category</strong> (<em>str</em>) Filter by help entries in this category.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by help entries having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Filter by help entries with these locks.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of HelpEntries matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.message_search">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">message_search</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.search.message_search" title="Link to this definition"></a></dt>
<dd><p>Search for messages in the database.</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>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>str</em>) Filter by messages sent by this entity.
If a string, this is an external sender name.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>str</em>) Filter by messages received by this entity.
If a string, this is an external receiver name.</p></li>
<li><p><strong>channel</strong> (<em>Channel</em>) Filter by messages sent to this channel.</p></li>
<li><p><strong>date</strong> (<em>datetime</em>) Filter by messages sent on this date.</p></li>
<li><p><strong>type</strong> (<em>str</em>) Filter by messages of this type.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by messages having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>exclude_tags</strong> (<em>str</em><em> or </em><em>list</em>) Exclude messages with these tags.</p></li>
<li><p><strong>search_text</strong> (<em>str</em>) Search for text in message content.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) If True, require exact text match. Default False.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Messages matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.messages">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">messages</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.search.messages" title="Link to this definition"></a></dt>
<dd><p>Search for messages in the database.</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>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>str</em>) Filter by messages sent by this entity.
If a string, this is an external sender name.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>str</em>) Filter by messages received by this entity.
If a string, this is an external receiver name.</p></li>
<li><p><strong>channel</strong> (<em>Channel</em>) Filter by messages sent to this channel.</p></li>
<li><p><strong>date</strong> (<em>datetime</em>) Filter by messages sent on this date.</p></li>
<li><p><strong>type</strong> (<em>str</em>) Filter by messages of this type.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by messages having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>exclude_tags</strong> (<em>str</em><em> or </em><em>list</em>) Exclude messages with these tags.</p></li>
<li><p><strong>search_text</strong> (<em>str</em>) Search for text in message content.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) If True, require exact text match. Default False.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Messages matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.object_search">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">object_search</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.search.object_search" title="Link to this definition"></a></dt>
<dd><p>Search for objects in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Object key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all objects.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these object candidates,
if given. Default is to search all objects.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by objects with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>location</strong> (<em>Object</em>) Filter by objects at this location.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by objects having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by objects having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Objects matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.objects">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">objects</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.search.objects" title="Link to this definition"></a></dt>
<dd><p>Search for objects in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Object key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all objects.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these object candidates,
if given. Default is to search all objects.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by objects with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>location</strong> (<em>Object</em>) Filter by objects at this location.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by objects having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by objects having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Objects matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.script_search">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">script_search</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.search.script_search" title="Link to this definition"></a></dt>
<dd><p>Search for scripts in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Script key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all scripts.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these script candidates,
if given. Default is to search all scripts.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by scripts with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) Filter by scripts defined on this object.</p></li>
<li><p><strong>account</strong> (<em>Account</em>) Filter by scripts defined on this account.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by scripts having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by scripts having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Scripts matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.scripts">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">scripts</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.search.scripts" title="Link to this definition"></a></dt>
<dd><p>Search for scripts in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Script key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all scripts.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these script candidates,
if given. Default is to search all scripts.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by scripts with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) Filter by scripts defined on this object.</p></li>
<li><p><strong>account</strong> (<em>Account</em>) Filter by scripts defined on this account.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by scripts having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by scripts having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Scripts matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_account_attribute">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_account_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</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">strvalue</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">attrtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_account_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_account_attribute" title="Link to this definition"></a></dt>
<dd><p>Search for accounts by their attributes.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_accounts">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_accounts</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.search.search_accounts" title="Link to this definition"></a></dt>
<dd><p>Search for accounts in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Account key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all accounts.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these account candidates,
if given. Default is to search all accounts.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by accounts with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by accounts having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Accounts matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_attribute_object">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_attribute_object</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_attribute_object"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_attribute_object" title="Link to this definition"></a></dt>
<dd><p>Search for attribute objects.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_channel_attribute">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_channel_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</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">strvalue</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">attrtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_channel_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_channel_attribute" title="Link to this definition"></a></dt>
<dd><p>Search for channels by their attributes.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_channels">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_channels</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.search.search_channels" title="Link to this definition"></a></dt>
<dd><p>Search for channels in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Channel key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all channels.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these channel candidates,
if given. Default is to search all channels.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by channels with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by channels having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by channels having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Channels matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_help">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_help</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_help"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_help" title="Link to this definition"></a></dt>
<dd><p>Search for help entries in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Help entry key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all help entries.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>category</strong> (<em>str</em>) Filter by help entries in this category.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by help entries having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Filter by help entries with these locks.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of HelpEntries matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_help_entries">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_help_entries</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.search.search_help_entries" title="Link to this definition"></a></dt>
<dd><p>Search for help entries in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Help entry key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all help entries.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>category</strong> (<em>str</em>) Filter by help entries in this category.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by help entries having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Filter by help entries with these locks.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of HelpEntries matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_messages">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_messages</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.search.search_messages" title="Link to this definition"></a></dt>
<dd><p>Search for messages in the database.</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>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>str</em>) Filter by messages sent by this entity.
If a string, this is an external sender name.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>str</em>) Filter by messages received by this entity.
If a string, this is an external receiver name.</p></li>
<li><p><strong>channel</strong> (<em>Channel</em>) Filter by messages sent to this channel.</p></li>
<li><p><strong>date</strong> (<em>datetime</em>) Filter by messages sent on this date.</p></li>
<li><p><strong>type</strong> (<em>str</em>) Filter by messages of this type.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by messages having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>exclude_tags</strong> (<em>str</em><em> or </em><em>list</em>) Exclude messages with these tags.</p></li>
<li><p><strong>search_text</strong> (<em>str</em>) Search for text in message content.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) If True, require exact text match. Default False.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Messages matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_object_attribute">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_object_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</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">strvalue</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">attrtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_object_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_object_attribute" title="Link to this definition"></a></dt>
<dd><p>Search for objects by their attributes.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_object_by_tag">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_object_by_tag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tagtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_object_by_tag"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_object_by_tag" title="Link to this definition"></a></dt>
<dd><p>Find object based on tag or category.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) The tag key to search for.</p></li>
<li><p><strong>category</strong> (<em>str</em><em>, </em><em>optional</em>) The category of tag
to search for. If not set, uncategorized
tags will be searched.</p></li>
<li><p><strong>tagtype</strong> (<em>str</em><em>, </em><em>optional</em>) type of Tag, by default
this is either <strong>None</strong> (a normal Tag), <strong>alias</strong> or
<strong>permission</strong>. This always apply to all queried tags.</p></li>
<li><p><strong>kwargs</strong> (<em>any</em>) Other optional parameter that may be supported
by the manager method.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>matches (list)</em> </p>
<dl class="simple">
<dt>List of Objects with tags matching</dt><dd><p>the search criteria, or an empty list if no
matches were found.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_objects">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_objects</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.search.search_objects" title="Link to this definition"></a></dt>
<dd><p>Search for objects in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Object key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all objects.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these object candidates,
if given. Default is to search all objects.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by objects with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>location</strong> (<em>Object</em>) Filter by objects at this location.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by objects having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by objects having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Objects matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_objects_by_typeclass">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_objects_by_typeclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">typeclass</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">include_children</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">include_parents</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_objects_by_typeclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_objects_by_typeclass" title="Link to this definition"></a></dt>
<dd><p>Searches through all objects returning those of a certain typeclass.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>class</em>) A typeclass class or a python path to a typeclass.</p></li>
<li><p><strong>include_children</strong> (<em>bool</em><em>, </em><em>optional</em>) Return objects with
given typeclass <em>and</em> all children inheriting from this
typeclass. Mutuall exclusive to <strong>include_parents</strong>.</p></li>
<li><p><strong>include_parents</strong> (<em>bool</em><em>, </em><em>optional</em>) Return objects with
given typeclass <em>and</em> all parents to this typeclass.
Mutually exclusive to <strong>include_children</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>objects (list)</em> The objects found with the given typeclasses.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_script_attribute">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_script_attribute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">value</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">strvalue</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">attrtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_script_attribute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_script_attribute" title="Link to this definition"></a></dt>
<dd><p>Search for scripts by their attributes.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_scripts">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_scripts</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.search.search_scripts" title="Link to this definition"></a></dt>
<dd><p>Search for scripts in the database.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>key</strong> (<em>str</em><em> or </em><em>int</em>) Script key or dbref to search for. This can also
be a list of keys/dbrefs. <strong>None</strong> (default) returns all scripts.</p></li>
<li><p><strong>exact</strong> (<em>bool</em>) Only valid for string keys. If True, requires exact
key match, otherwise also match key with case-insensitive and
partial matching. Default is True.</p></li>
<li><p><strong>candidates</strong> (<em>list</em>) Only search among these script candidates,
if given. Default is to search all scripts.</p></li>
<li><p><strong>attribute_name</strong> (<em>str</em>) If set, search by scripts with this attribute_name
defined on them, with the value specified by <strong>attribute_value</strong>.</p></li>
<li><p><strong>attribute_value</strong> (<em>any</em>) What value the given attribute_name must have.</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) Filter by scripts defined on this object.</p></li>
<li><p><strong>account</strong> (<em>Account</em>) Filter by scripts defined on this account.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>TypeClass</em>) Filter by scripts having this typeclass.
This can also be a list of typeclasses.</p></li>
<li><p><strong>tags</strong> (<em>str</em><em> or </em><em>list</em>) Filter by scripts having one or more Tags.
This can be a single tag key, a list of tag keys, or a list of
tuples (tag_key, tag_category).</p></li>
<li><p><strong>nofetch</strong> (<em>bool</em>) Dont fetch typeclass and perms data from db.
This is faster but gives less info.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>matches (list)</em> List of Scripts matching the search criteria.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.utils.search.search_tag_object">
<span class="sig-prename descclassname"><span class="pre">evennia.utils.search.</span></span><span class="sig-name descname"><span class="pre">search_tag_object</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/search.html#search_tag_object"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.search.search_tag_object" title="Link to this definition"></a></dt>
<dd><p>Search for tag objects.</p>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.utils.search</a><ul>
<li><a class="reference internal" href="#evennia.utils.search.search_object"><code class="docutils literal notranslate"><span class="pre">search_object()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_account"><code class="docutils literal notranslate"><span class="pre">search_account()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_script"><code class="docutils literal notranslate"><span class="pre">search_script()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_message"><code class="docutils literal notranslate"><span class="pre">search_message()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_channel"><code class="docutils literal notranslate"><span class="pre">search_channel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_help_entry"><code class="docutils literal notranslate"><span class="pre">search_help_entry()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_tag"><code class="docutils literal notranslate"><span class="pre">search_tag()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_script_tag"><code class="docutils literal notranslate"><span class="pre">search_script_tag()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_account_tag"><code class="docutils literal notranslate"><span class="pre">search_account_tag()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_channel_tag"><code class="docutils literal notranslate"><span class="pre">search_channel_tag()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_typeclass"><code class="docutils literal notranslate"><span class="pre">search_typeclass()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.SimpleLazyObject"><code class="docutils literal notranslate"><span class="pre">SimpleLazyObject</span></code></a><ul>
<li><a class="reference internal" href="#evennia.utils.search.SimpleLazyObject.__init__"><code class="docutils literal notranslate"><span class="pre">SimpleLazyObject.__init__()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.utils.search.account_search"><code class="docutils literal notranslate"><span class="pre">account_search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.accounts"><code class="docutils literal notranslate"><span class="pre">accounts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.channel_search"><code class="docutils literal notranslate"><span class="pre">channel_search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.channels"><code class="docutils literal notranslate"><span class="pre">channels()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.help_entries"><code class="docutils literal notranslate"><span class="pre">help_entries()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.help_entry_search"><code class="docutils literal notranslate"><span class="pre">help_entry_search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.message_search"><code class="docutils literal notranslate"><span class="pre">message_search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.messages"><code class="docutils literal notranslate"><span class="pre">messages()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.object_search"><code class="docutils literal notranslate"><span class="pre">object_search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.objects"><code class="docutils literal notranslate"><span class="pre">objects()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.script_search"><code class="docutils literal notranslate"><span class="pre">script_search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.scripts"><code class="docutils literal notranslate"><span class="pre">scripts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_account_attribute"><code class="docutils literal notranslate"><span class="pre">search_account_attribute()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_accounts"><code class="docutils literal notranslate"><span class="pre">search_accounts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_attribute_object"><code class="docutils literal notranslate"><span class="pre">search_attribute_object()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_channel_attribute"><code class="docutils literal notranslate"><span class="pre">search_channel_attribute()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_channels"><code class="docutils literal notranslate"><span class="pre">search_channels()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_help"><code class="docutils literal notranslate"><span class="pre">search_help()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_help_entries"><code class="docutils literal notranslate"><span class="pre">search_help_entries()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_messages"><code class="docutils literal notranslate"><span class="pre">search_messages()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_object_attribute"><code class="docutils literal notranslate"><span class="pre">search_object_attribute()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_object_by_tag"><code class="docutils literal notranslate"><span class="pre">search_object_by_tag()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_objects"><code class="docutils literal notranslate"><span class="pre">search_objects()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_objects_by_typeclass"><code class="docutils literal notranslate"><span class="pre">search_objects_by_typeclass()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_script_attribute"><code class="docutils literal notranslate"><span class="pre">search_script_attribute()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_scripts"><code class="docutils literal notranslate"><span class="pre">search_scripts()</span></code></a></li>
<li><a class="reference internal" href="#evennia.utils.search.search_tag_object"><code class="docutils literal notranslate"><span class="pre">search_tag_object()</span></code></a></li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.utils.picklefield.html"
title="previous chapter">evennia.utils.picklefield</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.utils.test_resources.html"
title="next chapter">evennia.utils.test_resources</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.search.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.test_resources.html" title="evennia.utils.test_resources"
>next</a> |</li>
<li class="right" >
<a href="evennia.utils.picklefield.html" title="evennia.utils.picklefield"
>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.search</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>