Generate options from function.
Project description
Call function directly in cmd line
Features
- Allow user call functions directly in command line.
- Generate help tips automatically.
- Add default called functions if not function was specific.
Notice
- It's better to add argument type for each autocall functions.
- Function with @optfunc_default has @optfunc implicitly.
- Arguments of function with @optfunc_default should be optional or no argument.
- Not support two type of variadic arguments.
TODO
- Beautiful print.
Code example
from optfunc import *
@optfunc
def arg_test_positional_only(pos_only0, pos_only1: int, pos_only2 = 5, pos_only3: int = 6):
"""summary for the function
Args:
pos_only0 (_type_): This is the first positional-only argument.
pos_only1 (int): This is the second positional-only argument.
pos_only2 (int, optional): This is the third positional-only argument. Defaults to 5.
pos_only3 (int, optional): This is the fourth positional-only argument. Defaults to 6.
"""
" Argument test for positional-only arguments. "
print(f'pos_only0: {pos_only0}, pos_only1: {pos_only1}, pos_only2: {pos_only2}, pos_only3: {pos_only3}')
pass
@optfunc
def arg_test_positional_or_keyword(pos_or_kw, pos_or_kw1: int, pos_or_kw2 = 3, pos_or_kw3: int = 4):
" Argument test for positional-or-keyword arguments. "
print(f'pos_or_kw: {pos_or_kw}, pos_or_kw1: {pos_or_kw1}, pos_or_kw2: {pos_or_kw2}, pos_or_kw3: {pos_or_kw3}')
pass
@optfunc
def arg_test_kw_only(*, kw_only0, kw_only1: int, kw_only2 = 9, kw_only3: int = 10):
" Argument test for keyword-only arguments. "
print(f'kw_only0: {kw_only0}, kw_only1: {kw_only1}, kw_only2: {kw_only2}, kw_only3: {kw_only3}')
pass
if __name__ == '__main__':
optfunc_start(globals=globals(), has_abbrev=False, header_doc='This is a test file for the module "autocall".')
Run the code
~/:$ python3 test.py -h
Usage: test.py [command] [<args>|--help]
This is a test file for the module "autocall".
commands:
arg_test_positional_only summary for the function
arg_test_positional_or_keyword Argument test for positional-or-keyword arguments.
arg_test_kw_only Argument test for keyword-only arguments.
~/:$ python3 test.py arg_test_positional_only -h
Usage: test.py arg_test_positional_only [OPTIONS]
summary for the function
Arguments:
+-------------+------+---------+-------------------------------------------------------------+
| Opt | Type | Default | Desc |
+-------------+------+---------+-------------------------------------------------------------+
| --pos_only0 | any | | This is the first positional-only argument. |
| --pos_only1 | int | | This is the second positional-only argument. |
| --pos_only2 | any | 5 | This is the third positional-only argument. Defaults to 5. |
| --pos_only3 | int | 6 | This is the fourth positional-only argument. Defaults to 6. |
+-------------+------+---------+-------------------------------------------------------------+
~/:$ python3 test.py arg_test_positional_only --pos_only0 "good day" --pos_only1 2
pos_only0: good day, pos_only1: 2, pos_only2: 5, pos_only3: 6
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
optfunc2-0.1.tar.gz
(10.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file optfunc2-0.1.tar.gz.
File metadata
- Download URL: optfunc2-0.1.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b22359734df05999aba3852073034fa1c248b991e8217284051b1d3893a7b19
|
|
| MD5 |
55f9b8fe79ab21c0f0837c56adb05a32
|
|
| BLAKE2b-256 |
d71271cb91d2772d49bfcedbd42c9ba104c1c0830bea4ae1aefbf11fe263bec5
|
File details
Details for the file optfunc2-0.1-py3-none-any.whl.
File metadata
- Download URL: optfunc2-0.1-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e3c54ef190beaf814f63cdc5700feeec6f41cb94b8585e2ff2ad594509a8d52
|
|
| MD5 |
c14ac3c97187bd40320f4760dc8e89fd
|
|
| BLAKE2b-256 |
b9f1f5e6ff3d1d8dd13ef9fbdf7cffdc579b6fe43eb71b3143f3b25fa99f428a
|