A decorator that modifies the arguments and keyword arguments of a function before calling it.
Project description
A decorator that modifies the arguments and keyword arguments of a function before calling it.
Tested against Windows / Python 3.11 / Anaconda
pip install argskwargsmodifier
A decorator that modifies the arguments and keyword arguments of a function before calling it.
Args:
f_py (function, optional): Reserved for the function; do not use this argument explicitly.
args_and_function (tuple of tuples): A tuple of tuples where each tuple contains
an argument name and a function to transform the argument. The decorator will apply
the specified function to each argument with a matching name. Each transformation
function takes two arguments: the argument value and a dictionary containing all
keyword arguments and arguments (transformed into kwargs) passed to the decorated function.
Returns:
function: The decorated function.
Example:
from argskwargsmodifier import change_args_kwargs
@change_args_kwargs(
args_and_function=(
("arg1", lambda arg, allkwargs: arg * 2),
("arg2", lambda arg, allkwargs: arg * 3 if arg else None),
("arg3", lambda arg, allkwargs: arg * 5 if allkwargs.get('arg2') else arg * 50 ),
)
)
def example_function(arg1, arg2=None, arg3=None):
print(arg1, arg2, arg3)
pass
# Test the decorated function
example_function(1, arg3=3)
# Output: 2 None 150
example_function(1, 54, arg3=3)
# Output: 2 162 15
The `change_args_kwargs` decorator allows you to modify arguments and keyword arguments based on
the provided `args_and_function` list before invoking the decorated function. Each transformation
function in `args_and_function` receives the argument's value and a dictionary of all keyword
arguments passed to the decorated function, giving you flexibility in argument modification.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file argskwargsmodifier-0.10.tar.gz
.
File metadata
- Download URL: argskwargsmodifier-0.10.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd51b291ab82d2852b132432233a4457039d3259884f52659ad9c25f1e97b031 |
|
MD5 | dd41e905c31b7638bafa3ba4ca9ca033 |
|
BLAKE2b-256 | b38ed3475b6f26fe48d070c80dca44ab5544fc4f95018ad766d27e5c9ed433ad |
File details
Details for the file argskwargsmodifier-0.10-py3-none-any.whl
.
File metadata
- Download URL: argskwargsmodifier-0.10-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64c0c1f0b916e105182d4cf8703f31e432137d74a14513d5fb827565b01edf81 |
|
MD5 | 92cc61af2840419dc5b51ede9ff3508a |
|
BLAKE2b-256 | 5f1de746634b7b8b8876e2bc7118e0d47455068f121ddc13d12fc6ddc0fbd13a |