-

function#

+

function¶

Utils for manipulating functions.

-exception GlobalNameConflictError[source]#
+exception GlobalNameConflictError[source]¶

Bases: Exception

Raised on a conflict between the globals used to resolve annotations of a wrapped function and its wrapper.

-command_wraps(wrapped, assigned=('__module__', '__name__', '__qualname__', '__doc__', '__annotations__'), updated=('__dict__',), *, ignored_conflict_names=frozenset({}))[source]#
+command_wraps(wrapped, assigned=('__module__', '__name__', '__qualname__', '__doc__', '__annotations__'), updated=('__dict__',), *, ignored_conflict_names=frozenset({}))[source]¶

Update the decorated function to look like wrapped, and update globals for discord.py forwardref evaluation.

See update_wrapper_globals() for more details on how the globals are updated.

@@ -425,7 +425,7 @@ with the wrapper replaced with the function
-get_arg_value(name_or_pos, arguments)[source]#
+get_arg_value(name_or_pos, arguments)[source]¶

Return a value from arguments based on a name or position.

Parameters:
@@ -448,7 +448,7 @@ with the wrapper replaced with the function
-get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]#
+get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]¶

Call decorator_func with the value of the arg at the given name/position.

Parameters:
@@ -470,7 +470,7 @@ parameter names to argument values of the function it’s decorating.

-get_bound_args(func, args, kwargs)[source]#
+get_bound_args(func, args, kwargs)[source]¶

Bind args and kwargs to func and return a mapping of parameter names to argument values.

Default parameter values are also set.

@@ -492,7 +492,7 @@ parameter names to argument values of the function it’s decorating.

-update_wrapper_globals(wrapper, wrapped, *, ignored_conflict_names=frozenset({}))[source]#
+update_wrapper_globals(wrapper, wrapped, *, ignored_conflict_names=frozenset({}))[source]¶

Create a copy of wrapper, the copy’s globals are updated with wrapped's globals.

For forwardrefs in command annotations, discord.py uses the __global__ attribute of the function to resolve their values. This breaks for decorators that replace the function because they have @@ -596,7 +596,7 @@ changes won’t be reflected in the new function’s globals.

- + -- cgit v1.2.3