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

2056 lines
No EOL
198 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.commands.default.help &#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.commands.default.muxcommand" href="evennia.commands.default.muxcommand.html" />
<link rel="prev" title="evennia.commands.default.general" href="evennia.commands.default.general.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.commands.default.muxcommand.html" title="evennia.commands.default.muxcommand"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.commands.default.general.html" title="evennia.commands.default.general"
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.commands.html" >evennia.commands</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.commands.default.html" accesskey="U">evennia.commands.default</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.help</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.commands.default.help">
<span id="evennia-commands-default-help"></span><h1>evennia.commands.default.help<a class="headerlink" href="#module-evennia.commands.default.help" title="Link to this heading"></a></h1>
<p>The help command. The basic idea is that help texts for commands are best
written by those that write the commands - the developers. So command-help is
all auto-loaded and searched from the current command set. The normal,
database-tied help system is used for collaborative creation of other help
topics such as RP help or game-world aides. Help entries can also be created
outside the game in modules given by <strong>**settings.FILE_HELP_ENTRY_MODULES**</strong>.</p>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp">
<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.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">CmdHelp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">MuxCommand</span></code></a></p>
<p>Get help.</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>help
help &lt;topic, command or category&gt;
help &lt;topic&gt;/&lt;subtopic&gt;
help &lt;topic&gt;/&lt;subtopic&gt;/&lt;subsubtopic&gt;</p>
</dd>
</dl>
<p>Use the help command alone to see an index of all help topics, organized
by category. Some big topics may offer additional sub-topics.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'help'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">['?']</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.locks">
<span class="sig-name descname"><span class="pre">locks</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all()'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.locks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.arg_regex">
<span class="sig-name descname"><span class="pre">arg_regex</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">re.compile('\\s|$',</span> <span class="pre">re.IGNORECASE)</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.arg_regex" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.return_cmdset">
<span class="sig-name descname"><span class="pre">return_cmdset</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.return_cmdset" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.help_more">
<span class="sig-name descname"><span class="pre">help_more</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.help_more" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.index_type_separator_clr">
<span class="sig-name descname"><span class="pre">index_type_separator_clr</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'|w'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.index_type_separator_clr" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.index_category_clr">
<span class="sig-name descname"><span class="pre">index_category_clr</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'|W'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.index_category_clr" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.index_topic_clr">
<span class="sig-name descname"><span class="pre">index_topic_clr</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'|G'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.index_topic_clr" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.suggestion_cutoff">
<span class="sig-name descname"><span class="pre">suggestion_cutoff</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0.6</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.suggestion_cutoff" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.suggestion_maxnum">
<span class="sig-name descname"><span class="pre">suggestion_maxnum</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">5</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.suggestion_maxnum" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.subtopic_separator_char">
<span class="sig-name descname"><span class="pre">subtopic_separator_char</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'/'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.subtopic_separator_char" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.clickable_topics">
<span class="sig-name descname"><span class="pre">clickable_topics</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.clickable_topics" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.msg_help">
<span class="sig-name descname"><span class="pre">msg_help</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="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/commands/default/help.html#CmdHelp.msg_help"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.msg_help" title="Link to this definition"></a></dt>
<dd><p>messages text to the caller, adding an extra oob argument to indicate
that this is a help command result and could be rendered in a separate
help window.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.format_help_entry">
<span class="sig-name descname"><span class="pre">format_help_entry</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">topic</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">help_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">aliases</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">suggested</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">subtopics</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">click_topics</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.format_help_entry"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.format_help_entry" title="Link to this definition"></a></dt>
<dd><p>This visually formats the help entry.
This method can be overridden to customize the way a help
entry is displayed.</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>title</strong> (<em>str</em><em>, </em><em>optional</em>) The title of the help entry.</p></li>
<li><p><strong>help_text</strong> (<em>str</em><em>, </em><em>optional</em>) Text of the help entry.</p></li>
<li><p><strong>aliases</strong> (<em>list</em><em>, </em><em>optional</em>) List of help-aliases (displayed in header).</p></li>
<li><p><strong>suggested</strong> (<em>list</em><em>, </em><em>optional</em>) Strings suggested reading (based on title).</p></li>
<li><p><strong>subtopics</strong> (<em>list</em><em>, </em><em>optional</em>) A list of strings - the subcategories available
for this entry.</p></li>
<li><p><strong>click_topics</strong> (<em>bool</em><em>, </em><em>optional</em>) Should help topics be clickable. Default is True.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>help_message (str)</em> Help entry formated for console.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.format_help_index">
<span class="sig-name descname"><span class="pre">format_help_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cmd_help_dict</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">db_help_dict</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">title_lone_category</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">click_topics</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.format_help_index"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.format_help_index" title="Link to this definition"></a></dt>
<dd><p>Output a category-ordered g for displaying the main help, grouped by
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>cmd_help_dict</strong> (<em>dict</em>) A dict <strong>{“category”: [topic, topic, …]}</strong> for
command-based help.</p></li>
<li><p><strong>db_help_dict</strong> (<em>dict</em>) A dict <strong>{“category”: [topic, topic], …]}</strong> for
database-based help.</p></li>
<li><p><strong>title_lone_category</strong> (<em>bool</em><em>, </em><em>optional</em>) If a lone category should
be titled with the category name or not. While pointless in a
general index, the title should probably show when explicitly
listing the category itself.</p></li>
<li><p><strong>click_topics</strong> (<em>bool</em><em>, </em><em>optional</em>) If help-topics are clickable or not
(for webclient or telnet clients with MXP support).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>str</em> The help index organized into a grid.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The input are the pre-loaded help files for commands and database-helpfiles
respectively. You can override this method to return a custom display of the list of
commands and topics.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.can_read_topic">
<span class="sig-name descname"><span class="pre">can_read_topic</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cmd_or_topic</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">caller</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.can_read_topic"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.can_read_topic" title="Link to this definition"></a></dt>
<dd><p>Helper method. If this return True, the given help topic
be viewable in the help listing. Note that even if this returns False,
the entry will still be visible in the help index unless <strong>should_list_topic</strong>
is also returning False.</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>cmd_or_topic</strong> (<a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><em>Command</em></a><em>, </em><a class="reference internal" href="#evennia.commands.default.help.HelpEntry" title="evennia.commands.default.help.HelpEntry"><em>HelpEntry</em></a><em> or </em><a class="reference internal" href="evennia.help.filehelp.html#evennia.help.filehelp.FileHelpEntry" title="evennia.help.filehelp.FileHelpEntry"><em>FileHelpEntry</em></a>) The topic/command to test.</p></li>
<li><p><strong>caller</strong> the caller checking for access.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>bool</em> If command can be viewed or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This uses the read lock. If no read lock is defined, the topic is assumed readable
by all.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.can_list_topic">
<span class="sig-name descname"><span class="pre">can_list_topic</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cmd_or_topic</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">caller</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.can_list_topic"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.can_list_topic" title="Link to this definition"></a></dt>
<dd><p>Should the specified command appear in the help table?</p>
<p>This method only checks whether a specified command should appear in the table of
topics/commands. The command can be used by the caller (see the should_show_help method)
and the command will still be available, for instance, if a character type help name of the
command. However, if you return False, the specified command will not appear in the table.
This is sometimes useful to “hide” commands in the table, but still access them through the
help system.</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>cmd_or_topic</strong> (<a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><em>Command</em></a><em>, </em><a class="reference internal" href="#evennia.commands.default.help.HelpEntry" title="evennia.commands.default.help.HelpEntry"><em>HelpEntry</em></a><em> or </em><a class="reference internal" href="evennia.help.filehelp.html#evennia.help.filehelp.FileHelpEntry" title="evennia.help.filehelp.FileHelpEntry"><em>FileHelpEntry</em></a>) The topic/command to test.</p></li>
<li><p><strong>caller</strong> the caller checking for access.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>bool</em> If command should be listed or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The <strong>.auto_help</strong> propery is checked for commands. For all help entries,
the view lock will be checked, and if no such lock is defined, the read
lock will be used. If neither lock is defined, the help entry is assumed to be
accessible to all.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.collect_topics">
<span class="sig-name descname"><span class="pre">collect_topics</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'list'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.collect_topics"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.collect_topics" title="Link to this definition"></a></dt>
<dd><p>Collect help topics from all sources (cmd/db/file).</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>caller</strong> (<em>Object</em><em> or </em><em>Account</em>) The user of the Command.</p></li>
<li><p><strong>mode</strong> (<em>str</em>) One of list or query, where the first means we are collecting to view
the help index and the second because of wanting to search for a specific help
entry/cmd to read. This determines which access should be checked.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>tuple</em> A tuple of three dicts containing the different types of help entries
in the order cmd-help, db-help, file-help:</p>
<blockquote>
<div><p><strong>({key: cmd,…}, {key: dbentry,…}, {key: fileentry,…}</strong></p>
</div></blockquote>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.do_search">
<span class="sig-name descname"><span class="pre">do_search</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">entries</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">search_fields</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.do_search"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.do_search" title="Link to this definition"></a></dt>
<dd><p>Perform a help-query search, default using Lunr search engine.</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>query</strong> (<em>str</em>) The help entry to search for.</p></li>
<li><p><strong>entries</strong> (<em>list</em>) All possibilities. A mix of commands, HelpEntries and FileHelpEntries.</p></li>
<li><p><strong>search_fields</strong> (<em>list</em>) A list of dicts defining how Lunr will find the
search data on the elements. If not given, will use a default.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>tuple</em> A tuple (match, suggestions).</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.parse">
<span class="sig-name descname"><span class="pre">parse</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.parse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.parse" title="Link to this definition"></a></dt>
<dd><p>input is a string containing the command or topic to match.</p>
<p>The allowed syntax is</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">help</span> <span class="o">&lt;</span><span class="n">topic</span><span class="o">&gt;</span><span class="p">[</span><span class="o">/&lt;</span><span class="n">subtopic</span><span class="o">&gt;</span><span class="p">[</span><span class="o">/&lt;</span><span class="n">subtopic</span><span class="o">&gt;</span><span class="p">[</span><span class="o">/...</span><span class="p">]]]</span>
</pre></div>
</div>
<p>The database/command query is always for <strong>&lt;topic&gt;</strong>, and any subtopics
is then parsed from there. If a <strong>&lt;topic&gt;</strong> has spaces in it, it is
always matched before assuming the space begins a subtopic.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.strip_cmd_prefix">
<span class="sig-name descname"><span class="pre">strip_cmd_prefix</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">all_keys</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.strip_cmd_prefix"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.strip_cmd_prefix" title="Link to this definition"></a></dt>
<dd><p>Conditional strip of a command prefix, such as &#64; in &#64;desc. By default
this will be hidden unless there is a duplicate without the prefix
in the full command set (such as &#64;open and open).</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>) Command key to analyze.</p></li>
<li><p><strong>all_cmds</strong> (<em>list</em>) All command-keys (and potentially aliases).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>str</em> Potentially modified key to use in help display.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.func">
<span class="sig-name descname"><span class="pre">func</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdHelp.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.func" title="Link to this definition"></a></dt>
<dd><p>Run the dynamic help entry creator.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.help_category">
<span class="sig-name descname"><span class="pre">help_category</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'general'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.help_category" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.lock_storage">
<span class="sig-name descname"><span class="pre">lock_storage</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all()'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.lock_storage" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdHelp.search_index_entry">
<span class="sig-name descname"><span class="pre">search_index_entry</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'aliases':</span> <span class="pre">'?',</span> <span class="pre">'category':</span> <span class="pre">'general',</span> <span class="pre">'key':</span> <span class="pre">'help',</span> <span class="pre">'no_prefix':</span> <span class="pre">'</span> <span class="pre">?',</span> <span class="pre">'tags':</span> <span class="pre">'',</span> <span class="pre">'text':</span> <span class="pre">&quot;\nGet</span> <span class="pre">help.\n\nUsage:\n</span>&#160; <span class="pre">help\n</span>&#160; <span class="pre">help</span> <span class="pre">&lt;topic,</span> <span class="pre">command</span> <span class="pre">or</span> <span class="pre">category&gt;\n</span>&#160; <span class="pre">help</span> <span class="pre">&lt;topic&gt;/&lt;subtopic&gt;\n</span>&#160; <span class="pre">help</span> <span class="pre">&lt;topic&gt;/&lt;subtopic&gt;/&lt;subsubtopic&gt;</span> <span class="pre">...\n\nUse</span> <span class="pre">the</span> <span class="pre">'help'</span> <span class="pre">command</span> <span class="pre">alone</span> <span class="pre">to</span> <span class="pre">see</span> <span class="pre">an</span> <span class="pre">index</span> <span class="pre">of</span> <span class="pre">all</span> <span class="pre">help</span> <span class="pre">topics,</span> <span class="pre">organized\nby</span> <span class="pre">category.</span> <span class="pre">Some</span> <span class="pre">big</span> <span class="pre">topics</span> <span class="pre">may</span> <span class="pre">offer</span> <span class="pre">additional</span> <span class="pre">sub-topics.\n\n&quot;}</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdHelp.search_index_entry" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp">
<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.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">CmdSetHelp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdSetHelp"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.commands.default.help.CmdHelp" title="evennia.commands.default.help.CmdHelp"><code class="xref py py-class docutils literal notranslate"><span class="pre">CmdHelp</span></code></a></p>
<p>Edit the help database.</p>
<dl class="simple">
<dt>Usage:</dt><dd><dl class="simple">
<dt>sethelp[/switches] &lt;topic&gt;[[;alias;alias][,category[,locks]]</dt><dd><p>[= &lt;text or new value&gt;]</p>
</dd>
</dl>
</dd>
<dt>Switches:</dt><dd><p>edit - open a line editor to edit the topics help text.
replace - overwrite existing help topic.
append - add text to the end of existing topic with a newline between.
extend - as append, but dont add a newline.
category - change category of existing help topic.
locks - change locks of existing help topic.
delete - remove help topic.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<p>sethelp lore = In the beginning was …
sethelp/append pickpocketing,Thievery = This steals …
sethelp/replace pickpocketing, ,attr(is_thief) = This steals …
sethelp/edit thievery
sethelp/locks thievery = read:all()
sethelp/category thievery = classes</p>
<p>If not assigning a category, the <strong>settings.DEFAULT_HELP_CATEGORY</strong> category
will be used. If no lockstring is specified, everyone will be able to read
the help entry. Sub-topics are embedded in the help text.</p>
<p>Note that this cannot modify command-help entries - these are modified
in-code, outside the game.</p>
<section id="subtopics">
<h2>SUBTOPICS<a class="headerlink" href="#subtopics" title="Link to this heading"></a></h2>
<section id="adding-subtopics">
<h3>Adding subtopics<a class="headerlink" href="#adding-subtopics" title="Link to this heading"></a></h3>
<p>Subtopics helps to break up a long help entry into sub-sections. Users can
access subtopics with <a href="#id1"><span class="problematic" id="id2">|</span></a>whelp topic/subtopic/…|n Subtopics are created and
stored together with the main topic.</p>
<p>To start adding subtopics, add the text # SUBTOPICS on a new line at the
end of your help text. After this you can now add any number of subtopics,
each starting with ## &lt;subtopic-name&gt; on a line, followed by the
help-text of that subtopic.
Use ### &lt;subsub-name&gt; to add a sub-subtopic and so on. Max depth is 5. A
subtopics title is case-insensitive and can consist of multiple words -
the user will be able to enter a partial match to access it.</p>
<p>For example:</p>
<div class="line-block">
<div class="line">Main help text for &lt;topic&gt;</div>
<div class="line"><br /></div>
<div class="line"># SUBTOPICS</div>
<div class="line"><br /></div>
<div class="line">## about</div>
<div class="line"><br /></div>
<div class="line">Text for the &lt;topic&gt;/about subtopic</div>
<div class="line"><br /></div>
<div class="line">### more about-info</div>
<div class="line"><br /></div>
<div class="line">Text for the &lt;topic&gt;/about/more about-info sub-subtopic</div>
<div class="line"><br /></div>
<div class="line">## extra</div>
<div class="line"><br /></div>
<div class="line">Text for the &lt;topic&gt;/extra subtopic</div>
</div>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'sethelp'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.switch_options">
<span class="sig-name descname"><span class="pre">switch_options</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">('edit',</span> <span class="pre">'replace',</span> <span class="pre">'append',</span> <span class="pre">'extend',</span> <span class="pre">'category',</span> <span class="pre">'locks',</span> <span class="pre">'delete')</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.switch_options" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.locks">
<span class="sig-name descname"><span class="pre">locks</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:perm(Helper)'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.locks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.help_category">
<span class="sig-name descname"><span class="pre">help_category</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'building'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.help_category" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.arg_regex">
<span class="sig-name descname"><span class="pre">arg_regex</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.arg_regex" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.parse">
<span class="sig-name descname"><span class="pre">parse</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdSetHelp.parse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.parse" title="Link to this definition"></a></dt>
<dd><p>We want to use the default parser rather than the CmdHelp.parse</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.func">
<span class="sig-name descname"><span class="pre">func</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#CmdSetHelp.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.func" title="Link to this definition"></a></dt>
<dd><p>Implement the function</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.lock_storage">
<span class="sig-name descname"><span class="pre">lock_storage</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:perm(Helper)'</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.lock_storage" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.CmdSetHelp.search_index_entry">
<span class="sig-name descname"><span class="pre">search_index_entry</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'aliases':</span> <span class="pre">'',</span> <span class="pre">'category':</span> <span class="pre">'building',</span> <span class="pre">'key':</span> <span class="pre">'sethelp',</span> <span class="pre">'no_prefix':</span> <span class="pre">'</span> <span class="pre">',</span> <span class="pre">'tags':</span> <span class="pre">'',</span> <span class="pre">'text':</span> <span class="pre">&quot;\nEdit</span> <span class="pre">the</span> <span class="pre">help</span> <span class="pre">database.\n\nUsage:\n</span>&#160; <span class="pre">sethelp[/switches]</span> <span class="pre">&lt;topic&gt;[[;alias;alias][,category[,locks]]\n</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">[=</span> <span class="pre">&lt;text</span> <span class="pre">or</span> <span class="pre">new</span> <span class="pre">value&gt;]\nSwitches:\n</span>&#160; <span class="pre">edit</span> <span class="pre">-</span> <span class="pre">open</span> <span class="pre">a</span> <span class="pre">line</span> <span class="pre">editor</span> <span class="pre">to</span> <span class="pre">edit</span> <span class="pre">the</span> <span class="pre">topic's</span> <span class="pre">help</span> <span class="pre">text.\n</span>&#160; <span class="pre">replace</span> <span class="pre">-</span> <span class="pre">overwrite</span> <span class="pre">existing</span> <span class="pre">help</span> <span class="pre">topic.\n</span>&#160; <span class="pre">append</span> <span class="pre">-</span> <span class="pre">add</span> <span class="pre">text</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">end</span> <span class="pre">of</span> <span class="pre">existing</span> <span class="pre">topic</span> <span class="pre">with</span> <span class="pre">a</span> <span class="pre">newline</span> <span class="pre">between.\n</span>&#160; <span class="pre">extend</span> <span class="pre">-</span> <span class="pre">as</span> <span class="pre">append,</span> <span class="pre">but</span> <span class="pre">don't</span> <span class="pre">add</span> <span class="pre">a</span> <span class="pre">newline.\n</span>&#160; <span class="pre">category</span> <span class="pre">-</span> <span class="pre">change</span> <span class="pre">category</span> <span class="pre">of</span> <span class="pre">existing</span> <span class="pre">help</span> <span class="pre">topic.\n</span>&#160; <span class="pre">locks</span> <span class="pre">-</span> <span class="pre">change</span> <span class="pre">locks</span> <span class="pre">of</span> <span class="pre">existing</span> <span class="pre">help</span> <span class="pre">topic.\n</span>&#160; <span class="pre">delete</span> <span class="pre">-</span> <span class="pre">remove</span> <span class="pre">help</span> <span class="pre">topic.\n\nExamples:\n</span>&#160; <span class="pre">sethelp</span> <span class="pre">lore</span> <span class="pre">=</span> <span class="pre">In</span> <span class="pre">the</span> <span class="pre">beginning</span> <span class="pre">was</span> <span class="pre">...\n</span>&#160; <span class="pre">sethelp/append</span> <span class="pre">pickpocketing,Thievery</span> <span class="pre">=</span> <span class="pre">This</span> <span class="pre">steals</span> <span class="pre">...\n</span>&#160; <span class="pre">sethelp/replace</span> <span class="pre">pickpocketing,</span> <span class="pre">,attr(is_thief)</span> <span class="pre">=</span> <span class="pre">This</span> <span class="pre">steals</span> <span class="pre">...\n</span>&#160; <span class="pre">sethelp/edit</span> <span class="pre">thievery\n</span>&#160; <span class="pre">sethelp/locks</span> <span class="pre">thievery</span> <span class="pre">=</span> <span class="pre">read:all()\n</span>&#160; <span class="pre">sethelp/category</span> <span class="pre">thievery</span> <span class="pre">=</span> <span class="pre">classes\n\nIf</span> <span class="pre">not</span> <span class="pre">assigning</span> <span class="pre">a</span> <span class="pre">category,</span> <span class="pre">the</span> <span class="pre">`settings.DEFAULT_HELP_CATEGORY`</span> <span class="pre">category\nwill</span> <span class="pre">be</span> <span class="pre">used.</span> <span class="pre">If</span> <span class="pre">no</span> <span class="pre">lockstring</span> <span class="pre">is</span> <span class="pre">specified,</span> <span class="pre">everyone</span> <span class="pre">will</span> <span class="pre">be</span> <span class="pre">able</span> <span class="pre">to</span> <span class="pre">read\nthe</span> <span class="pre">help</span> <span class="pre">entry.</span>&#160; <span class="pre">Sub-topics</span> <span class="pre">are</span> <span class="pre">embedded</span> <span class="pre">in</span> <span class="pre">the</span> <span class="pre">help</span> <span class="pre">text.\n\nNote</span> <span class="pre">that</span> <span class="pre">this</span> <span class="pre">cannot</span> <span class="pre">modify</span> <span class="pre">command-help</span> <span class="pre">entries</span> <span class="pre">-</span> <span class="pre">these</span> <span class="pre">are</span> <span class="pre">modified\nin-code,</span> <span class="pre">outside</span> <span class="pre">the</span> <span class="pre">game.\n\n#</span> <span class="pre">SUBTOPICS\n\n##</span> <span class="pre">Adding</span> <span class="pre">subtopics\n\nSubtopics</span> <span class="pre">helps</span> <span class="pre">to</span> <span class="pre">break</span> <span class="pre">up</span> <span class="pre">a</span> <span class="pre">long</span> <span class="pre">help</span> <span class="pre">entry</span> <span class="pre">into</span> <span class="pre">sub-sections.</span> <span class="pre">Users</span> <span class="pre">can\naccess</span> <span class="pre">subtopics</span> <span class="pre">with</span> <span class="pre">|whelp</span> <span class="pre">topic/subtopic/...|n</span> <span class="pre">Subtopics</span> <span class="pre">are</span> <span class="pre">created</span> <span class="pre">and\nstored</span> <span class="pre">together</span> <span class="pre">with</span> <span class="pre">the</span> <span class="pre">main</span> <span class="pre">topic.\n\nTo</span> <span class="pre">start</span> <span class="pre">adding</span> <span class="pre">subtopics,</span> <span class="pre">add</span> <span class="pre">the</span> <span class="pre">text</span> <span class="pre">'#</span> <span class="pre">SUBTOPICS'</span> <span class="pre">on</span> <span class="pre">a</span> <span class="pre">new</span> <span class="pre">line</span> <span class="pre">at</span> <span class="pre">the\nend</span> <span class="pre">of</span> <span class="pre">your</span> <span class="pre">help</span> <span class="pre">text.</span> <span class="pre">After</span> <span class="pre">this</span> <span class="pre">you</span> <span class="pre">can</span> <span class="pre">now</span> <span class="pre">add</span> <span class="pre">any</span> <span class="pre">number</span> <span class="pre">of</span> <span class="pre">subtopics,\neach</span> <span class="pre">starting</span> <span class="pre">with</span> <span class="pre">'##</span> <span class="pre">&lt;subtopic-name&gt;'</span> <span class="pre">on</span> <span class="pre">a</span> <span class="pre">line,</span> <span class="pre">followed</span> <span class="pre">by</span> <span class="pre">the\nhelp-text</span> <span class="pre">of</span> <span class="pre">that</span> <span class="pre">subtopic.\nUse</span> <span class="pre">'###</span> <span class="pre">&lt;subsub-name&gt;'</span> <span class="pre">to</span> <span class="pre">add</span> <span class="pre">a</span> <span class="pre">sub-subtopic</span> <span class="pre">and</span> <span class="pre">so</span> <span class="pre">on.</span> <span class="pre">Max</span> <span class="pre">depth</span> <span class="pre">is</span> <span class="pre">5.</span> <span class="pre">A\nsubtopic's</span> <span class="pre">title</span> <span class="pre">is</span> <span class="pre">case-insensitive</span> <span class="pre">and</span> <span class="pre">can</span> <span class="pre">consist</span> <span class="pre">of</span> <span class="pre">multiple</span> <span class="pre">words</span> <span class="pre">-\nthe</span> <span class="pre">user</span> <span class="pre">will</span> <span class="pre">be</span> <span class="pre">able</span> <span class="pre">to</span> <span class="pre">enter</span> <span class="pre">a</span> <span class="pre">partial</span> <span class="pre">match</span> <span class="pre">to</span> <span class="pre">access</span> <span class="pre">it.\n\nFor</span> <span class="pre">example:\n\n|</span> <span class="pre">Main</span> <span class="pre">help</span> <span class="pre">text</span> <span class="pre">for</span> <span class="pre">&lt;topic&gt;\n|\n|</span> <span class="pre">#</span> <span class="pre">SUBTOPICS\n|\n|</span> <span class="pre">##</span> <span class="pre">about\n|\n|</span> <span class="pre">Text</span> <span class="pre">for</span> <span class="pre">the</span> <span class="pre">'&lt;topic&gt;/about'</span> <span class="pre">subtopic'\n|\n|</span> <span class="pre">###</span> <span class="pre">more</span> <span class="pre">about-info\n|\n|</span> <span class="pre">Text</span> <span class="pre">for</span> <span class="pre">the</span> <span class="pre">'&lt;topic&gt;/about/more</span> <span class="pre">about-info</span> <span class="pre">sub-subtopic\n|\n|</span> <span class="pre">##</span> <span class="pre">extra\n|\n|</span> <span class="pre">Text</span> <span class="pre">for</span> <span class="pre">the</span> <span class="pre">'&lt;topic&gt;/extra'</span> <span class="pre">subtopic\n\n&quot;}</span></em><a class="headerlink" href="#evennia.commands.default.help.CmdSetHelp.search_index_entry" title="Link to this definition"></a></dt>
<dd></dd></dl>
</section>
</section>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString">
<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.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">ANSIString</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/ansi.html#ANSIString"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></p>
<p>Unicode-like object that is aware of ANSI codes.</p>
<p>This class can be used nearly identically to strings, in that it will
report string length, handle slices, etc, much like a string object
would. The methods should be used identically as string methods are.</p>
<p>There is at least one exception to this (and there may be more, though
they have not come up yet). When using .join() or u.join() on an
ANSIString, color information will get lost. You must use
ANSIString().join() to preserve color information.</p>
<p>This implementation isnt perfectly clean, as it doesnt really have an
understanding of what the codes mean in order to eliminate
redundant characters though cleaning up the strings might end up being
inefficient and slow without some C code when dealing with larger values.
Such enhancements could be made as an enhancement to ANSI_PARSER
if needed, however.</p>
<p>If one is going to use ANSIString, one should generally avoid converting
away from it until one is about to send information on the wire. This is
because escape sequences in the string may otherwise already be decoded,
and taken literally the second time around.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">_</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/ansi.html#ANSIString.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.__init__" title="Link to this definition"></a></dt>
<dd><p>When the ANSIString is first initialized, a few internal variables
have to be set.</p>
<p>The first is the parser. It is possible to replace Evennias standard
ANSI parser with one of your own syntax if you wish, so long as it
implements the same interface.</p>
<p>The second is the _raw_string. This is the original “dumb” string
with ansi escapes that ANSIString represents.</p>
<p>The third thing to set is the _clean_string. This is a string that is
devoid of all ANSI Escapes.</p>
<p>Finally, _code_indexes and _char_indexes are defined. These are lookup
tables for which characters in the raw string are related to ANSI
escapes, and which are for the readable text.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.capitalize">
<span class="sig-name descname"><span class="pre">capitalize</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.commands.default.help.ANSIString.capitalize" title="Link to this definition"></a></dt>
<dd><p>Return a capitalized version of the string.</p>
<p>More specifically, make the first character have upper case and the rest lower
case.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.center">
<span class="sig-name descname"><span class="pre">center</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fillchar</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_difference</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.center"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.center" title="Link to this definition"></a></dt>
<dd><p>Center some text with some spaces padding both sides.</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>width</strong> (<em>int</em>) The target width of the output string.</p></li>
<li><p><strong>fillchar</strong> (<em>str</em>) A single character string to pad the output string
with.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>result (ANSIString)</em> A string padded on both ends with fillchar.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.clean">
<span class="sig-name descname"><span class="pre">clean</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.clean"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.clean" title="Link to this definition"></a></dt>
<dd><p>Return a string object <em>without</em> the ANSI escapes.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>clean_string (str)</em> A unicode object with no ANSI escapes.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.count">
<span class="sig-name descname"><span class="pre">count</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.commands.default.help.ANSIString.count" title="Link to this definition"></a></dt>
<dd><p>Return the number of non-overlapping occurrences of substring sub in string S[start:end].</p>
<p>Optional arguments start and end are interpreted as in slice notation.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.decode">
<span class="sig-name descname"><span class="pre">decode</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.commands.default.help.ANSIString.decode" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.encode">
<span class="sig-name descname"><span class="pre">encode</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.commands.default.help.ANSIString.encode" title="Link to this definition"></a></dt>
<dd><p>Encode the string using the codec registered for encoding.</p>
<dl class="simple">
<dt>encoding</dt><dd><p>The encoding in which to encode the string.</p>
</dd>
<dt>errors</dt><dd><p>The error handling scheme to use for encoding errors.
The default is strict meaning that encoding errors raise a
UnicodeEncodeError. Other possible values are ignore, replace and
xmlcharrefreplace as well as any other name registered with
codecs.register_error that can handle UnicodeEncodeErrors.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.endswith">
<span class="sig-name descname"><span class="pre">endswith</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.commands.default.help.ANSIString.endswith" title="Link to this definition"></a></dt>
<dd><p>Return True if the string ends with the specified suffix, False otherwise.</p>
<dl class="simple">
<dt>suffix</dt><dd><p>A string or a tuple of strings to try.</p>
</dd>
<dt>start</dt><dd><p>Optional start position. Default: start of the string.</p>
</dd>
<dt>end</dt><dd><p>Optional stop position. Default: end of the string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.expandtabs">
<span class="sig-name descname"><span class="pre">expandtabs</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.commands.default.help.ANSIString.expandtabs" title="Link to this definition"></a></dt>
<dd><p>Return a copy where all tab characters are expanded using spaces.</p>
<p>If tabsize is not given, a tab size of 8 characters is assumed.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.find">
<span class="sig-name descname"><span class="pre">find</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.commands.default.help.ANSIString.find" title="Link to this definition"></a></dt>
<dd><p>Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end].</p>
<p>Optional arguments start and end are interpreted as in slice notation.
Return -1 on failure.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.format">
<span class="sig-name descname"><span class="pre">format</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.commands.default.help.ANSIString.format" title="Link to this definition"></a></dt>
<dd><p>Return a formatted version of the string, using substitutions from args and kwargs.
The substitutions are identified by braces ({ and }).</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.index">
<span class="sig-name descname"><span class="pre">index</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.commands.default.help.ANSIString.index" title="Link to this definition"></a></dt>
<dd><p>Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end].</p>
<p>Optional arguments start and end are interpreted as in slice notation.
Raises ValueError when the substring is not found.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.isalnum">
<span class="sig-name descname"><span class="pre">isalnum</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.commands.default.help.ANSIString.isalnum" title="Link to this definition"></a></dt>
<dd><p>Return True if the string is an alpha-numeric string, False otherwise.</p>
<p>A string is alpha-numeric if all characters in the string are alpha-numeric and
there is at least one character in the string.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.isalpha">
<span class="sig-name descname"><span class="pre">isalpha</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.commands.default.help.ANSIString.isalpha" title="Link to this definition"></a></dt>
<dd><p>Return True if the string is an alphabetic string, False otherwise.</p>
<p>A string is alphabetic if all characters in the string are alphabetic and there
is at least one character in the string.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.isdigit">
<span class="sig-name descname"><span class="pre">isdigit</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.commands.default.help.ANSIString.isdigit" title="Link to this definition"></a></dt>
<dd><p>Return True if the string is a digit string, False otherwise.</p>
<p>A string is a digit string if all characters in the string are digits and there
is at least one character in the string.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.islower">
<span class="sig-name descname"><span class="pre">islower</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.commands.default.help.ANSIString.islower" title="Link to this definition"></a></dt>
<dd><p>Return True if the string is a lowercase string, False otherwise.</p>
<p>A string is lowercase if all cased characters in the string are lowercase and
there is at least one cased character in the string.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.isspace">
<span class="sig-name descname"><span class="pre">isspace</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.commands.default.help.ANSIString.isspace" title="Link to this definition"></a></dt>
<dd><p>Return True if the string is a whitespace string, False otherwise.</p>
<p>A string is whitespace if all characters in the string are whitespace and there
is at least one character in the string.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.istitle">
<span class="sig-name descname"><span class="pre">istitle</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.commands.default.help.ANSIString.istitle" title="Link to this definition"></a></dt>
<dd><p>Return True if the string is a title-cased string, False otherwise.</p>
<p>In a title-cased string, upper- and title-case characters may only
follow uncased characters and lowercase characters only cased ones.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.isupper">
<span class="sig-name descname"><span class="pre">isupper</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.commands.default.help.ANSIString.isupper" title="Link to this definition"></a></dt>
<dd><p>Return True if the string is an uppercase string, False otherwise.</p>
<p>A string is uppercase if all cased characters in the string are uppercase and
there is at least one cased character in the string.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.join">
<span class="sig-name descname"><span class="pre">join</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">iterable</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.join"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.join" title="Link to this definition"></a></dt>
<dd><p>Joins together strings in an iterable, using this string between each
one.</p>
<p>NOTE: This should always be used for joining strings when ANSIStrings
are involved. Otherwise color information will be discarded by python,
due to details in the C implementation of strings.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>iterable</strong> (<em>list</em><em> of </em><em>strings</em>) A list of strings to join together</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>ANSIString</em> </p>
<dl class="simple">
<dt>A single string with all of the iterables</dt><dd><p>contents concatenated, with this string between each.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">ANSIString</span><span class="p">(</span><span class="s1">&#39;, &#39;</span><span class="p">)</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s1">&#39;up&#39;</span><span class="p">,</span> <span class="s1">&#39;right&#39;</span><span class="p">,</span> <span class="s1">&#39;left&#39;</span><span class="p">,</span> <span class="s1">&#39;down&#39;</span><span class="p">])</span>
<span class="go">ANSIString(&#39;up, right, left, down&#39;)</span>
</pre></div>
</div>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.ljust">
<span class="sig-name descname"><span class="pre">ljust</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fillchar</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_difference</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.ljust"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.ljust" title="Link to this definition"></a></dt>
<dd><p>Left justify some text.</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>width</strong> (<em>int</em>) The target width of the output string.</p></li>
<li><p><strong>fillchar</strong> (<em>str</em>) A single character string to pad the output string
with.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>result (ANSIString)</em> A string padded on the right with fillchar.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.lower">
<span class="sig-name descname"><span class="pre">lower</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.commands.default.help.ANSIString.lower" title="Link to this definition"></a></dt>
<dd><p>Return a copy of the string converted to lowercase.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.lstrip">
<span class="sig-name descname"><span class="pre">lstrip</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">chars</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.lstrip"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.lstrip" title="Link to this definition"></a></dt>
<dd><p>Strip from the left, taking ANSI markers into account.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>chars</strong> (<em>str</em><em>, </em><em>optional</em>) A string containing individual characters
to strip off of the left end of the string. By default, any
blank spaces are trimmed.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>result (ANSIString)</em> </p>
<dl class="simple">
<dt>A new ANSIString with the left end trimmed of</dt><dd><p>the relevant characters.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.partition">
<span class="sig-name descname"><span class="pre">partition</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sep</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reverse</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/ansi.html#ANSIString.partition"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.partition" title="Link to this definition"></a></dt>
<dd><p>Splits once into three sections (with the separator being the middle section)</p>
<p>We use the same techniques we used in split() to make sure each are
colored.</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>sep</strong> (<em>str</em>) The separator to split the string on.</p></li>
<li><p><strong>reverse</strong> (<em>boolean</em>) Whether to split the string on the last
occurrence of the separator rather than the first.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>ANSIString</em> The part of the string before the separator
ANSIString: The separator itself
ANSIString: The part of the string after the separator.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.raw">
<span class="sig-name descname"><span class="pre">raw</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.raw"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.raw" title="Link to this definition"></a></dt>
<dd><p>Return a string object with the ANSI escapes.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>raw (str)</em> A unicode object <em>with</em> the raw ANSI escape sequences.</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.re_format">
<span class="sig-name descname"><span class="pre">re_format</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">re.compile('(?i)(?P&lt;just&gt;(?P&lt;fill&gt;.)?(?P&lt;align&gt;\\&lt;|\\&gt;|\\=|\\^))?(?P&lt;sign&gt;\\+|\\-|</span> <span class="pre">)?(?P&lt;alt&gt;\\#)?(?P&lt;zero&gt;0)?(?P&lt;width&gt;\\d+)?(?P&lt;grouping&gt;\\_|\\,)?(?:\\.(?P&lt;precision&gt;\\d+))?(?P&lt;type&gt;b|c|d|e|E|f|F|g|G|n|o|s|x|X,</span> <span class="pre">re.IGNORECASE)</span></em><a class="headerlink" href="#evennia.commands.default.help.ANSIString.re_format" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.replace">
<span class="sig-name descname"><span class="pre">replace</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.commands.default.help.ANSIString.replace" title="Link to this definition"></a></dt>
<dd><p>Return a copy with all occurrences of substring old replaced by new.</p>
<blockquote>
<div><dl class="simple">
<dt>count</dt><dd><p>Maximum number of occurrences to replace.
-1 (the default value) means replace all occurrences.</p>
</dd>
</dl>
</div></blockquote>
<p>If the optional argument count is given, only the first count occurrences are
replaced.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.rfind">
<span class="sig-name descname"><span class="pre">rfind</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.commands.default.help.ANSIString.rfind" title="Link to this definition"></a></dt>
<dd><p>Return the highest index in S where substring sub is found, such that sub is contained within S[start:end].</p>
<p>Optional arguments start and end are interpreted as in slice notation.
Return -1 on failure.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.rindex">
<span class="sig-name descname"><span class="pre">rindex</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.commands.default.help.ANSIString.rindex" title="Link to this definition"></a></dt>
<dd><p>Return the highest index in S where substring sub is found, such that sub is contained within S[start:end].</p>
<p>Optional arguments start and end are interpreted as in slice notation.
Raises ValueError when the substring is not found.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.rjust">
<span class="sig-name descname"><span class="pre">rjust</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fillchar</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_difference</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.rjust"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.rjust" title="Link to this definition"></a></dt>
<dd><p>Right justify some text.</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>width</strong> (<em>int</em>) The target width of the output string.</p></li>
<li><p><strong>fillchar</strong> (<em>str</em>) A single character string to pad the output string
with.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>result (ANSIString)</em> A string padded on the left with fillchar.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.rsplit">
<span class="sig-name descname"><span class="pre">rsplit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">by</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">maxsplit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.rsplit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.rsplit" title="Link to this definition"></a></dt>
<dd><p>Like split, but starts from the end of the string rather than the
beginning.</p>
<p>Stolen from PyPys pure Python string implementation, tweaked for
ANSIString.</p>
<p>PyPy is distributed under the MIT licence.
<a class="reference external" href="http://opensource.org/licenses/MIT">http://opensource.org/licenses/MIT</a></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>by</strong> (<em>str</em>) A string to search for which will be used to split
the string. For instance, , for Hello,world would
result in [Hello, world]</p></li>
<li><p><strong>maxsplit</strong> (<em>int</em>) The maximum number of times to split the string.
For example, a maxsplit of 2 with a by of , on the string
Hello,world,test,string would result in
[Hello,world, test, string]</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>result (list of ANSIStrings)</em> </p>
<dl class="simple">
<dt>A list of ANSIStrings derived from</dt><dd><p>this string.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.rstrip">
<span class="sig-name descname"><span class="pre">rstrip</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">chars</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.rstrip"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.rstrip" title="Link to this definition"></a></dt>
<dd><p>Strip from the right, taking ANSI markers into account.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>chars</strong> (<em>str</em><em>, </em><em>optional</em>) A string containing individual characters
to strip off of the right end of the string. By default, any
blank spaces are trimmed.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>result (ANSIString)</em> </p>
<dl class="simple">
<dt>A new ANSIString with the right end trimmed of</dt><dd><p>the relevant characters.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.split">
<span class="sig-name descname"><span class="pre">split</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">by</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">maxsplit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.split"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.split" title="Link to this definition"></a></dt>
<dd><p>Splits a string based on a separator.</p>
<p>Stolen from PyPys pure Python string implementation, tweaked for
ANSIString.</p>
<p>PyPy is distributed under the MIT licence.
<a class="reference external" href="http://opensource.org/licenses/MIT">http://opensource.org/licenses/MIT</a></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>by</strong> (<em>str</em>) A string to search for which will be used to split
the string. For instance, , for Hello,world would
result in [Hello, world]</p></li>
<li><p><strong>maxsplit</strong> (<em>int</em>) The maximum number of times to split the string.
For example, a maxsplit of 2 with a by of , on the string
Hello,world,test,string would result in
[Hello, world, test,string]</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>result (list of ANSIStrings)</em> </p>
<dl class="simple">
<dt>A list of ANSIStrings derived from</dt><dd><p>this string.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.startswith">
<span class="sig-name descname"><span class="pre">startswith</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.commands.default.help.ANSIString.startswith" title="Link to this definition"></a></dt>
<dd><p>Return True if the string starts with the specified prefix, False otherwise.</p>
<dl class="simple">
<dt>prefix</dt><dd><p>A string or a tuple of strings to try.</p>
</dd>
<dt>start</dt><dd><p>Optional start position. Default: start of the string.</p>
</dd>
<dt>end</dt><dd><p>Optional stop position. Default: end of the string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.strip">
<span class="sig-name descname"><span class="pre">strip</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">chars</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/ansi.html#ANSIString.strip"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.ANSIString.strip" title="Link to this definition"></a></dt>
<dd><p>Strip from both ends, taking ANSI markers into account.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>chars</strong> (<em>str</em><em>, </em><em>optional</em>) A string containing individual characters
to strip off of both ends of the string. By default, any blank
spaces are trimmed.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>result (ANSIString)</em> </p>
<dl class="simple">
<dt>A new ANSIString with the ends trimmed of the</dt><dd><p>relevant characters.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.swapcase">
<span class="sig-name descname"><span class="pre">swapcase</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.commands.default.help.ANSIString.swapcase" title="Link to this definition"></a></dt>
<dd><p>Convert uppercase characters to lowercase and lowercase characters to uppercase.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.translate">
<span class="sig-name descname"><span class="pre">translate</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.commands.default.help.ANSIString.translate" title="Link to this definition"></a></dt>
<dd><p>Replace each character in the string using the given translation table.</p>
<blockquote>
<div><dl class="simple">
<dt>table</dt><dd><p>Translation table, which must be a mapping of Unicode ordinals to
Unicode ordinals, strings, or None.</p>
</dd>
</dl>
</div></blockquote>
<p>The table must implement lookup/indexing via __getitem__, for instance a
dictionary or list. If this operation raises LookupError, the character is
left untouched. Characters mapped to None are deleted.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.ANSIString.upper">
<span class="sig-name descname"><span class="pre">upper</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.commands.default.help.ANSIString.upper" title="Link to this definition"></a></dt>
<dd><p>Return a copy of the string converted to uppercase.</p>
</dd></dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.COMMAND_DEFAULT_CLASS">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">COMMAND_DEFAULT_CLASS</span></span><a class="headerlink" href="#evennia.commands.default.help.COMMAND_DEFAULT_CLASS" title="Link to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">MuxCommand</span></code></a></p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor">
<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.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">EvEditor</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">caller</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">loadfunc</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">savefunc</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">quitfunc</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">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">persistent</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">codefunc</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/eveditor.html#EvEditor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>This defines a line editor object. It creates all relevant commands
and tracks the current state of the buffer. It also cleans up after
itself.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.__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">caller</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">loadfunc</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">savefunc</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">quitfunc</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">key</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">persistent</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">codefunc</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/eveditor.html#EvEditor.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.__init__" title="Link to this definition"></a></dt>
<dd><p>Launches a full in-game line editor, mimicking the functionality of VIM.</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>caller</strong> (<em>Object</em>) Who is using the editor.</p></li>
<li><p><strong>loadfunc</strong> (<em>callable</em><em>, </em><em>optional</em>) This will be called as
<strong>loadfunc(caller)</strong> when the editor is first started. Its
return will be used as the editors starting buffer.</p></li>
<li><p><strong>savefunc</strong> (<em>callable</em><em>, </em><em>optional</em>) This will be called as
<strong>savefunc(caller, buffer)</strong> when the save-command is given and
is used to actually determine where/how result is saved.
It should return <strong>True</strong> if save was successful and also
handle any feedback to the user.</p></li>
<li><p><strong>quitfunc</strong> (<em>callable</em><em>, </em><em>optional</em>) This will optionally be
called as <strong>quitfunc(caller)</strong> when the editor is
exited. If defined, it should handle all wanted feedback
to the user.</p></li>
<li><p><strong>quitfunc_args</strong> (<em>tuple</em><em>, </em><em>optional</em>) Optional tuple of arguments to
supply to <strong>quitfunc</strong>.</p></li>
<li><p><strong>key</strong> (<em>str</em><em>, </em><em>optional</em>) An optional key for naming this
session and make it unique from other editing sessions.</p></li>
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) Make the editor survive a reboot. Note
that if this is set, all callables must be possible to pickle</p></li>
<li><p><strong>codefunc</strong> (<em>bool</em><em>, </em><em>optional</em>) If given, will run the editor in code mode.
This will be called as <strong>codefunc(caller, buf)</strong>.</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>In persistent mode, all the input callables (savefunc etc)
must be possible to be <em>pickled</em>, this excludes e.g.
callables that are class methods or functions defined
dynamically or as part of another function. In
non-persistent mode no such restrictions exist.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.decrease_indent">
<span class="sig-name descname"><span class="pre">decrease_indent</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.decrease_indent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.decrease_indent" title="Link to this definition"></a></dt>
<dd><p>Decrease automatic indentation by 1 level.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.deduce_indent">
<span class="sig-name descname"><span class="pre">deduce_indent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">line</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">buffer</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.deduce_indent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.deduce_indent" title="Link to this definition"></a></dt>
<dd><p>Try to deduce the level of indentation of the given line.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.display_buffer">
<span class="sig-name descname"><span class="pre">display_buffer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">buf</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">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linenums</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">options</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">{'raw':</span> <span class="pre">False}</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.display_buffer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.display_buffer" title="Link to this definition"></a></dt>
<dd><p>This displays the line editor buffer, or selected parts of it.</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>buf</strong> (<em>str</em><em>, </em><em>optional</em>) The buffer or part of buffer to display.</p></li>
<li><p><strong>offset</strong> (<em>int</em><em>, </em><em>optional</em>) If <strong>buf</strong> is set and is not the full buffer,
<strong>offset</strong> should define the actual starting line number, to
get the linenum display right.</p></li>
<li><p><strong>linenums</strong> (<em>bool</em><em>, </em><em>optional</em>) Show line numbers in buffer.</p></li>
<li><p><strong>options</strong> raw (bool, optional): Tell protocol to not parse
formatting information.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.display_help">
<span class="sig-name descname"><span class="pre">display_help</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.display_help"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.display_help" title="Link to this definition"></a></dt>
<dd><p>Shows the help entry for the editor.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.get_buffer">
<span class="sig-name descname"><span class="pre">get_buffer</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.get_buffer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.get_buffer" title="Link to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>buffer (str)</em> The current buffer.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.increase_indent">
<span class="sig-name descname"><span class="pre">increase_indent</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.increase_indent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.increase_indent" title="Link to this definition"></a></dt>
<dd><p>Increase automatic indentation by 1 level.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.load_buffer">
<span class="sig-name descname"><span class="pre">load_buffer</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.load_buffer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.load_buffer" title="Link to this definition"></a></dt>
<dd><p>Load the buffer using the load function hook.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.quit">
<span class="sig-name descname"><span class="pre">quit</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.quit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.quit" title="Link to this definition"></a></dt>
<dd><p>Cleanly exit the editor.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.save_buffer">
<span class="sig-name descname"><span class="pre">save_buffer</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.save_buffer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.save_buffer" title="Link to this definition"></a></dt>
<dd><p>Saves the content of the buffer.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.swap_autoindent">
<span class="sig-name descname"><span class="pre">swap_autoindent</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.swap_autoindent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.swap_autoindent" title="Link to this definition"></a></dt>
<dd><p>Swap automatic indentation on or off.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.update_buffer">
<span class="sig-name descname"><span class="pre">update_buffer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">buf</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.update_buffer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.update_buffer" title="Link to this definition"></a></dt>
<dd><p>This should be called when the buffer has been changed
somehow. It will handle unsaved flag and undo updating.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>buf</strong> (<em>str</em>) The text to update the buffer with.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.EvEditor.update_undo">
<span class="sig-name descname"><span class="pre">update_undo</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">step</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/eveditor.html#EvEditor.update_undo"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.EvEditor.update_undo" title="Link to this definition"></a></dt>
<dd><p>This updates the undo position.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>step</strong> (<em>int</em><em>, </em><em>optional</em>) The amount of steps
to progress the undo position to. This
may be a negative value for undo and
a positive value for redo.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpCategory">
<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.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">HelpCategory</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/commands/default/help.html#HelpCategory"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpCategory" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Mock help entry to search categories with the same code.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpCategory.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#evennia.commands.default.help.HelpCategory.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpCategory.search_index_entry">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">search_index_entry</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpCategory.search_index_entry" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpCategory.__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">key</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#evennia.commands.default.help.HelpCategory.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry">
<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.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">HelpEntry</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/help/models.html#HelpEntry"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.utils.idmapper.models.html#evennia.utils.idmapper.models.SharedMemoryModel" title="evennia.utils.idmapper.models.SharedMemoryModel"><code class="xref py py-class docutils literal notranslate"><span class="pre">SharedMemoryModel</span></code></a></p>
<p>A generic help entry.</p>
<dl class="simple">
<dt>An HelpEntry object has the following properties defined:</dt><dd><p>key - main name of entry
help_category - which category entry belongs to (defaults to General)
entrytext - the actual help text
permissions - perm strings</p>
</dd>
<dt>Method:</dt><dd><p>access</p>
</dd>
</dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.DoesNotExist">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DoesNotExist</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.DoesNotExist" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.utils.dbserialize.html#evennia.utils.dbserialize.ObjectDoesNotExist" title="django.core.exceptions.ObjectDoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">ObjectDoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.MultipleObjectsReturned">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MultipleObjectsReturned</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.MultipleObjectsReturned" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleObjectsReturned</span></code></p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.access">
<span class="sig-name descname"><span class="pre">access</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accessing_obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">access_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'read'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">default</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.access"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.access" title="Link to this definition"></a></dt>
<dd><p>Determines if another object has permission to access this help entry.</p>
<dl class="simple">
<dt>Accesses used by default:</dt><dd><p>read - read the help entry itself.
view - see help entry in help index.</p>
</dd>
</dl>
<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>accessing_obj</strong> (<em>Object</em><em> or </em><em>Account</em>) Entity trying to access this one.</p></li>
<li><p><strong>access_type</strong> (<em>str</em>) type of access sought.</p></li>
<li><p><strong>default</strong> (<em>bool</em>) What to return if no lock of <strong>access_type</strong> was found.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.aliases"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.date_created">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">date_created</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.date_created" title="Link to this definition"></a></dt>
<dd><p>Return the field in localized time based on settings.TIME_ZONE.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.db_date_created">
<span class="sig-name descname"><span class="pre">db_date_created</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.db_date_created" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.db_entrytext">
<span class="sig-name descname"><span class="pre">db_entrytext</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.db_entrytext" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.db_help_category">
<span class="sig-name descname"><span class="pre">db_help_category</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.db_help_category" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.db_key">
<span class="sig-name descname"><span class="pre">db_key</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.db_key" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.db_lock_storage">
<span class="sig-name descname"><span class="pre">db_lock_storage</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.db_lock_storage" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.db_tags">
<span class="sig-name descname"><span class="pre">db_tags</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.db_tags" title="Link to this definition"></a></dt>
<dd><p>Accessor to the related objects manager on the forward and reverse sides of
a many-to-many relation.</p>
<p>In the example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">Pizza</span><span class="p">(</span><span class="n">Model</span><span class="p">):</span>
<span class="n">toppings</span> <span class="o">=</span> <span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Topping</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">&#39;pizzas&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p><strong>**Pizza.toppings**</strong> and <strong>**Topping.pizzas**</strong> are <strong>**ManyToManyDescriptor**</strong>
instances.</p>
<p>Most of the implementation is delegated to a dynamically defined manager
class built by <strong>**create_forward_many_to_many_manager()**</strong> defined below.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.entrytext">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">entrytext</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.entrytext" title="Link to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_entrytext</strong>.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.get_absolute_url">
<span class="sig-name descname"><span class="pre">get_absolute_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.get_absolute_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to view details for
this object.</p>
<p>ex. Oscar (Character) = /characters/oscar/1/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-detail would be referenced by this method.</p>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/$&#39;</span><span class="p">,</span>
<span class="n">CharDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-detail&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can view this object is the developers
responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object detail page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.get_next_by_db_date_created">
<span class="sig-name descname"><span class="pre">get_next_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.get_next_by_db_date_created" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.get_previous_by_db_date_created">
<span class="sig-name descname"><span class="pre">get_previous_by_db_date_created</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">field=&lt;django.db.models.fields.DateTimeField:</span> <span class="pre">db_date_created&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_next=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.get_previous_by_db_date_created" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.help_category">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">help_category</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.help_category" title="Link to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_help_category</strong>.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.id">
<span class="sig-name descname"><span class="pre">id</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.id" title="Link to this definition"></a></dt>
<dd><p>A wrapper for a deferred-loading field. When the value is read from this
object the first time, the query is executed.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.key">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">key</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.key" title="Link to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_key</strong>.</p>
</dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.lock_storage">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">lock_storage</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.lock_storage" title="Link to this definition"></a></dt>
<dd><p>A wrapper for getting database field <strong>db_lock_storage</strong>.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.locks">
<span class="sig-name descname"><span class="pre">locks</span></span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.locks"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.locks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.objects">
<span class="sig-name descname"><span class="pre">objects</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">&lt;evennia.help.manager.HelpEntryManager</span> <span class="pre">object&gt;</span></em><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.objects" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.path">
<span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'evennia.help.models.HelpEntry'</span></em><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.path" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py property">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.search_index_entry">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">search_index_entry</span></span><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.search_index_entry" title="Link to this definition"></a></dt>
<dd><p>Property for easily retaining a search index entry for this object.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.tags">
<span class="sig-name descname"><span class="pre">tags</span></span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.tags"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.tags" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.typename">
<span class="sig-name descname"><span class="pre">typename</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'SharedMemoryModelBase'</span></em><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.typename" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.web_get_admin_url">
<span class="sig-name descname"><span class="pre">web_get_admin_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.web_get_admin_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.web_get_admin_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for the Django Admin page for this object.</p>
<p>ex. Account#1 = /admin/accounts/accountdb/1/change/</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to Django Admin page for object.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.web_get_create_url">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">web_get_create_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.web_get_create_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.web_get_create_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to create new
instances of this object.</p>
<p>ex. Chargen = /characters/create/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-create would be referenced by this method.</p>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/create/&#39;</span><span class="p">,</span> <span class="n">ChargenView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-create&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can create new objects is the
developers responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object creation page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.web_get_delete_url">
<span class="sig-name descname"><span class="pre">web_get_delete_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.web_get_delete_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.web_get_delete_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to delete this object.</p>
<p>ex. Oscar (Character) = /characters/oscar/1/delete/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-detail would be referenced by this method.</p>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/delete/$&#39;</span><span class="p">,</span>
<span class="n">CharDeleteView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-delete&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can delete this object is the developers
responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object deletion page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.web_get_detail_url">
<span class="sig-name descname"><span class="pre">web_get_detail_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.web_get_detail_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.web_get_detail_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to view details for
this object.</p>
<p>ex. Oscar (Character) = /characters/oscar/1/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-detail would be referenced by this method.</p>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/$&#39;</span><span class="p">,</span>
<span class="n">CharDetailView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-detail&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can view this object is the developers
responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object detail page, if defined.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.HelpEntry.web_get_update_url">
<span class="sig-name descname"><span class="pre">web_get_update_url</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/help/models.html#HelpEntry.web_get_update_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.HelpEntry.web_get_update_url" title="Link to this definition"></a></dt>
<dd><p>Returns the URI path for a View that allows users to update this
object.</p>
<p>ex. Oscar (Character) = /characters/oscar/1/change/</p>
<p>For this to work, the developer must have defined a named view somewhere
in urls.py that follows the format modelname-action, so in this case
a named view of character-update would be referenced by this method.</p>
<p>ex.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">url</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;characters/(?P&lt;slug&gt;[\w\d\-]+)/(?P&lt;pk&gt;[0-9]+)/change/$&#39;</span><span class="p">,</span>
<span class="n">CharUpdateView</span><span class="o">.</span><span class="n">as_view</span><span class="p">(),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;character-update&#39;</span><span class="p">)</span>
</pre></div>
</div>
<p>If no View has been created and defined in urls.py, returns an
HTML anchor.</p>
<p>This method is naive and simply returns a path. Securing access to
the actual view and limiting who can modify objects is the developers
responsibility.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p><em>path (str)</em> URI path to object update page, if defined.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.commands.default.help.LockException">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">LockException</span></span><a class="reference internal" href="../_modules/evennia/locks/lockhandler.html#LockException"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.LockException" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
<p>Raised during an error in a lock.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.commands.default.help.chain">
<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.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">chain</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">iterables</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.help.chain" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Return a chain object whose .__next__() method returns elements from the
first iterable until it is exhausted, then elements from the next
iterable, until all of the iterables are exhausted.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.chain.from_iterable">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_iterable</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">iterable</span></span></em>, <em class="sig-param"><span class="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.help.chain.from_iterable" title="Link to this definition"></a></dt>
<dd><p>Alternative chain() constructor taking a single iterable argument that evaluates lazily.</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.commands.default.help.class_from_module">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">class_from_module</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">defaultpaths</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">fallback</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#class_from_module"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.class_from_module" title="Link to this definition"></a></dt>
<dd><p>Return a class from a module, given the class full python path. This is
primarily used to convert db_typeclass_path:s to classes.</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>path</strong> (<em>str</em>) Full Python dot-path to module.</p></li>
<li><p><strong>defaultpaths</strong> (<em>iterable</em><em>, </em><em>optional</em>) If a direct import from <strong>path</strong> fails,
try subsequent imports by prepending those paths to <strong>path</strong>.</p></li>
<li><p><strong>fallback</strong> (<em>str</em>) If all other attempts fail, use this path as a fallback.
This is intended as a last-resort. In the example of Evennia
loading, this would be a path to a default parent class in the
evennia repo itself.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>class (Class)</em> An uninstantiated class recovered from path.</p>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>ImportError</strong> If all loading failed.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.commands.default.help.dataclass">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">dataclass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cls</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="positional-only-separator o"><abbr title="Positional-only parameter separator (PEP 570)"><span class="pre">/</span></abbr></span></em>, <em class="sig-param"><span class="keyword-only-separator o"><abbr title="Keyword-only parameters separator (PEP 3102)"><span class="pre">*</span></abbr></span></em>, <em class="sig-param"><span class="n"><span class="pre">init</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">repr</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eq</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">order</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">unsafe_hash</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">frozen</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">match_args</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kw_only</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">slots</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">weakref_slot</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/dataclasses.html#dataclass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.dataclass" title="Link to this definition"></a></dt>
<dd><p>Add dunder methods based on the fields defined in the class.</p>
<p>Examines PEP 526 __annotations__ to determine fields.</p>
<p>If init is true, an __init__() method is added to the class. If repr
is true, a __repr__() method is added. If order is true, rich
comparison dunder methods are added. If unsafe_hash is true, a
__hash__() method is added. If frozen is true, fields may not be
assigned to after instance creation. If match_args is true, the
__match_args__ tuple is added. If kw_only is true, then by default
all fields are keyword-only. If slots is true, a new class with a
__slots__ attribute is returned.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.commands.default.help.dedent">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">dedent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">baseline_index</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">indent</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#dedent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.dedent" title="Link to this definition"></a></dt>
<dd><p>Safely clean all whitespace at the left of a paragraph.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em>) The text to dedent.</p></li>
<li><p><strong>baseline_index</strong> (<em>int</em><em>, </em><em>optional</em>) Which row to use as a base
for the indentation. Lines will be dedented to this level but
no further. If None, indent so as to completely deindent the
least indented text.</p></li>
<li><p><strong>indent</strong> (<em>int</em><em>, </em><em>optional</em>) If given, force all lines to this indent.
This bypasses <strong>baseline_index</strong>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>text (str)</em> Dedented string.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This is useful for preserving triple-quoted string indentation
while still shifting it all to be next to the left edge of the
display.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.commands.default.help.defaultdict">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">defaultdict</span></span><a class="headerlink" href="#evennia.commands.default.help.defaultdict" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
<p>defaultdict(default_factory=None, /, […]) &gt; dict with default factory</p>
<p>The default factory is called without arguments to produce
a new value when a key is not present, in __getitem__ only.
A defaultdict compares equal to a dict with the same items.
All remaining arguments are treated the same as if they were
passed to the dict constructor, including keyword arguments.</p>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.defaultdict.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.commands.default.help.defaultdict.__init__" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.commands.default.help.defaultdict.copy">
<span class="sig-name descname"><span class="pre">copy</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">a</span> <span class="pre">shallow</span> <span class="pre">copy</span> <span class="pre">of</span> <span class="pre">D.</span></span></span><a class="headerlink" href="#evennia.commands.default.help.defaultdict.copy" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.commands.default.help.defaultdict.default_factory">
<span class="sig-name descname"><span class="pre">default_factory</span></span><a class="headerlink" href="#evennia.commands.default.help.defaultdict.default_factory" title="Link to this definition"></a></dt>
<dd><p>Factory for default value called by __missing__().</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.commands.default.help.format_grid">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">format_grid</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">elements</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">78</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'</span>&#160; <span class="pre">'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbatim_elements</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">line_prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#format_grid"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.format_grid" title="Link to this definition"></a></dt>
<dd><p>This helper function makes a grid output, where it distributes the given
string-elements as evenly as possible to fill out the given width.
will not work well if the variation of length is very big!</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>elements</strong> (<em>iterable</em>) A 1D list of string elements to put in the grid.</p></li>
<li><p><strong>width</strong> (<em>int</em><em>, </em><em>optional</em>) The width of the grid area to fill.</p></li>
<li><p><strong>sep</strong> (<em>str</em><em>, </em><em>optional</em>) The extra separator to put between words. If
set to the empty string, words may run into each other.</p></li>
<li><p><strong>verbatim_elements</strong> (<em>list</em><em>, </em><em>optional</em>) This is a list of indices pointing to
specific items in the <strong>elements</strong> list. An element at this index will
not be included in the calculation of the slot sizes. It will still
be inserted into the grid at the correct position and may be surrounded
by padding unless filling the entire line. This is useful for embedding
decorations in the grid, such as horizontal bars.</p></li>
<li><p><strong>ignore_ansi</strong> (<em>bool</em><em>, </em><em>optional</em>) Ignore ansi markups when calculating white spacing.</p></li>
<li><p><strong>line_prefix</strong> (<em>str</em><em>, </em><em>optional</em>) A prefix to add at the beginning of each line.
This can e.g. be used to preserve line color across line breaks.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>list</em> The grid as a list of ready-formatted rows. We return it
like this to make it easier to insert decorations between rows, such
as horizontal bars.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.commands.default.help.help_search_with_index">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">help_search_with_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">query</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">candidate_entries</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suggestion_maxnum</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fields</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/help/utils.html#help_search_with_index"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.help_search_with_index" title="Link to this definition"></a></dt>
<dd><p>Lunr-powered fast index search and suggestion wrapper. See <a class="reference external" href="https://lunrjs.com/">https://lunrjs.com/</a>.</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>query</strong> (<em>str</em>) The query to search for.</p></li>
<li><p><strong>candidate_entries</strong> (<em>list</em>) This is the body of possible entities to search. Each
must have a property <strong>.search_index_entry</strong> that returns a dict with all
keys in the <strong>fields</strong> arg.</p></li>
<li><p><strong>suggestion_maxnum</strong> (<em>int</em>) How many matches to allow at most in a multi-match.</p></li>
<li><p><strong>fields</strong> (<em>list</em><em>, </em><em>optional</em>) A list of Lunr field mappings
<strong>**{“field_name”: str, “boost”: int}**</strong>. See the Lunr documentation
for more details. The field name must exist in the dicts returned
by <strong>.search_index_entry</strong> of the candidates. If not given, a default setup
is used, prefering keys &gt; aliases &gt; category &gt; tags.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>tuple</em> </p>
<dl class="simple">
<dt>A tuple (matches, suggestions), each a list, where the <strong>suggestion_maxnum</strong> limits</dt><dd><p>how many suggestions are included.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.commands.default.help.inherits_from">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">inherits_from</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">obj</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">parent</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#inherits_from"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.inherits_from" title="Link to this definition"></a></dt>
<dd><p>Takes an object and tries to determine if it inherits at <em>any</em>
distance from parent.</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>obj</strong> (<em>any</em>) Object to analyze. This may be either an instance or
a class.</p></li>
<li><p><strong>parent</strong> (<em>any</em>) Can be either an instance, a class or the python
path to the class.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>inherits_from (bool)</em> If <strong>parent</strong> is a parent to <strong>obj</strong> or not.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>What differentiates this function from Pythons <strong>isinstance()</strong> is the
flexibility in the types allowed for the object and parent being compared.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.commands.default.help.pad">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">pad</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</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">align</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'c'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fillchar</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'</span> <span class="pre">'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/utils.html#pad"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.pad" title="Link to this definition"></a></dt>
<dd><p>Pads to a given width.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em>) Text to pad.</p></li>
<li><p><strong>width</strong> (<em>int</em><em>, </em><em>optional</em>) The width to pad to, in characters.</p></li>
<li><p><strong>align</strong> (<em>str</em><em>, </em><em>optional</em>) This is one of c, l or r (center,
left or right).</p></li>
<li><p><strong>fillchar</strong> (<em>str</em><em>, </em><em>optional</em>) The character to fill with.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>text (str)</em> The padded text.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.commands.default.help.parse_entry_for_subcategories">
<span class="sig-prename descclassname"><span class="pre">evennia.commands.default.help.</span></span><span class="sig-name descname"><span class="pre">parse_entry_for_subcategories</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">entry</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/help/utils.html#parse_entry_for_subcategories"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.commands.default.help.parse_entry_for_subcategories" title="Link to this definition"></a></dt>
<dd><p>Parse a command docstring for special sub-category blocks:</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>entry</strong> (<em>str</em>) A help entry to parse</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p><em>dict</em> </p>
<dl class="simple">
<dt>The dict is a mapping that splits the entry into subcategories. This</dt><dd><p>will always hold a key <strong>None</strong> for the main help entry and
zero or more keys holding the subcategories. Each is itself
a dict with a key <strong>None</strong> for the main text of that subcategory
followed by any sub-sub-categories down to a max-depth of 5.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p>Example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="sd">&#39;&#39;&#39;</span>
<span class="sd">Main topic text</span>
<span class="sd"># SUBTOPICS</span>
<span class="sd">## foo</span>
<span class="sd">A subcategory of the main entry, accessible as **help topic foo**</span>
<span class="sd">(or using /, like **help topic/foo**)</span>
<span class="sd">## bar</span>
<span class="sd">Another subcategory, accessed as **help topic bar**</span>
<span class="sd">(or **help topic/bar**)</span>
<span class="sd">### moo</span>
<span class="sd">A subcategory of bar, accessed as **help bar moo**</span>
<span class="sd">(or **help bar/moo**)</span>
<span class="sd">#### dum</span>
<span class="sd">A subcategory of moo, accessed **help bar moo dum**</span>
<span class="sd">(or **help bar/moo/dum**)</span>
<span class="sd">&#39;&#39;&#39;</span>
</pre></div>
</div>
<p>This will result in this returned entry structure:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="kc">None</span><span class="p">:</span> <span class="s2">&quot;Main topic text&quot;</span><span class="p">:</span>
<span class="s2">&quot;foo&quot;</span><span class="p">:</span> <span class="p">{</span>
<span class="kc">None</span><span class="p">:</span> <span class="s2">&quot;main topic/foo text&quot;</span>
<span class="p">},</span>
<span class="s2">&quot;bar&quot;</span><span class="p">:</span> <span class="p">{</span>
<span class="kc">None</span><span class="p">:</span> <span class="s2">&quot;Main topic/bar text&quot;</span><span class="p">,</span>
<span class="s2">&quot;moo&quot;</span><span class="p">:</span> <span class="p">{</span>
<span class="kc">None</span><span class="p">:</span> <span class="s2">&quot;topic/bar/moo text&quot;</span>
<span class="s2">&quot;dum&quot;</span><span class="p">:</span> <span class="p">{</span>
<span class="kc">None</span><span class="p">:</span> <span class="s2">&quot;topic/bar/moo/dum text&quot;</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
</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.commands.default.help</a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp"><code class="docutils literal notranslate"><span class="pre">CmdHelp</span></code></a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.key"><code class="docutils literal notranslate"><span class="pre">CmdHelp.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.aliases"><code class="docutils literal notranslate"><span class="pre">CmdHelp.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.locks"><code class="docutils literal notranslate"><span class="pre">CmdHelp.locks</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.arg_regex"><code class="docutils literal notranslate"><span class="pre">CmdHelp.arg_regex</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.return_cmdset"><code class="docutils literal notranslate"><span class="pre">CmdHelp.return_cmdset</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.help_more"><code class="docutils literal notranslate"><span class="pre">CmdHelp.help_more</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.index_type_separator_clr"><code class="docutils literal notranslate"><span class="pre">CmdHelp.index_type_separator_clr</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.index_category_clr"><code class="docutils literal notranslate"><span class="pre">CmdHelp.index_category_clr</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.index_topic_clr"><code class="docutils literal notranslate"><span class="pre">CmdHelp.index_topic_clr</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.suggestion_cutoff"><code class="docutils literal notranslate"><span class="pre">CmdHelp.suggestion_cutoff</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.suggestion_maxnum"><code class="docutils literal notranslate"><span class="pre">CmdHelp.suggestion_maxnum</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.subtopic_separator_char"><code class="docutils literal notranslate"><span class="pre">CmdHelp.subtopic_separator_char</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.clickable_topics"><code class="docutils literal notranslate"><span class="pre">CmdHelp.clickable_topics</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.msg_help"><code class="docutils literal notranslate"><span class="pre">CmdHelp.msg_help()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.format_help_entry"><code class="docutils literal notranslate"><span class="pre">CmdHelp.format_help_entry()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.format_help_index"><code class="docutils literal notranslate"><span class="pre">CmdHelp.format_help_index()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.can_read_topic"><code class="docutils literal notranslate"><span class="pre">CmdHelp.can_read_topic()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.can_list_topic"><code class="docutils literal notranslate"><span class="pre">CmdHelp.can_list_topic()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.collect_topics"><code class="docutils literal notranslate"><span class="pre">CmdHelp.collect_topics()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.do_search"><code class="docutils literal notranslate"><span class="pre">CmdHelp.do_search()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.parse"><code class="docutils literal notranslate"><span class="pre">CmdHelp.parse()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.strip_cmd_prefix"><code class="docutils literal notranslate"><span class="pre">CmdHelp.strip_cmd_prefix()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.func"><code class="docutils literal notranslate"><span class="pre">CmdHelp.func()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.help_category"><code class="docutils literal notranslate"><span class="pre">CmdHelp.help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.lock_storage"><code class="docutils literal notranslate"><span class="pre">CmdHelp.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdHelp.search_index_entry"><code class="docutils literal notranslate"><span class="pre">CmdHelp.search_index_entry</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp</span></code></a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.key"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.aliases"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.switch_options"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.switch_options</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.locks"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.locks</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.help_category"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.arg_regex"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.arg_regex</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.parse"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.parse()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.func"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.func()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.lock_storage"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.CmdSetHelp.search_index_entry"><code class="docutils literal notranslate"><span class="pre">CmdSetHelp.search_index_entry</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString"><code class="docutils literal notranslate"><span class="pre">ANSIString</span></code></a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.__init__"><code class="docutils literal notranslate"><span class="pre">ANSIString.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.capitalize"><code class="docutils literal notranslate"><span class="pre">ANSIString.capitalize()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.center"><code class="docutils literal notranslate"><span class="pre">ANSIString.center()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.clean"><code class="docutils literal notranslate"><span class="pre">ANSIString.clean()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.count"><code class="docutils literal notranslate"><span class="pre">ANSIString.count()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.decode"><code class="docutils literal notranslate"><span class="pre">ANSIString.decode()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.encode"><code class="docutils literal notranslate"><span class="pre">ANSIString.encode()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.endswith"><code class="docutils literal notranslate"><span class="pre">ANSIString.endswith()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.expandtabs"><code class="docutils literal notranslate"><span class="pre">ANSIString.expandtabs()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.find"><code class="docutils literal notranslate"><span class="pre">ANSIString.find()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.format"><code class="docutils literal notranslate"><span class="pre">ANSIString.format()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.index"><code class="docutils literal notranslate"><span class="pre">ANSIString.index()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.isalnum"><code class="docutils literal notranslate"><span class="pre">ANSIString.isalnum()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.isalpha"><code class="docutils literal notranslate"><span class="pre">ANSIString.isalpha()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.isdigit"><code class="docutils literal notranslate"><span class="pre">ANSIString.isdigit()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.islower"><code class="docutils literal notranslate"><span class="pre">ANSIString.islower()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.isspace"><code class="docutils literal notranslate"><span class="pre">ANSIString.isspace()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.istitle"><code class="docutils literal notranslate"><span class="pre">ANSIString.istitle()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.isupper"><code class="docutils literal notranslate"><span class="pre">ANSIString.isupper()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.join"><code class="docutils literal notranslate"><span class="pre">ANSIString.join()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.ljust"><code class="docutils literal notranslate"><span class="pre">ANSIString.ljust()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.lower"><code class="docutils literal notranslate"><span class="pre">ANSIString.lower()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.lstrip"><code class="docutils literal notranslate"><span class="pre">ANSIString.lstrip()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.partition"><code class="docutils literal notranslate"><span class="pre">ANSIString.partition()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.raw"><code class="docutils literal notranslate"><span class="pre">ANSIString.raw()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.re_format"><code class="docutils literal notranslate"><span class="pre">ANSIString.re_format</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.replace"><code class="docutils literal notranslate"><span class="pre">ANSIString.replace()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.rfind"><code class="docutils literal notranslate"><span class="pre">ANSIString.rfind()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.rindex"><code class="docutils literal notranslate"><span class="pre">ANSIString.rindex()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.rjust"><code class="docutils literal notranslate"><span class="pre">ANSIString.rjust()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.rsplit"><code class="docutils literal notranslate"><span class="pre">ANSIString.rsplit()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.rstrip"><code class="docutils literal notranslate"><span class="pre">ANSIString.rstrip()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.split"><code class="docutils literal notranslate"><span class="pre">ANSIString.split()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.startswith"><code class="docutils literal notranslate"><span class="pre">ANSIString.startswith()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.strip"><code class="docutils literal notranslate"><span class="pre">ANSIString.strip()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.swapcase"><code class="docutils literal notranslate"><span class="pre">ANSIString.swapcase()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.translate"><code class="docutils literal notranslate"><span class="pre">ANSIString.translate()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.ANSIString.upper"><code class="docutils literal notranslate"><span class="pre">ANSIString.upper()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.commands.default.help.COMMAND_DEFAULT_CLASS"><code class="docutils literal notranslate"><span class="pre">COMMAND_DEFAULT_CLASS</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor"><code class="docutils literal notranslate"><span class="pre">EvEditor</span></code></a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.__init__"><code class="docutils literal notranslate"><span class="pre">EvEditor.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.decrease_indent"><code class="docutils literal notranslate"><span class="pre">EvEditor.decrease_indent()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.deduce_indent"><code class="docutils literal notranslate"><span class="pre">EvEditor.deduce_indent()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.display_buffer"><code class="docutils literal notranslate"><span class="pre">EvEditor.display_buffer()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.display_help"><code class="docutils literal notranslate"><span class="pre">EvEditor.display_help()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.get_buffer"><code class="docutils literal notranslate"><span class="pre">EvEditor.get_buffer()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.increase_indent"><code class="docutils literal notranslate"><span class="pre">EvEditor.increase_indent()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.load_buffer"><code class="docutils literal notranslate"><span class="pre">EvEditor.load_buffer()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.quit"><code class="docutils literal notranslate"><span class="pre">EvEditor.quit()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.save_buffer"><code class="docutils literal notranslate"><span class="pre">EvEditor.save_buffer()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.swap_autoindent"><code class="docutils literal notranslate"><span class="pre">EvEditor.swap_autoindent()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.update_buffer"><code class="docutils literal notranslate"><span class="pre">EvEditor.update_buffer()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.EvEditor.update_undo"><code class="docutils literal notranslate"><span class="pre">EvEditor.update_undo()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpCategory"><code class="docutils literal notranslate"><span class="pre">HelpCategory</span></code></a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpCategory.key"><code class="docutils literal notranslate"><span class="pre">HelpCategory.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpCategory.search_index_entry"><code class="docutils literal notranslate"><span class="pre">HelpCategory.search_index_entry</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpCategory.__init__"><code class="docutils literal notranslate"><span class="pre">HelpCategory.__init__()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry"><code class="docutils literal notranslate"><span class="pre">HelpEntry</span></code></a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.DoesNotExist"><code class="docutils literal notranslate"><span class="pre">HelpEntry.DoesNotExist</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.MultipleObjectsReturned"><code class="docutils literal notranslate"><span class="pre">HelpEntry.MultipleObjectsReturned</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.access"><code class="docutils literal notranslate"><span class="pre">HelpEntry.access()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.aliases"><code class="docutils literal notranslate"><span class="pre">HelpEntry.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.date_created"><code class="docutils literal notranslate"><span class="pre">HelpEntry.date_created</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.db_date_created"><code class="docutils literal notranslate"><span class="pre">HelpEntry.db_date_created</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.db_entrytext"><code class="docutils literal notranslate"><span class="pre">HelpEntry.db_entrytext</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.db_help_category"><code class="docutils literal notranslate"><span class="pre">HelpEntry.db_help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.db_key"><code class="docutils literal notranslate"><span class="pre">HelpEntry.db_key</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.db_lock_storage"><code class="docutils literal notranslate"><span class="pre">HelpEntry.db_lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.db_tags"><code class="docutils literal notranslate"><span class="pre">HelpEntry.db_tags</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.entrytext"><code class="docutils literal notranslate"><span class="pre">HelpEntry.entrytext</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.get_absolute_url"><code class="docutils literal notranslate"><span class="pre">HelpEntry.get_absolute_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.get_next_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">HelpEntry.get_next_by_db_date_created()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.get_previous_by_db_date_created"><code class="docutils literal notranslate"><span class="pre">HelpEntry.get_previous_by_db_date_created()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.help_category"><code class="docutils literal notranslate"><span class="pre">HelpEntry.help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.id"><code class="docutils literal notranslate"><span class="pre">HelpEntry.id</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.key"><code class="docutils literal notranslate"><span class="pre">HelpEntry.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.lock_storage"><code class="docutils literal notranslate"><span class="pre">HelpEntry.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.locks"><code class="docutils literal notranslate"><span class="pre">HelpEntry.locks</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.objects"><code class="docutils literal notranslate"><span class="pre">HelpEntry.objects</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.path"><code class="docutils literal notranslate"><span class="pre">HelpEntry.path</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.search_index_entry"><code class="docutils literal notranslate"><span class="pre">HelpEntry.search_index_entry</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.tags"><code class="docutils literal notranslate"><span class="pre">HelpEntry.tags</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.typename"><code class="docutils literal notranslate"><span class="pre">HelpEntry.typename</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.web_get_admin_url"><code class="docutils literal notranslate"><span class="pre">HelpEntry.web_get_admin_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.web_get_create_url"><code class="docutils literal notranslate"><span class="pre">HelpEntry.web_get_create_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.web_get_delete_url"><code class="docutils literal notranslate"><span class="pre">HelpEntry.web_get_delete_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.web_get_detail_url"><code class="docutils literal notranslate"><span class="pre">HelpEntry.web_get_detail_url()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.HelpEntry.web_get_update_url"><code class="docutils literal notranslate"><span class="pre">HelpEntry.web_get_update_url()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.commands.default.help.LockException"><code class="docutils literal notranslate"><span class="pre">LockException</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.chain"><code class="docutils literal notranslate"><span class="pre">chain</span></code></a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.chain.from_iterable"><code class="docutils literal notranslate"><span class="pre">chain.from_iterable()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.commands.default.help.class_from_module"><code class="docutils literal notranslate"><span class="pre">class_from_module()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.dataclass"><code class="docutils literal notranslate"><span class="pre">dataclass()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.dedent"><code class="docutils literal notranslate"><span class="pre">dedent()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.defaultdict"><code class="docutils literal notranslate"><span class="pre">defaultdict</span></code></a><ul>
<li><a class="reference internal" href="#evennia.commands.default.help.defaultdict.__init__"><code class="docutils literal notranslate"><span class="pre">defaultdict.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.defaultdict.copy"><code class="docutils literal notranslate"><span class="pre">defaultdict.copy()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.defaultdict.default_factory"><code class="docutils literal notranslate"><span class="pre">defaultdict.default_factory</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.commands.default.help.format_grid"><code class="docutils literal notranslate"><span class="pre">format_grid()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.help_search_with_index"><code class="docutils literal notranslate"><span class="pre">help_search_with_index()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.inherits_from"><code class="docutils literal notranslate"><span class="pre">inherits_from()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.pad"><code class="docutils literal notranslate"><span class="pre">pad()</span></code></a></li>
<li><a class="reference internal" href="#evennia.commands.default.help.parse_entry_for_subcategories"><code class="docutils literal notranslate"><span class="pre">parse_entry_for_subcategories()</span></code></a></li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.commands.default.general.html"
title="previous chapter">evennia.commands.default.general</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.commands.default.muxcommand.html"
title="next chapter">evennia.commands.default.muxcommand</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.commands.default.help.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.commands.default.muxcommand.html" title="evennia.commands.default.muxcommand"
>next</a> |</li>
<li class="right" >
<a href="evennia.commands.default.general.html" title="evennia.commands.default.general"
>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.commands.html" >evennia.commands</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.commands.default.html" >evennia.commands.default</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.commands.default.help</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>