aboutsummaryrefslogtreecommitdiffstats
path: root/main/output/pydis_core.utils.function.html
diff options
context:
space:
mode:
authorGravatar ChrisLovering <[email protected]>2024-01-30 21:52:45 +0000
committerGravatar ChrisLovering <[email protected]>2024-01-30 21:52:45 +0000
commit84a7124e62f211a51acb1e698628a98ce8141671 (patch)
treebb8bea7c74d873a021565491b663cd58fa0622d2 /main/output/pydis_core.utils.function.html
parentDeploying to docs from @ python-discord/bot-core@c7b614025e9c3faf3b16bb019f28... (diff)
Deploying to docs from @ python-discord/bot-core@07f517225fc59157233f74edb136ee39046fda00 🚀
Diffstat (limited to 'main/output/pydis_core.utils.function.html')
-rw-r--r--main/output/pydis_core.utils.function.html83
1 files changed, 79 insertions, 4 deletions
diff --git a/main/output/pydis_core.utils.function.html b/main/output/pydis_core.utils.function.html
index 1bd813ad..806647fc 100644
--- a/main/output/pydis_core.utils.function.html
+++ b/main/output/pydis_core.utils.function.html
@@ -11,8 +11,8 @@
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=135e06be" />
<link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -174,6 +174,7 @@
<li class="toctree-l3"><a class="reference internal" href="pydis_core.utils.error_handling.html">error_handling</a></li>
<li class="toctree-l3 current current-page"><a class="current reference internal" href="#">function</a></li>
<li class="toctree-l3"><a class="reference internal" href="pydis_core.utils.interactions.html">interactions</a></li>
+<li class="toctree-l3"><a class="reference internal" href="pydis_core.utils.lock.html">lock</a></li>
<li class="toctree-l3"><a class="reference internal" href="pydis_core.utils.logging.html">logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="pydis_core.utils.members.html">members</a></li>
<li class="toctree-l3"><a class="reference internal" href="pydis_core.utils.messages.html">messages</a></li>
@@ -359,6 +360,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v10.7.0/output/pydis_core.utils.function.html">v10.7.0</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v10.6.0/output/pydis_core.utils.function.html">v10.6.0</a>
</li>
@@ -450,14 +455,14 @@
<p>Utils for manipulating functions.</p>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.function.GlobalNameConflictError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GlobalNameConflictError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/c7b614025e9c3faf3b16bb019f28979e7ce74b26/pydis_core/utils/function.py#L18-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.GlobalNameConflictError" title="Link to this definition">#</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GlobalNameConflictError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/07f517225fc59157233f74edb136ee39046fda00/pydis_core/utils/function.py#L31-L33"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.GlobalNameConflictError" title="Link to this definition">#</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a></p>
<p>Raised on a conflict between the globals used to resolve annotations of a wrapped function and its wrapper.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.function.command_wraps">
-<span class="sig-name descname"><span class="pre">command_wraps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">assigned</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__module__',</span> <span class="pre">'__name__',</span> <span class="pre">'__qualname__',</span> <span class="pre">'__doc__',</span> <span class="pre">'__annotations__')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">updated</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__dict__',)</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignored_conflict_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">frozenset({})</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/c7b614025e9c3faf3b16bb019f28979e7ce74b26/pydis_core/utils/function.py#L81-L112"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.command_wraps" title="Link to this definition">#</a></dt>
+<span class="sig-name descname"><span class="pre">command_wraps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">assigned</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__module__',</span> <span class="pre">'__name__',</span> <span class="pre">'__qualname__',</span> <span class="pre">'__doc__',</span> <span class="pre">'__annotations__')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">updated</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__dict__',)</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignored_conflict_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">frozenset({})</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/07f517225fc59157233f74edb136ee39046fda00/pydis_core/utils/function.py#L172-L203"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.command_wraps" title="Link to this definition">#</a></dt>
<dd><p>Update the decorated function to look like <code class="docutils literal notranslate"><span class="pre">wrapped</span></code>, and update globals for discord.py forwardref evaluation.</p>
<p>See <a class="reference internal" href="#pydis_core.utils.function.update_wrapper_globals" title="pydis_core.utils.function.update_wrapper_globals"><code class="xref py py-func docutils literal notranslate"><span class="pre">update_wrapper_globals()</span></code></a> for more details on how the globals are updated.</p>
<dl class="field-list simple">
@@ -480,8 +485,75 @@ with the wrapper replaced with the function <a class="reference internal" href="
</dd></dl>
<dl class="py function">
+<dt class="sig sig-object py" id="pydis_core.utils.function.get_arg_value">
+<span class="sig-name descname"><span class="pre">get_arg_value</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name_or_pos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">arguments</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/07f517225fc59157233f74edb136ee39046fda00/pydis_core/utils/function.py#L35-L65"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_arg_value" title="Link to this definition">#</a></dt>
+<dd><p>Return a value from <cite>arguments</cite> based on a name or position.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>arguments</strong> (<span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.OrderedDict" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">OrderedDict</span></code></a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></a>]</span>) – An ordered mapping of parameter names to argument values.</p>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p><span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></a></span></p>
+</dd>
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>Value from <cite>arguments</cite> based on a name or position.</p>
+</dd>
+<dt class="field-even">Raises<span class="colon">:</span></dt>
+<dd class="field-even"><ul class="simple">
+<li><p><a class="reference external" href="https://docs.python.org/3/library/exceptions.html#TypeError" title="(in Python v3.12)"><strong>TypeError</strong></a> – <cite>name_or_pos</cite> isn’t a str or int.</p></li>
+<li><p><a class="reference external" href="https://docs.python.org/3/library/exceptions.html#ValueError" title="(in Python v3.12)"><strong>ValueError</strong></a> – <cite>name_or_pos</cite> does not match any argument.</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="pydis_core.utils.function.get_arg_value_wrapper">
+<span class="sig-name descname"><span class="pre">get_arg_value_wrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">decorator_func</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name_or_pos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</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 external" href="https://github.com/python-discord/bot-core/blob/07f517225fc59157233f74edb136ee39046fda00/pydis_core/utils/function.py#L67-L91"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_arg_value_wrapper" title="Link to this definition">#</a></dt>
+<dd><p>Call <cite>decorator_func</cite> with the value of the arg at the given name/position.</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>decorator_func</strong> (<span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>[[<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>[[<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.OrderedDict" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">OrderedDict</span></code></a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></a>]], <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></a>]], <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>[[<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>], <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>]]</span>) – A function that must accept a callable as a parameter to which it will pass a mapping of
+parameter names to argument values of the function it’s decorating.</p></li>
+<li><p><strong>name_or_pos</strong> (<span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> | <a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a></span>) – The name/position of the arg to get the value from.</p></li>
+<li><p><strong>func</strong> (<span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Optional</span></code></a>[<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>[[<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></a>], <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></a>]]</span>) – An optional callable which will return a new value given the argument’s value.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p><span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>[[<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>], <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a>]</span></p>
+</dd>
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>The decorator returned by <cite>decorator_func</cite>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
+<dt class="sig sig-object py" id="pydis_core.utils.function.get_bound_args">
+<span class="sig-name descname"><span class="pre">get_bound_args</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</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 external" href="https://github.com/python-discord/bot-core/blob/07f517225fc59157233f74edb136ee39046fda00/pydis_core/utils/function.py#L93-L111"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_bound_args" title="Link to this definition">#</a></dt>
+<dd><p>Bind <cite>args</cite> and <cite>kwargs</cite> to <cite>func</cite> and return a mapping of parameter names to argument values.</p>
+<p>Default parameter values are also set.</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>args</strong> (<span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a></span>) – The arguments to bind to <code class="docutils literal notranslate"><span class="pre">func</span></code></p></li>
+<li><p><strong>kwargs</strong> (<span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></a>]</span>) – The keyword arguments to bind to <code class="docutils literal notranslate"><span class="pre">func</span></code></p></li>
+<li><p><strong>func</strong> (<span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Callable</span></code></a></span>) – The function to bind <code class="docutils literal notranslate"><span class="pre">args</span></code> and <code class="docutils literal notranslate"><span class="pre">kwargs</span></code> to</p></li>
+</ul>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p><span class="sphinx_autodoc_typehints-type"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.OrderedDict" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">OrderedDict</span></code></a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></a>]</span></p>
+</dd>
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>A mapping of parameter names to argument values.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.function.update_wrapper_globals">
-<span class="sig-name descname"><span class="pre">update_wrapper_globals</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapper</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignored_conflict_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">frozenset({})</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/c7b614025e9c3faf3b16bb019f28979e7ce74b26/pydis_core/utils/function.py#L22-L79"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.update_wrapper_globals" title="Link to this definition">#</a></dt>
+<span class="sig-name descname"><span class="pre">update_wrapper_globals</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapper</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignored_conflict_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">frozenset({})</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/07f517225fc59157233f74edb136ee39046fda00/pydis_core/utils/function.py#L113-L170"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.update_wrapper_globals" title="Link to this definition">#</a></dt>
<dd><p>Create a copy of <code class="docutils literal notranslate"><span class="pre">wrapper</span></code>, the copy’s globals are updated with <code class="docutils literal notranslate"><span class="pre">wrapped</span></code>'s globals.</p>
<p>For forwardrefs in command annotations, discord.py uses the <code class="docutils literal notranslate"><span class="pre">__global__</span></code> attribute of the function
to resolve their values. This breaks for decorators that replace the function because they have
@@ -569,6 +641,9 @@ changes won’t be reflected in the new function’s globals.</p>
<li><a class="reference internal" href="#">function</a><ul>
<li><a class="reference internal" href="#pydis_core.utils.function.GlobalNameConflictError"><code class="docutils literal notranslate"><span class="pre">GlobalNameConflictError</span></code></a></li>
<li><a class="reference internal" href="#pydis_core.utils.function.command_wraps"><code class="docutils literal notranslate"><span class="pre">command_wraps()</span></code></a></li>
+<li><a class="reference internal" href="#pydis_core.utils.function.get_arg_value"><code class="docutils literal notranslate"><span class="pre">get_arg_value()</span></code></a></li>
+<li><a class="reference internal" href="#pydis_core.utils.function.get_arg_value_wrapper"><code class="docutils literal notranslate"><span class="pre">get_arg_value_wrapper()</span></code></a></li>
+<li><a class="reference internal" href="#pydis_core.utils.function.get_bound_args"><code class="docutils literal notranslate"><span class="pre">get_bound_args()</span></code></a></li>
<li><a class="reference internal" href="#pydis_core.utils.function.update_wrapper_globals"><code class="docutils literal notranslate"><span class="pre">update_wrapper_globals()</span></code></a></li>
</ul>
</li>