Set defaults for any positional-only parameter
Project description
positional_defaults
Python package to set defaults for any positional-only parameter
This tiny Python package contains a decorator @defaults
which lets you
specify default arguments for any positional-only parameter, no matter where
it appears in the argument list.
Installation
pip install positional_defaults
Usage
Use the @defaults
decorator to set default values for positional-only
parameters (i.e. those before the positional-only indicator /
):
from positional_defaults import defaults
@defaults(start=0)
def myrange(start, stop, /, step=1):
...
# now these are equivalent
myrange(4)
myrange(0, 4)
myrange(0, 4, 1)
This works on methods as well:
class A:
@defaults(start=0)
def myrange(self, start, stop, /, step=1):
...
Multiple defaults can be set, which are filled in the order in which they are specified:
@defaults(forename='Alice', greeting='Welcome', prefix='Mrs')
def greet(greeting, prefix, forename, surname, /, suffix='Esq'):
...
# these are now equivalent
greet('Smith')
greet('Alice', 'Smith')
greet('Welcome', 'Alice', 'Smith')
greet('Welcome', 'Mrs', 'Alice', 'Smith')
greet('Welcome', 'Mrs', 'Alice', 'Smith', 'Esq')
Signatures
Left-defaulted functions come with the correct signature:
>>> from inspect import signature
>>> signature(myrange)
<Signature (start=0, stop, /, step=1)>
>>> signature(greet)
<Signature (greeting='Welcome', prefix='Mrs', forename='Alice', surname, /, suffix='Esq')>
These show up correctly in the usual places such as help()
:
>>> help(interval)
Help on function myrange:
myrange(start=0, stop, /, step=1)
>>> help(greet)
Help on function greet:
greet(greeting='Welcome', prefix='Mrs', forename='Alice', surname, /, suffix='Esq')
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 Distributions
Hashes for positional_defaults-2023.4.18.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11551767497f9b08a76427dc1545825513e749858a703b12a7ec4ec1d2d877e4 |
|
MD5 | 20845c024f1f23a70b3e8c8c768c3026 |
|
BLAKE2b-256 | 9b31be64d856c961dd8136b2301fede4d992cd60cac983a0a08743662d2f278e |
Hashes for positional_defaults-2023.4.18-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9ea5343ff58649b72c6d710c7e725d253eaab901ce25be38e9987e9221eb249 |
|
MD5 | 46f5b631f9e53539559657130f86da58 |
|
BLAKE2b-256 | 74ee4d4be0d0374eedfa18793bdb30c0b82885305b803a307dfbffba22adc62c |
Hashes for positional_defaults-2023.4.18-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9759dcc490e0f182a22455706cd15b3fb92a17d653cc0092507a33a4f1bbcaf2 |
|
MD5 | f02c13075eaa66c12dc6ac4e57a4ca3e |
|
BLAKE2b-256 | aa9209e219c68a50407ff6fe0c395ee94639ab79824aeae56eb722b68adbd2f9 |
Hashes for positional_defaults-2023.4.18-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcefe0955fb113cf30404de7a0dda175d24c8ab5f288311e2f7e75c1526c72f3 |
|
MD5 | 08c80919f902e062d8477a4e05c03093 |
|
BLAKE2b-256 | 74c04ed12fef206d64da356943740e850be4d0d428b58a16efa2136f5b3867fc |
Hashes for positional_defaults-2023.4.18-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3ac7c502acfb9327f4ba113b2f2ee3e6d1e5f292d9d2dce8f9b9657c2686755 |
|
MD5 | e35e7f1561bb83c01d7dd53c785dba71 |
|
BLAKE2b-256 | 84f95b97d232acc196dda95c0abb3bb92f94726e7efccce684abada9c5c5e6f1 |
Hashes for positional_defaults-2023.4.18-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aad12ced45e87c1526b8e905b9023222f403ba6f213789dd197762960448daa |
|
MD5 | d4007fc4b110a033fea333e40a4cc98d |
|
BLAKE2b-256 | fd6fb6f17c44d67ce95a57411dd57187fad0390d3cb4ffc90b8e6161d2e9aca3 |
Hashes for positional_defaults-2023.4.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 443573a3379fc9ce9e26c5e64479ec44852813fe8f02f54950c5f29016592fd3 |
|
MD5 | a8c339e654e36e10a66a64758cd2d6d8 |
|
BLAKE2b-256 | 60825b809a2845fbff43f891067adb65d7cd94e793c9d8d193ea7b0292a78d3e |
Hashes for positional_defaults-2023.4.18-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6425aba5fd5d7d7f31d0b2fa98d6f355b57de8d79ab116df00df340caa15bcbf |
|
MD5 | 5a2dc156c7be7da843e6b37f95a0c1ea |
|
BLAKE2b-256 | b0cf98fca06741485944cc5b9e86bd1374960da870e41c61b3178722842f9dab |
Hashes for positional_defaults-2023.4.18-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54632fa02b5052a8e1d12cf3ab7eacf1aaa079dfec179010a63bc00bbe8d48aa |
|
MD5 | bbbb939cc523306bad9b00707d81d007 |
|
BLAKE2b-256 | 45d479c68189bed452cd0c8f100a0c988d4ea150e8c0d41db33844ee3de22e59 |
Hashes for positional_defaults-2023.4.18-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7992f1e8f281c9ba54b520ad49bf84ead73a1d8615bbd928a9c1a2c8e3bfe5fb |
|
MD5 | df3304503c261d37e46016da48e56c90 |
|
BLAKE2b-256 | f5230404623dc7be754648c98b0ae486bd9b102663780013d3536078662ead89 |
Hashes for positional_defaults-2023.4.18-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c2bb73401a3b82e5356b6d7bb602dbc562a63ceda7efc6cef215b3650d6efbc |
|
MD5 | bcf5ebe8e7baaadbc0d5835b8199be81 |
|
BLAKE2b-256 | 80f092f19d1c367c4ea3543748314a2a79ca1619cc80a1fa0b211e82de01eb29 |
Hashes for positional_defaults-2023.4.18-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06303234915eed27642cfa9df712abed219c3866dd817485eac0347adcac11af |
|
MD5 | 7014916312c0caa8c96514e5006ea0eb |
|
BLAKE2b-256 | f6169bb5548ca957ac2a5d9f069f079f9d63312009268477cb8af54ea0ed68c6 |
Hashes for positional_defaults-2023.4.18-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 491200d992eb51165f91e457879ae4452d2075506f85bd8d1c7a14ee58bd6669 |
|
MD5 | eed99d03818c97608fdfca96fc0af9af |
|
BLAKE2b-256 | 3199826e36fd4b66ed913cc45f9ec2f4c7d21af343e8277d40f97bd39688d5c1 |
Hashes for positional_defaults-2023.4.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6acd411a7fde8b5776004e894ea7f0562ba8eca19a58ffd1785568d7ef9a3756 |
|
MD5 | 9083ce2a78c5b0b764bdaf2a383a1688 |
|
BLAKE2b-256 | b38e92c15391cccf20d90fe9969416a887560ce706af773538897366afdb0fb7 |
Hashes for positional_defaults-2023.4.18-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43d9a607d98cbbf8be1c8623e0b65f3c65260aa11fbf8055776d8427ec6a6458 |
|
MD5 | 554b3e06453c448683ebab2226a1b41d |
|
BLAKE2b-256 | 55cd3018d1ea094494ba823f7871fc222bf10da9c80aa8e800d1a081680357eb |
Hashes for positional_defaults-2023.4.18-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97392c9f4747182b7ad3bf7909af2dcf714a5dd34b354be2a1c569fd2f8edb42 |
|
MD5 | 80fb38c301ebb42200fad27caf63b7db |
|
BLAKE2b-256 | 317a6ad55ea5f6baa5935c8d625861db90e610a54eb030edb22375449122065d |
Hashes for positional_defaults-2023.4.18-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62cac0311533721a829c607d92774af056b046c9030eb5525d6fb68533ecd466 |
|
MD5 | 3f8a66e5dbd266df7623da80aeb39dd2 |
|
BLAKE2b-256 | 15a6c1d0d498272b97a71ba6e908ff7be5b7796dc29123e1608435ce7661d67c |
Hashes for positional_defaults-2023.4.18-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 305951afe8a6c853ad2d7c4f9d7f926fbb65be5b833612d03aba844631751071 |
|
MD5 | 666edb5b64c265d64c337b00f037cbb4 |
|
BLAKE2b-256 | 2f1ed575a85d7d2727a129a72c9285eeff6fdd7bdf2067845f505a7d6de4ca3b |
Hashes for positional_defaults-2023.4.18-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c0d1c2fd270f24fcefca9069bd00d7dcafec967d63faf5914f2a26e765128ae |
|
MD5 | ae34005230133e715c3b660098a3b3e7 |
|
BLAKE2b-256 | 62200de78b5612f05198896542865f5933041e2f3a1b5ed9485e1fc8451239d5 |
Hashes for positional_defaults-2023.4.18-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ba5100308e55673e74b1f8bdfaf720e13dbb6ca4bf4312d59744e222e1a7b82 |
|
MD5 | 0edaf9cc189a615389279217b13ee94d |
|
BLAKE2b-256 | 9f59172ee341f90c7202013d97ccc0876e7146aab5e69ed551195e069d708f7a |
Hashes for positional_defaults-2023.4.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddd1cbe40cc901ef5d1b7626a7361eaaa76a0128d774acecc8a12278f344b1c5 |
|
MD5 | dabf50a3bff7c3e17c89bea60520c3f6 |
|
BLAKE2b-256 | 914c5365ef6c295962201e249a8b148cb9b008c183eb1a7d808cde4b543e2c9b |
Hashes for positional_defaults-2023.4.18-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91a739b29c4af62936d37cb430061c1594ec4cc866c0f8b324d20074ae339c17 |
|
MD5 | b18248f193e877d6982ed4b791b61ee5 |
|
BLAKE2b-256 | ebe24c7103d8c80e64c5674ff6d1f288234b7bc65bf2d1374ff838946b660dd7 |
Hashes for positional_defaults-2023.4.18-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5de10c51249fdd5d8c0698c09a2a2d0f6f87ab9d1c2a149043b5b195d87da7c0 |
|
MD5 | 47d1fcc302fa6215d031a643a4582f68 |
|
BLAKE2b-256 | 301e209d8be8608b530d985c4316d2eb50af1c8b97f41cb3245a3fdf3296acf3 |
Hashes for positional_defaults-2023.4.18-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8b2d42017a855acc0b3adb7b89d02be0610d5ffe213df2f5c259b9f260c0fc9 |
|
MD5 | 2f6961793669fd70e5846e216991a416 |
|
BLAKE2b-256 | 87c25edf79f86aba887198b99d4226823341435c54d6f03a3f64f17890f2f10a |
Hashes for positional_defaults-2023.4.18-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac40c310dc564b27b63851d72edfe5092b501957eb27c07bd5f923112c6d96d9 |
|
MD5 | e1ad341efedfd196465048c862290759 |
|
BLAKE2b-256 | 5ea70f8c9aa14eb6ec4e88c6acfe69d4b1957494fdc2caf8d9988732fbdebe2b |
Hashes for positional_defaults-2023.4.18-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec60dd922fe6da7da204ed59d404f7c7239c17d28e29ecbadc0a9bde5c4cf59f |
|
MD5 | 637825eba1ce41928e0125157e087079 |
|
BLAKE2b-256 | a0c31cb3d4e4e472e63ed4f3238070ea34ff28f30c7f9983b9c43f0ad8d80009 |
Hashes for positional_defaults-2023.4.18-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86143f0d43207d511e230aea225a7846cfde9e7f6c5511e86949e74bb156afbd |
|
MD5 | b06b587edfc9b002f38ea7a20236c4de |
|
BLAKE2b-256 | 495ace725d6bfcb5ae9c6b0fa7d94c6fb822711f760425ece03cad5d9e0a6cc4 |
Hashes for positional_defaults-2023.4.18-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a13079190ef4d8418913370a2402fa29d19c274f592dbffadbdfbe607d9ffec |
|
MD5 | d354f2288b254b96374a8968ea8aa6fb |
|
BLAKE2b-256 | 2ca77f0b3da4233078ebc0d567d477f4daf75a19f567aa35af651cbeabb4248d |
Hashes for positional_defaults-2023.4.18-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70f8fed0686e8562d00eb7c4c229036e8f2d5663259a58ddd835bf656d1a2112 |
|
MD5 | 0104e5fcefea81e5911ac1c23931b57a |
|
BLAKE2b-256 | 2f1a27f50d1ea576435ea961eb3174ea33b9d4e4c317afb631df908c042dea8b |
Hashes for positional_defaults-2023.4.18-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d73770072fc8c5a42034257bb6b9facbfbfdacf0de01e606b470790d62a8afd6 |
|
MD5 | f3ddb2c5417e20431f715160b9101f18 |
|
BLAKE2b-256 | 9086f9ec71b396bbacd24fbbf3b4d3cc1dbbb30b49332db6bb9a9c1ade2a0396 |