Skip to main content

Keyword-only argument support for Python 2 as a decorator. Python 3 compatible.

Project description

build code quality code health coverage pypi github license: MIT

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


Download files

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

Source Distribution

kwonly-args-1.0.1.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

kwonly_args-1.0.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file kwonly-args-1.0.1.tar.gz.

File metadata

File hashes

Hashes for kwonly-args-1.0.1.tar.gz
Algorithm Hash digest
SHA256 61c0b92f44fb8168315c12b2e1f26e573139363eae6b87bb1534cb2ed373bd7b
MD5 9192a3ae0ee8a3b802fd18d4316d9d16
BLAKE2b-256 80f32784d095f2572ff5717f5bf215196b8ce61ee9659309832591539b15f580

See more details on using hashes here.

File details

Details for the file kwonly_args-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for kwonly_args-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a9b5a4e9841c6995a33326f1bf86f343eae4f32adbc61cb9b480fbad74f838c4
MD5 64ef1411ea307ac92ed1d9b12947ee10
BLAKE2b-256 7797067b275632f28f1cb431f1980a41c3dceaf1988abe514c68b8f780be0206

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