Primary Authors
@wesleykendall (Wes Kendall)
Python argument design patterns in a composable interface.
python-args, inspired by attrs, removes the boilerplate of processing arguments to functions and methods.
Decorating your functions with python-args decorators like arg.validators can make your code more composable, more readable, and easier to test. Along with this, functions decorated with python-args can be used to by other tools and frameworks to build more expressive interfaces. The django-args and django-action-framework libraries are two examples.
The core python-args decorators are as follows:
@arg.validators(*validation_funcs): Runs validation functions that can take the same named arguments as the decorated function. When decorating a function with arg.validators, you not only de-couple your function from argument validation logic, but python-args will allow other interfaces to only run the validators of your function.
@arg.defaults(**arg_default_funcs): Sets arguments to default values. The default functions can similarly take the same named parameters of the decorated function.
@arg.parametrize(**parametrize_funcs): Runs a function multiple times for a particular input.
@arg.contexts(*context_funcs): Enters context managers before a function. Context managers can take the same named parameters as the decorated function.
View the docs here for a tutorial and more examples of how python-args can be used in practice.
Install python-args with:
pip3 install python-args
For information on setting up python-args for development and contributing changes, view CONTRIBUTING.rst.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Details for the file python-args-1.0.2.tar.gz
.
Algorithm | Hash digest | |
---|---|---|
SHA256 | 414ff6f74f42fdfbc279587b8394f89331a6d9db22c890e3fb8be4dc45e8ff49 |
|
MD5 | 11d9fa04480896341b09501fb6f0ee5c |
|
BLAKE2b-256 | 7715a6cc05ff70629d4eba5d7b3eed1486508c44ab6e5ac7677f4d132a662919 |
Details for the file python_args-1.0.2-py3-none-any.whl
.
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe96c87aa9622a33d058821a9cd96fc61489bdad743cfcc0b729e1db951f9698 |
|
MD5 | d83193733b311a43f57ec059cd1972dc |
|
BLAKE2b-256 | 3655f7e6042c6074401786d6d035ab2a52221753bdf1a9389e1936f9adf35cdd |