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.
- str type argument must be defined explicitly.
- @cmdline_default is a subset of @cmdline, which means function with @cmdline_default will have @cmdline implicitly.
- Arguments of function with @cmdline_default should be optional or no argument.
TODO
- Support class's function with self as the first argument.
Code example
#!/bin/python3.8
from autocall import *
# The tar @cmdline is used to register the function.
@cmdline
def test1():
print(f'test1()')
pass
@cmdline
@cmdline_default
def test2(arg: int = 0):
print(f'test2({arg})')
pass
@cmdline
def test3(arg1, arg2: str = 'this is a string'):
print(f'test3({arg1}, {arg2})')
@cmdline
def test4(arg1, arg2: int):
'You can add some extra information here.'
print(f'test4({arg1}, {arg2})')
pass
@cmdline_default
def test5(arg1: int = 1, arg2: str = 'good'):
print(f'test5({arg1}, {arg2})')
# main function
parse_and_run()
Run the code
~/autocall/src $ ./test.py --help
Help Tips Provided by Autocall.
option:
--test1
--test2 [arg = 0]
The function will be called directly if not specific.
--test3 arg1 [arg2 = this is a string]
--test4 arg1 arg2
You can add some extra information here.
--test5 [arg1 = 1] [arg2 = good]
The function will be called directly if not specific.
--help [verbose = notverbose]
Give the argument "verbose" instead of "notverbose" to print detail information.
~/autocall/src $ ./test.py --test5 10 'hello'
test5(10, hello)
~/autocall/src $ ./test.py
test2(0)
test5(1, good)
Metadata
Release files for autocall 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| autocall-1.1.1.tar.gz | 6.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| autocall-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.8 kB
Release files / autocall-1.1.1.tar.gz
| Download URL | autocall-1.1.1.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7fe9711e971df4044276fb7cb1915f1d02aaabdff4f9adce3994f6c3cd140771
|
|
BLAKE2b-256 checksum How to use checksums |
aafc4ef2cff8e9ab5d08a796ac6d4dcd6fe77cf10cf2639ad4b0d333a17a0660
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.10.12
|
Release files / autocall-1.1.1-py3-none-any.whl
| Download URL | autocall-1.1.1-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
36d24c1d2cbc7732e7b3e2effcd6c2d2765ab1d25554414961c9f161aa31f724
|
|
BLAKE2b-256 checksum How to use checksums |
c80b057024859ff1e4456a20821125b912cf4af33db4bd150630d0b029a3010f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.10.12
|