Keyword-only argument support for Python 2 as a decorator. Python 3 compatible.
Project description
This library emulates the python3 keyword-only arguments under python2. The resulting code is python3 compatible.
Usage
Installation
pip install kwonly-args
Alternatively you can download the zipped library from https://pypi.python.org/pypi/kwonly-args
Code
With this library you can turn some or all of the default arguments of your function into keyword-only arguments.
Decorate your function with kwonly_args.first_kwonly_arg and select one of the default arguments of your function with the name parameter of the decorator. The selected argument along with all default arguments on its right side will be treated as keyword-only arguments.
All keyword-only arguments have a default value and they aren’t required args by default. You can make a keyword-only argument required by using kwonly_args.KWONLY_REQUIRED as its default value.
Your new-born keyword-only args are no longer treated as positional arguments and varargs still work if your function has *args or something like that.
from kwonly_args import first_kwonly_arg, KWONLY_REQUIRED
# This turns default1 and default2 into keyword-only arguments.
# They are no longer handled as positional arguments.
@first_kwonly_arg('default1')
def func(arg0, arg1, default0='d0', default1='d1', default2='d2', *args):
print('arg0={} arg1={} default0={} default1={} default2={} args={}'.format(
arg0, arg1, default0, default1, default2, args))
func(0, 1, 2, 3, 4)
# Output:
# arg0=0 arg1=1 default0=2 default1=d1 default=d2 args=(3, 4)
# The default1 and default2 args can be passed only as keyword arguments:
func(0, 1, 2, 3, 4, default1='kwonly_param')
# Output:
# arg0=0 arg1=1 default0=2 default1=kwonly_param default=d2 args=(3, 4)
# In this example all three args are keyword-only args and default1 is required.
@first_kwonly_arg('default0')
def func2(default0='d0', default1=KWONLY_REQUIRED, default2='d2'):
...
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 kwonly-args-1.0.1.tar.gz
.
File metadata
- Download URL: kwonly-args-1.0.1.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61c0b92f44fb8168315c12b2e1f26e573139363eae6b87bb1534cb2ed373bd7b |
|
MD5 | 9192a3ae0ee8a3b802fd18d4316d9d16 |
|
BLAKE2b-256 | 80f32784d095f2572ff5717f5bf215196b8ce61ee9659309832591539b15f580 |
File details
Details for the file kwonly_args-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: kwonly_args-1.0.1-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9b5a4e9841c6995a33326f1bf86f343eae4f32adbc61cb9b480fbad74f838c4 |
|
MD5 | 64ef1411ea307ac92ed1d9b12947ee10 |
|
BLAKE2b-256 | 7797067b275632f28f1cb431f1980a41c3dceaf1988abe514c68b8f780be0206 |