mirror of
https://github.com/evennia/evennia.git
synced 2026-03-23 00:06:30 +01:00
692 lines
No EOL
65 KiB
HTML
692 lines
No EOL
65 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="en" data-content_root="../">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<title>evennia.utils.evmore — Evennia latest documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
|
||
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
|
||
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<link rel="icon" href="../_static/favicon.ico"/>
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
<link rel="next" title="evennia.utils.evtable" href="evennia.utils.evtable.html" />
|
||
<link rel="prev" title="evennia.utils.evmenu" href="evennia.utils.evmenu.html" />
|
||
</head><body>
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.utils.evtable.html" title="evennia.utils.evtable"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.utils.evmenu.html" title="evennia.utils.evmenu"
|
||
accesskey="P">previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> »</li>
|
||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-4"><a href="evennia.utils.html" accesskey="U">evennia.utils</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">evennia.utils.evmore</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section id="module-evennia.utils.evmore">
|
||
<span id="evennia-utils-evmore"></span><h1>evennia.utils.evmore<a class="headerlink" href="#module-evennia.utils.evmore" title="Link to this heading">¶</a></h1>
|
||
<p>EvMore - pager mechanism</p>
|
||
<p>This is a pager for displaying long texts and allows stepping up and down in
|
||
the text (the name comes from the traditional ‘more’ unix command).</p>
|
||
<p>To use, simply pass the text through the EvMore object:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">evennia.utils.evmore</span><span class="w"> </span><span class="kn">import</span> <span class="n">EvMore</span>
|
||
|
||
<span class="n">text</span> <span class="o">=</span> <span class="n">some_long_text_output</span><span class="p">()</span>
|
||
<span class="n">EvMore</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">always_page</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">justify_kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>One can also use the convenience function <strong>msg</strong> from this module to avoid
|
||
having to set up the <strong>EvMenu</strong> object manually:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">evennia.utils</span><span class="w"> </span><span class="kn">import</span> <span class="n">evmore</span>
|
||
|
||
<span class="n">text</span> <span class="o">=</span> <span class="n">some_long_text_output</span><span class="p">()</span>
|
||
<span class="n">evmore</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">always_page</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">justify_kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The <strong>always_page</strong> argument decides if the pager is used also if the text is not long
|
||
enough to need to scroll, <strong>session</strong> is used to determine which session to relay
|
||
to and <strong>justify_kwargs</strong> are kwargs to pass to utils.utils.justify in order to
|
||
change the formatting of the text. The remaining <strong>**kwargs</strong> will be passed on to
|
||
the <strong>caller.msg()</strong> construct every time the page is updated.</p>
|
||
<hr class="docutils" />
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMore">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.utils.evmore.</span></span><span class="sig-name descname"><span class="pre">CmdMore</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/utils/evmore.html#CmdMore"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.CmdMore" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">Command</span></code></a></p>
|
||
<p>Manipulate the text paging. Catch no-input with aliases.</p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMore.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">'__noinput_command'</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.key" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMore.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">['top',</span> <span class="pre">'a',</span> <span class="pre">'quit',</span> <span class="pre">'previous',</span> <span class="pre">'abort',</span> <span class="pre">'p',</span> <span class="pre">'e',</span> <span class="pre">'next',</span> <span class="pre">'t',</span> <span class="pre">'end',</span> <span class="pre">'n',</span> <span class="pre">'q']</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.aliases" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMore.auto_help">
|
||
<span class="sig-name descname"><span class="pre">auto_help</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.auto_help" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMore.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/utils/evmore.html#CmdMore.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.CmdMore.func" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Implement the command</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMore.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.utils.evmore.CmdMore.help_category" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMore.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.utils.evmore.CmdMore.lock_storage" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMore.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">'top</span> <span class="pre">a</span> <span class="pre">quit</span> <span class="pre">previous</span> <span class="pre">abort</span> <span class="pre">p</span> <span class="pre">e</span> <span class="pre">next</span> <span class="pre">t</span> <span class="pre">end</span> <span class="pre">n</span> <span class="pre">q',</span> <span class="pre">'category':</span> <span class="pre">'general',</span> <span class="pre">'key':</span> <span class="pre">'__noinput_command',</span> <span class="pre">'no_prefix':</span> <span class="pre">'</span> <span class="pre">top</span> <span class="pre">a</span> <span class="pre">quit</span> <span class="pre">previous</span> <span class="pre">abort</span> <span class="pre">p</span> <span class="pre">e</span> <span class="pre">next</span> <span class="pre">t</span> <span class="pre">end</span> <span class="pre">n</span> <span class="pre">q',</span> <span class="pre">'tags':</span> <span class="pre">'',</span> <span class="pre">'text':</span> <span class="pre">'\nManipulate</span> <span class="pre">the</span> <span class="pre">text</span> <span class="pre">paging.</span> <span class="pre">Catch</span> <span class="pre">no-input</span> <span class="pre">with</span> <span class="pre">aliases.\n'}</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.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.utils.evmore.CmdMoreExit">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.utils.evmore.</span></span><span class="sig-name descname"><span class="pre">CmdMoreExit</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/utils/evmore.html#CmdMoreExit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.CmdMoreExit" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.commands.command.html#evennia.commands.command.Command" title="evennia.commands.command.Command"><code class="xref py py-class docutils literal notranslate"><span class="pre">Command</span></code></a></p>
|
||
<p>Any non-more command will exit the pager.</p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMoreExit.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">'__nomatch_command'</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdMoreExit.key" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMoreExit.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/utils/evmore.html#CmdMoreExit.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.CmdMoreExit.func" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Exit pager and re-fire the failed command.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMoreExit.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.utils.evmore.CmdMoreExit.aliases" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMoreExit.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.utils.evmore.CmdMoreExit.help_category" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMoreExit.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.utils.evmore.CmdMoreExit.lock_storage" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdMoreExit.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">'__nomatch_command',</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">'\nAny</span> <span class="pre">non-more</span> <span class="pre">command</span> <span class="pre">will</span> <span class="pre">exit</span> <span class="pre">the</span> <span class="pre">pager.\n\n'}</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdMoreExit.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.utils.evmore.CmdSetMore">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.utils.evmore.</span></span><span class="sig-name descname"><span class="pre">CmdSetMore</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cmdsetobj</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">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#CmdSetMore"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.CmdSetMore" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Bases: <a class="reference internal" href="evennia.commands.cmdset.html#evennia.commands.cmdset.CmdSet" title="evennia.commands.cmdset.CmdSet"><code class="xref py py-class docutils literal notranslate"><span class="pre">CmdSet</span></code></a></p>
|
||
<p>Stores the more command</p>
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdSetMore.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">'more_commands'</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdSetMore.key" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdSetMore.priority">
|
||
<span class="sig-name descname"><span class="pre">priority</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">110</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdSetMore.priority" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdSetMore.mergetype">
|
||
<span class="sig-name descname"><span class="pre">mergetype</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'Replace'</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdSetMore.mergetype" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdSetMore.at_cmdset_creation">
|
||
<span class="sig-name descname"><span class="pre">at_cmdset_creation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#CmdSetMore.at_cmdset_creation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.CmdSetMore.at_cmdset_creation" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Hook method - this should be overloaded in the inheriting
|
||
class, and should take care of populating the cmdset by use of
|
||
self.add().</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py attribute">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.CmdSetMore.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.utils.evmore.CmdSetMore'</span></em><a class="headerlink" href="#evennia.utils.evmore.CmdSetMore.path" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.queryset_maxsize">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.utils.evmore.</span></span><span class="sig-name descname"><span class="pre">queryset_maxsize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">qs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#queryset_maxsize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.queryset_maxsize" title="Link to this definition">¶</a></dt>
|
||
<dd></dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore">
|
||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.utils.evmore.</span></span><span class="sig-name descname"><span class="pre">EvMore</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">inp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">always_page=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">session=None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">justify=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">justify_kwargs=None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exit_on_lastpage=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exit_cmd=None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">page_formatter=<class</span> <span class="pre">'str'></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore" 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>The main pager object</p>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.__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">inp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">always_page=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">session=None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">justify=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">justify_kwargs=None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exit_on_lastpage=False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exit_cmd=None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">page_formatter=<class</span> <span class="pre">'str'></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">**kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.__init__" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Initialization of the EvMore pager.</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>) – Entity reading the text.</p></li>
|
||
<li><p><strong>inp</strong> (<em>str</em><em>, </em><a class="reference internal" href="evennia.commands.default.building.html#evennia.commands.default.building.EvTable" title="evennia.commands.default.building.EvTable"><em>EvTable</em></a><em>, </em><a class="reference internal" href="evennia.commands.default.building.html#evennia.commands.default.building.Paginator" title="evennia.commands.default.building.Paginator"><em>Paginator</em></a><em> or </em><em>iterator</em>) – <p>The text or data to put under paging.</p>
|
||
<ul>
|
||
<li><p>If a string, paginage normally. If this text contains
|
||
one or more <strong>\f</strong> format symbol, automatic pagination and justification
|
||
are force-disabled and page-breaks will only happen after each <strong>\f</strong>.</p></li>
|
||
<li><p>If <strong>EvTable</strong>, the EvTable will be paginated with the same
|
||
setting on each page if it is too long. The table
|
||
decorations will be considered in the size of the page.</p></li>
|
||
<li><p>Otherwise <strong>inp</strong> is converted to an iterator, where each step is
|
||
expected to be a line in the final display. Each line
|
||
will be run through <strong>iter_callable</strong>.</p></li>
|
||
</ul>
|
||
</p></li>
|
||
<li><p><strong>always_page</strong> (<em>bool</em><em>, </em><em>optional</em>) – If <strong>False</strong>, the
|
||
pager will only kick in if <strong>inp</strong> is too big
|
||
to fit the screen.</p></li>
|
||
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>, </em><em>optional</em>) – If given, this session will be used
|
||
to determine the screen width and will receive all output.</p></li>
|
||
<li><p><strong>justify</strong> (<em>bool</em><em>, </em><em>optional</em>) – If set, auto-justify long lines. This must be turned
|
||
off for fixed-width or formatted output, like tables. It’s force-disabled
|
||
if <strong>inp</strong> is an EvTable.</p></li>
|
||
<li><p><strong>justify_kwargs</strong> (<em>dict</em><em>, </em><em>optional</em>) – Keywords for the justify function. Used only
|
||
if <strong>justify</strong> is True. If this is not set, default arguments will be used.</p></li>
|
||
<li><p><strong>exit_on_lastpage</strong> (<em>bool</em><em>, </em><em>optional</em>) – If reaching the last page without the
|
||
page being completely filled, exit pager immediately. If unset,
|
||
another move forward is required to exit. If set, the pager
|
||
exit message will not be shown.</p></li>
|
||
<li><p><strong>exit_cmd</strong> (<em>str</em><em>, </em><em>optional</em>) – If given, this command-string will be executed on
|
||
the caller when the more page exits. Note that this will be using whatever
|
||
cmdset the user had <em>before</em> the evmore pager was activated (so none of
|
||
the evmore commands will be available when this is run).</p></li>
|
||
<li><p><strong>kwargs</strong> (<em>any</em><em>, </em><em>optional</em>) – These will be passed on to the <strong>caller.msg</strong> method. Notably,
|
||
one can pass additional outputfuncs this way. There is one special kwarg:
|
||
- <strong>text_kwargs</strong> - extra kwargs to pass with the text outputfunc, e.g.
|
||
<strong>text_kwargs={“type”: “help”}</strong> would result to each page being sent
|
||
to <strong>msg</strong> as <strong>text=(pagetxt, {“type”: “help”})</strong>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Examples</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">super_long_text</span> <span class="o">=</span> <span class="s2">" ... "</span>
|
||
<span class="n">EvMore</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">super_long_text</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Paginator</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">django.core.paginator</span><span class="w"> </span><span class="kn">import</span> <span class="n">Paginator</span>
|
||
<span class="n">query</span> <span class="o">=</span> <span class="n">ObjectDB</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
|
||
<span class="n">pages</span> <span class="o">=</span> <span class="n">Paginator</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="c1"># 10 objs per page</span>
|
||
<span class="n">EvMore</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">pages</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Every page an EvTable</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">evennia</span><span class="w"> </span><span class="kn">import</span> <span class="n">EvTable</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">_to_evtable</span><span class="p">(</span><span class="n">page</span><span class="p">):</span>
|
||
<span class="n">table</span> <span class="o">=</span> <span class="o">...</span> <span class="c1"># convert page to a table</span>
|
||
<span class="k">return</span> <span class="n">EvTable</span><span class="p">(</span><span class="o">*</span><span class="n">headers</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
|
||
<span class="n">EvMore</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">pages</span><span class="p">,</span> <span class="n">page_formatter</span><span class="o">=</span><span class="n">_to_evtable</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.display">
|
||
<span class="sig-name descname"><span class="pre">display</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_footer</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/utils/evmore.html#EvMore.display"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.display" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Pretty-print the page.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.page_top">
|
||
<span class="sig-name descname"><span class="pre">page_top</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.page_top"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.page_top" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Display the top page</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.page_end">
|
||
<span class="sig-name descname"><span class="pre">page_end</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.page_end"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.page_end" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Display the bottom page.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.page_next">
|
||
<span class="sig-name descname"><span class="pre">page_next</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.page_next"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.page_next" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Scroll the text to the next page. Quit if already at the end
|
||
of the page.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.page_back">
|
||
<span class="sig-name descname"><span class="pre">page_back</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.page_back"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.page_back" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Scroll the text back up, at the most to the top.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.page_quit">
|
||
<span class="sig-name descname"><span class="pre">page_quit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">quiet</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/evmore.html#EvMore.page_quit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.page_quit" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Quit the pager</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.start">
|
||
<span class="sig-name descname"><span class="pre">start</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.start" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Starts the pagination</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.paginator_index">
|
||
<span class="sig-name descname"><span class="pre">paginator_index</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pageno</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.paginator_index"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.paginator_index" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Paginate to specific, known index</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.paginator_slice">
|
||
<span class="sig-name descname"><span class="pre">paginator_slice</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pageno</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.paginator_slice"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.paginator_slice" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Paginate by slice. This is done with an eye on memory efficiency (usually for
|
||
querysets); to avoid fetching all objects at the same time.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.paginator_django">
|
||
<span class="sig-name descname"><span class="pre">paginator_django</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pageno</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.paginator_django"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.paginator_django" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Paginate using the django queryset Paginator API. Note that his is indexed from 1.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.init_evtable">
|
||
<span class="sig-name descname"><span class="pre">init_evtable</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">table</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.init_evtable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.init_evtable" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The input is an EvTable.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.init_queryset">
|
||
<span class="sig-name descname"><span class="pre">init_queryset</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">qs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.init_queryset"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.init_queryset" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The input is a queryset</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.init_django_paginator">
|
||
<span class="sig-name descname"><span class="pre">init_django_paginator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pages</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.init_django_paginator"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.init_django_paginator" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The input is a django Paginator object.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.init_iterable">
|
||
<span class="sig-name descname"><span class="pre">init_iterable</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">inp</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.init_iterable"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.init_iterable" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The input is something other than a string - convert to iterable of strings</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.init_f_str">
|
||
<span class="sig-name descname"><span class="pre">init_f_str</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.init_f_str"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.init_f_str" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The input contains <strong>f</strong> markers. We use <strong>f</strong> to indicate the user wants to
|
||
enforce their line breaks on their own. If so, we do no automatic
|
||
line-breaking/justification at all.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>text</strong> (<em>str</em>) – The string to format with f-markers.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.init_str">
|
||
<span class="sig-name descname"><span class="pre">init_str</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.init_str"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.init_str" title="Link to this definition">¶</a></dt>
|
||
<dd><p>The input is a string</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.init_pages">
|
||
<span class="sig-name descname"><span class="pre">init_pages</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">inp</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.init_pages"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.init_pages" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Initialize the pagination. By default, will analyze input type to determine
|
||
how pagination automatically.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>inp</strong> (<em>any</em>) – Incoming data to be paginated. By default, handles pagination of
|
||
strings, querysets, django.Paginator, EvTables and any iterables with strings.</p>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Notes</p>
|
||
<p>If overridden, this method must perform the following actions:</p>
|
||
<ul class="simple">
|
||
<li><p>read and re-store <strong>self._data</strong> (the incoming data set) if needed for pagination to
|
||
work.</p></li>
|
||
<li><p>set <strong>self._npages</strong> to the total number of pages. Default is 1.</p></li>
|
||
<li><p>set <strong>self._paginator</strong> to a callable that will take a page number 1…N and return
|
||
the data to display on that page (not any decorations or next/prev buttons). If only
|
||
wanting to change the paginator, override <strong>self.paginator</strong> instead.</p></li>
|
||
<li><p>set <strong>self._page_formatter</strong> to a callable that will receive the page from
|
||
<strong>self._paginator</strong> and format it with one element per line. Default is <strong>str</strong>. Or
|
||
override <strong>self.page_formatter</strong> directly instead.</p></li>
|
||
</ul>
|
||
<p>By default, helper methods are called that perform these actions
|
||
depending on supported inputs.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.paginator">
|
||
<span class="sig-name descname"><span class="pre">paginator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pageno</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.paginator"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.paginator" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Paginator. The data operated upon is in <strong>self._data</strong>.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>pageno</strong> (<em>int</em>) – The page number to view, from 0…N-1</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>str</em> –</p>
|
||
<dl class="simple">
|
||
<dt>The page to display (without any decorations, those are added</dt><dd><p>by EvMore).</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.EvMore.page_formatter">
|
||
<span class="sig-name descname"><span class="pre">page_formatter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">page</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/utils/evmore.html#EvMore.page_formatter"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.EvMore.page_formatter" title="Link to this definition">¶</a></dt>
|
||
<dd><p>Page formatter. Every page passes through this method. Override
|
||
it to customize behavior per-page. A common use is to generate a new
|
||
EvTable for every page (this is more efficient than to generate one huge
|
||
EvTable across many pages and feed it into EvMore all at once).</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>page</strong> (<em>any</em>) – A piece of data representing one page to display. This must</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><p><em>str</em> –</p>
|
||
<dl class="simple">
|
||
<dt>A ready-formatted page to display. Extra footer with help about</dt><dd><p>switching to the next/prev page will be added automatically</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="evennia.utils.evmore.msg">
|
||
<span class="sig-prename descclassname"><span class="pre">evennia.utils.evmore.</span></span><span class="sig-name descname"><span class="pre">msg</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">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">always_page</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">session</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">justify</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">justify_kwargs</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">exit_on_lastpage</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="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/evmore.html#msg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.utils.evmore.msg" title="Link to this definition">¶</a></dt>
|
||
<dd><p>EvMore-supported version of msg, mimicking the normal msg method.</p>
|
||
<p>Initialization of the EvMore pager.</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>) – Entity reading the text.</p></li>
|
||
<li><p><strong>inp</strong> (<em>str</em><em>, </em><a class="reference internal" href="evennia.commands.default.building.html#evennia.commands.default.building.EvTable" title="evennia.commands.default.building.EvTable"><em>EvTable</em></a><em>, </em><a class="reference internal" href="evennia.commands.default.building.html#evennia.commands.default.building.Paginator" title="evennia.commands.default.building.Paginator"><em>Paginator</em></a><em> or </em><em>iterator</em>) – <p>The text or data to put under paging.</p>
|
||
<ul>
|
||
<li><p>If a string, paginage normally. If this text contains
|
||
one or more <strong>\f</strong> format symbol, automatic pagination and justification
|
||
are force-disabled and page-breaks will only happen after each <strong>\f</strong>.</p></li>
|
||
<li><p>If <strong>EvTable</strong>, the EvTable will be paginated with the same
|
||
setting on each page if it is too long. The table
|
||
decorations will be considered in the size of the page.</p></li>
|
||
<li><p>Otherwise <strong>inp</strong> is converted to an iterator, where each step is
|
||
expected to be a line in the final display. Each line
|
||
will be run through <strong>iter_callable</strong>.</p></li>
|
||
</ul>
|
||
</p></li>
|
||
<li><p><strong>always_page</strong> (<em>bool</em><em>, </em><em>optional</em>) – If <strong>False</strong>, the
|
||
pager will only kick in if <strong>inp</strong> is too big
|
||
to fit the screen.</p></li>
|
||
<li><p><strong>session</strong> (<a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><em>Session</em></a><em>, </em><em>optional</em>) – If given, this session will be used
|
||
to determine the screen width and will receive all output.</p></li>
|
||
<li><p><strong>justify</strong> (<em>bool</em><em>, </em><em>optional</em>) – If set, auto-justify long lines. This must be turned
|
||
off for fixed-width or formatted output, like tables. It’s force-disabled
|
||
if <strong>inp</strong> is an EvTable.</p></li>
|
||
<li><p><strong>justify_kwargs</strong> (<em>dict</em><em>, </em><em>optional</em>) – Keywords for the justify function. Used only
|
||
if <strong>justify</strong> is True. If this is not set, default arguments will be used.</p></li>
|
||
<li><p><strong>exit_on_lastpage</strong> (<em>bool</em><em>, </em><em>optional</em>) – If reaching the last page without the
|
||
page being completely filled, exit pager immediately. If unset,
|
||
another move forward is required to exit. If set, the pager
|
||
exit message will not be shown.</p></li>
|
||
<li><p><strong>exit_cmd</strong> (<em>str</em><em>, </em><em>optional</em>) – If given, this command-string will be executed on
|
||
the caller when the more page exits. Note that this will be using whatever
|
||
cmdset the user had <em>before</em> the evmore pager was activated (so none of
|
||
the evmore commands will be available when this is run).</p></li>
|
||
<li><p><strong>kwargs</strong> (<em>any</em><em>, </em><em>optional</em>) – These will be passed on to the <strong>caller.msg</strong> method. Notably,
|
||
one can pass additional outputfuncs this way. There is one special kwarg:
|
||
- <strong>text_kwargs</strong> - extra kwargs to pass with the text outputfunc, e.g.
|
||
<strong>text_kwargs={“type”: “help”}</strong> would result to each page being sent
|
||
to <strong>msg</strong> as <strong>text=(pagetxt, {“type”: “help”})</strong>.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<p class="rubric">Examples</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">super_long_text</span> <span class="o">=</span> <span class="s2">" ... "</span>
|
||
<span class="n">EvMore</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">super_long_text</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Paginator</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">django.core.paginator</span><span class="w"> </span><span class="kn">import</span> <span class="n">Paginator</span>
|
||
<span class="n">query</span> <span class="o">=</span> <span class="n">ObjectDB</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
|
||
<span class="n">pages</span> <span class="o">=</span> <span class="n">Paginator</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="c1"># 10 objs per page</span>
|
||
<span class="n">EvMore</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">pages</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Every page an EvTable</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">evennia</span><span class="w"> </span><span class="kn">import</span> <span class="n">EvTable</span>
|
||
<span class="k">def</span><span class="w"> </span><span class="nf">_to_evtable</span><span class="p">(</span><span class="n">page</span><span class="p">):</span>
|
||
<span class="n">table</span> <span class="o">=</span> <span class="o">...</span> <span class="c1"># convert page to a table</span>
|
||
<span class="k">return</span> <span class="n">EvTable</span><span class="p">(</span><span class="o">*</span><span class="n">headers</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
|
||
<span class="n">EvMore</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">pages</span><span class="p">,</span> <span class="n">page_formatter</span><span class="o">=</span><span class="n">_to_evtable</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.utils.evmore</a><ul>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMore"><code class="docutils literal notranslate"><span class="pre">CmdMore</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMore.key"><code class="docutils literal notranslate"><span class="pre">CmdMore.key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMore.aliases"><code class="docutils literal notranslate"><span class="pre">CmdMore.aliases</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMore.auto_help"><code class="docutils literal notranslate"><span class="pre">CmdMore.auto_help</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMore.func"><code class="docutils literal notranslate"><span class="pre">CmdMore.func()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMore.help_category"><code class="docutils literal notranslate"><span class="pre">CmdMore.help_category</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMore.lock_storage"><code class="docutils literal notranslate"><span class="pre">CmdMore.lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMore.search_index_entry"><code class="docutils literal notranslate"><span class="pre">CmdMore.search_index_entry</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMoreExit"><code class="docutils literal notranslate"><span class="pre">CmdMoreExit</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMoreExit.key"><code class="docutils literal notranslate"><span class="pre">CmdMoreExit.key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMoreExit.func"><code class="docutils literal notranslate"><span class="pre">CmdMoreExit.func()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMoreExit.aliases"><code class="docutils literal notranslate"><span class="pre">CmdMoreExit.aliases</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMoreExit.help_category"><code class="docutils literal notranslate"><span class="pre">CmdMoreExit.help_category</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMoreExit.lock_storage"><code class="docutils literal notranslate"><span class="pre">CmdMoreExit.lock_storage</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdMoreExit.search_index_entry"><code class="docutils literal notranslate"><span class="pre">CmdMoreExit.search_index_entry</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdSetMore"><code class="docutils literal notranslate"><span class="pre">CmdSetMore</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdSetMore.key"><code class="docutils literal notranslate"><span class="pre">CmdSetMore.key</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdSetMore.priority"><code class="docutils literal notranslate"><span class="pre">CmdSetMore.priority</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdSetMore.mergetype"><code class="docutils literal notranslate"><span class="pre">CmdSetMore.mergetype</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdSetMore.at_cmdset_creation"><code class="docutils literal notranslate"><span class="pre">CmdSetMore.at_cmdset_creation()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.CmdSetMore.path"><code class="docutils literal notranslate"><span class="pre">CmdSetMore.path</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.queryset_maxsize"><code class="docutils literal notranslate"><span class="pre">queryset_maxsize()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore"><code class="docutils literal notranslate"><span class="pre">EvMore</span></code></a><ul>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.__init__"><code class="docutils literal notranslate"><span class="pre">EvMore.__init__()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.display"><code class="docutils literal notranslate"><span class="pre">EvMore.display()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.page_top"><code class="docutils literal notranslate"><span class="pre">EvMore.page_top()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.page_end"><code class="docutils literal notranslate"><span class="pre">EvMore.page_end()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.page_next"><code class="docutils literal notranslate"><span class="pre">EvMore.page_next()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.page_back"><code class="docutils literal notranslate"><span class="pre">EvMore.page_back()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.page_quit"><code class="docutils literal notranslate"><span class="pre">EvMore.page_quit()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.start"><code class="docutils literal notranslate"><span class="pre">EvMore.start()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.paginator_index"><code class="docutils literal notranslate"><span class="pre">EvMore.paginator_index()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.paginator_slice"><code class="docutils literal notranslate"><span class="pre">EvMore.paginator_slice()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.paginator_django"><code class="docutils literal notranslate"><span class="pre">EvMore.paginator_django()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.init_evtable"><code class="docutils literal notranslate"><span class="pre">EvMore.init_evtable()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.init_queryset"><code class="docutils literal notranslate"><span class="pre">EvMore.init_queryset()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.init_django_paginator"><code class="docutils literal notranslate"><span class="pre">EvMore.init_django_paginator()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.init_iterable"><code class="docutils literal notranslate"><span class="pre">EvMore.init_iterable()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.init_f_str"><code class="docutils literal notranslate"><span class="pre">EvMore.init_f_str()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.init_str"><code class="docutils literal notranslate"><span class="pre">EvMore.init_str()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.init_pages"><code class="docutils literal notranslate"><span class="pre">EvMore.init_pages()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.paginator"><code class="docutils literal notranslate"><span class="pre">EvMore.paginator()</span></code></a></li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.EvMore.page_formatter"><code class="docutils literal notranslate"><span class="pre">EvMore.page_formatter()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#evennia.utils.evmore.msg"><code class="docutils literal notranslate"><span class="pre">msg()</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<div>
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="evennia.utils.evmenu.html"
|
||
title="previous chapter">evennia.utils.evmenu</a></p>
|
||
</div>
|
||
<div>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="evennia.utils.evtable.html"
|
||
title="next chapter">evennia.utils.evtable</a></p>
|
||
</div>
|
||
<div role="note" aria-label="source link">
|
||
<!--h3>This Page</h3-->
|
||
<ul class="this-page-menu">
|
||
<li><a href="../_sources/api/evennia.utils.evmore.md.txt"
|
||
rel="nofollow">Show Page Source</a></li>
|
||
</ul>
|
||
</div><h3>Links</h3>
|
||
<ul>
|
||
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
|
||
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
|
||
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
|
||
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
||
<li>
|
||
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
||
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
||
<a href="https://evennia.blogspot.com/">Blog</a>
|
||
</li>
|
||
</ul>
|
||
<h3>Doc Versions</h3>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
|
||
</li>
|
||
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="Related">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="../genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="../py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.utils.evtable.html" title="evennia.utils.evtable"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="evennia.utils.evmenu.html" title="evennia.utils.evmenu"
|
||
>previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> »</li>
|
||
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> »</li>
|
||
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> »</li>
|
||
<li class="nav-item nav-item-4"><a href="evennia.utils.html" >evennia.utils</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">evennia.utils.evmore</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="footer" role="contentinfo">
|
||
© Copyright 2024, The Evennia developer community.
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
|
||
</div>
|
||
</body>
|
||
</html> |