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.
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe96c87aa9622a33d058821a9cd96fc61489bdad743cfcc0b729e1db951f9698 |
|
MD5 | d83193733b311a43f57ec059cd1972dc |
|
BLAKE2b-256 | 3655f7e6042c6074401786d6d035ab2a52221753bdf1a9389e1936f9adf35cdd |