evennia/docs/2.x/api/evennia.contrib.utils.name_generator.namegen.html
Evennia docbuilder action e535f5782a Updated HTML docs.
2023-10-19 20:22:27 +00:00

284 lines
No EOL
18 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>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>evennia.contrib.utils.name_generator.namegen &#8212; Evennia 2.x documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut 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.contrib.utils.name_generator.tests" href="evennia.contrib.utils.name_generator.tests.html" />
<link rel="prev" title="evennia.contrib.utils.name_generator" href="evennia.contrib.utils.name_generator.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<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.contrib.utils.name_generator.tests.html" title="evennia.contrib.utils.name_generator.tests"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.utils.name_generator.html" title="evennia.contrib.utils.name_generator"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</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.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.utils.html" >evennia.contrib.utils</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.utils.name_generator.html" accesskey="U">evennia.contrib.utils.name_generator</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.utils.name_generator.namegen</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div 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" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.utils.name_generator.html"
title="previous chapter">evennia.contrib.utils.name_generator</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.utils.name_generator.tests.html"
title="next chapter">evennia.contrib.utils.name_generator.tests</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.contrib.utils.name_generator.namegen.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="evennia.contrib.utils.name_generator.namegen.html">2.x (main branch)</a></li>
<ul>
<li><a href="../1.3.0/index.html">1.3.0 (v1.3.0 branch)</a></li>
<li><a href="../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.utils.name_generator.namegen">
<span id="evennia-contrib-utils-name-generator-namegen"></span><h1>evennia.contrib.utils.name_generator.namegen<a class="headerlink" href="#module-evennia.contrib.utils.name_generator.namegen" title="Permalink to this headline"></a></h1>
<p>Random Name Generator</p>
<p>Contribution by InspectorCaracal (2022)</p>
<p>A module for generating random names, both real-world and fantasy. Real-world
names can be generated either as first (personal) names, family (last) names, or
full names (first, optional middles, and last). The name data is from [Behind the Name](<a class="reference external" href="https://www.behindthename.com/">https://www.behindthename.com/</a>)
and used under the [CC BY-SA 4.0 license](<a class="reference external" href="https://creativecommons.org/licenses/by-sa/4.0/">https://creativecommons.org/licenses/by-sa/4.0/</a>).</p>
<p>Fantasy names are generated from basic phonetic rules, using CVC syllable syntax.</p>
<p>Both real-world and fantasy name generation can be extended to include additional
information via your games <strong>settings.py</strong></p>
<p>Available Methods:</p>
<blockquote>
<div><p>first_name - Selects a random a first (personal) name from the name lists.
last_name - Selects a random last (family) name from the name lists.
full_name - Generates a randomized full name, optionally including middle names, by selecting first/last names from the name lists.
fantasy_name - Generates a completely new made-up name based on phonetic rules.</p>
</div></blockquote>
<p>Method examples:</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">namegen</span><span class="o">.</span><span class="n">first_name</span><span class="p">(</span><span class="n">num</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="go">[&#39;Genesis&#39;, &#39;Tali&#39;, &#39;Budur&#39;, &#39;Dominykas&#39;, &#39;Kamau&#39;]</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">namegen</span><span class="o">.</span><span class="n">full_name</span><span class="p">(</span><span class="n">parts</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">surname_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="go">&#39;Ó Muircheartach Torunn Dyson&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">namegen</span><span class="o">.</span><span class="n">full_name</span><span class="p">(</span><span class="n">gender</span><span class="o">=</span><span class="s1">&#39;f&#39;</span><span class="p">)</span>
<span class="go">&#39;Wikolia Ó Deasmhumhnaigh&#39;</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">namegen</span><span class="o">.</span><span class="n">fantasy_name</span><span class="p">(</span><span class="n">num</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s2">&quot;fluid&quot;</span><span class="p">)</span>
<span class="go">[&#39;Aewalisash&#39;, &#39;Ayi&#39;, &#39;Iaa&#39;]</span>
</pre></div>
</div>
<p>Available Settings (define these in your <strong>settings.py</strong>)</p>
<blockquote>
<div><p>NAMEGEN_FIRST_NAMES - Option to add a new list of first (personal) names.
NAMEGEN_LAST_NAMES - Option to add a new list of last (family) names.
NAMEGEN_REPLACE_LISTS - Set to True if you want to use ONLY your name lists and not the ones that come with the contrib.
NAMEGEN_FANTASY_RULES - Option to add new fantasy-name style rules.</p>
<blockquote>
<div><p>Must be a dictionary that includes “syllable”, “consonants”, “vowels”, and “length” - see the example.
“start” and “end” keys are optional.</p>
</div></blockquote>
</div></blockquote>
<p>Settings examples:</p>
<dl>
<dt>NAMEGEN_FIRST_NAMES = [</dt><dd><blockquote>
<div><p>(“Evennia”, mf),
(“Green Tea”, f),</p>
</div></blockquote>
<p>]</p>
</dd>
</dl>
<p>NAMEGEN_LAST_NAMES = [ “Beeblebrox”, “Son of Odin” ]</p>
<dl>
<dt>NAMEGEN_FANTASY_RULES = {</dt><dd><dl>
<dt>“example_style”: {</dt><dd><blockquote>
<div><p>“syllable”: “(C)VC”,
“consonants”: [ z,z,ph,sh,r,n ],
“start”: [m],
“end”: [x,n],
“vowels”: [ “e”,”e”,”e”,”a”,”i”,”i”,”u”,”o”, ],
“length”: (2,4),</p>
</div></blockquote>
<p>}</p>
</dd>
</dl>
<p>}</p>
</dd>
</dl>
<dl class="py function">
<dt id="evennia.contrib.utils.name_generator.namegen.fantasy_name">
<code class="sig-prename descclassname">evennia.contrib.utils.name_generator.namegen.</code><code class="sig-name descname">fantasy_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">num</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">style</span><span class="o">=</span><span class="default_value">'harsh'</span></em>, <em class="sig-param"><span class="n">return_list</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/utils/name_generator/namegen.html#fantasy_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.utils.name_generator.namegen.fantasy_name" title="Permalink to this definition"></a></dt>
<dd><p>Generate made-up names in one of a number of “styles”.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>num</strong> (<em>int</em>) </p></li>
<li><p><strong>style</strong> (<em>string</em>) </p></li>
<li><p><strong>return_list</strong> (<em>bool</em>) which returns a string if there is only one value and a list if more.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.utils.name_generator.namegen.first_name">
<code class="sig-prename descclassname">evennia.contrib.utils.name_generator.namegen.</code><code class="sig-name descname">first_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">num</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">gender</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">return_list</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/utils/name_generator/namegen.html#first_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.utils.name_generator.namegen.first_name" title="Permalink to this definition"></a></dt>
<dd><p>Generate first names, also known as personal names.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>num</strong> (<em>int</em>) </p></li>
<li><p><strong>gender</strong> (<em>str</em>) all possible names. Set to “m” for masculine, “f” for feminine, “mf” for androgynous</p></li>
<li><p><strong>return_list</strong> (<em>bool</em>) which returns a string if there is only one value and a list if more.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.utils.name_generator.namegen.last_name">
<code class="sig-prename descclassname">evennia.contrib.utils.name_generator.namegen.</code><code class="sig-name descname">last_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">num</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">return_list</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/utils/name_generator/namegen.html#last_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.utils.name_generator.namegen.last_name" title="Permalink to this definition"></a></dt>
<dd><p>Generate family names, also known as surnames or last names.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>num</strong> (<em>int</em>) </p></li>
<li><p><strong>return_list</strong> (<em>bool</em>) which returns a string if there is only one value and a list if more.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.utils.name_generator.namegen.full_name">
<code class="sig-prename descclassname">evennia.contrib.utils.name_generator.namegen.</code><code class="sig-name descname">full_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">num</span><span class="o">=</span><span class="default_value">1</span></em>, <em class="sig-param"><span class="n">parts</span><span class="o">=</span><span class="default_value">2</span></em>, <em class="sig-param"><span class="n">gender</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">return_list</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">surname_first</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/utils/name_generator/namegen.html#full_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.utils.name_generator.namegen.full_name" title="Permalink to this definition"></a></dt>
<dd><p>Generate complete names with a personal name, family name, and optionally middle names.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>num</strong> (<em>int</em>) </p></li>
<li><p><strong>parts</strong> (<em>int</em>) first and last.</p></li>
<li><p><strong>gender</strong> (<em>str</em>) all possible names. Set to “m” for masculine, “f” for feminine, “mf” for androgynous</p></li>
<li><p><strong>return_list</strong> (<em>bool</em>) which returns a string if there is only one value and a list if more.</p></li>
<li><p><strong>surname_first</strong> (<em>bool</em>) placed at the beginning of the name instead of the end.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</section>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<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.contrib.utils.name_generator.tests.html" title="evennia.contrib.utils.name_generator.tests"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.utils.name_generator.html" title="evennia.contrib.utils.name_generator"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</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.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.utils.html" >evennia.contrib.utils</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.utils.name_generator.html" >evennia.contrib.utils.name_generator</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.utils.name_generator.namegen</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>