Skip to main content

Python argument design patterns in a composable interface.

Project description

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:

  1. @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.

  2. @arg.defaults(**arg_default_funcs): Sets arguments to default values. The default functions can similarly take the same named parameters of the decorated function.

  3. @arg.parametrize(**parametrize_funcs): Runs a function multiple times for a particular input.

  4. @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.

Documentation

View the python-args docs here.

Installation

Install python-args with:

pip3 install python-args

Contributing Guide

For information on setting up python-args for development and contributing changes, view CONTRIBUTING.rst.

Primary Authors

  • @wesleykendall (Wes Kendall)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-args-1.0.2.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

python_args-1.0.2-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file python-args-1.0.2.tar.gz.

File metadata

  • Download URL: python-args-1.0.2.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.8.2 Linux/4.15.0-1067-aws

File hashes

Hashes for python-args-1.0.2.tar.gz
Algorithm Hash digest
SHA256 414ff6f74f42fdfbc279587b8394f89331a6d9db22c890e3fb8be4dc45e8ff49
MD5 11d9fa04480896341b09501fb6f0ee5c
BLAKE2b-256 7715a6cc05ff70629d4eba5d7b3eed1486508c44ab6e5ac7677f4d132a662919

See more details on using hashes here.

File details

Details for the file python_args-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: python_args-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.8.2 Linux/4.15.0-1067-aws

File hashes

Hashes for python_args-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fe96c87aa9622a33d058821a9cd96fc61489bdad743cfcc0b729e1db951f9698
MD5 d83193733b311a43f57ec059cd1972dc
BLAKE2b-256 3655f7e6042c6074401786d6d035ab2a52221753bdf1a9389e1936f9adf35cdd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page