Automatically generate a simple CLI.
Project description
FunCLI
Automatically generate a simple CLI.
Installation
pip install funcli
Basic Usage
def main(*args: int):
print("Sum:", sum(args))
if __name__ == '__main__':
import funcli
funcli.main()
# $ python sum.py 1 2 3
# Sum: 6
Reference
funcli.main(spec = None)
Sugar. spec
defaults to the main
function from the caller's scope.
Calls funcli.run
on spec
, and calls sys.exit
with the return value.
funcli.run(spec, args = None, converters = None)
spec
is either a callable, a sequence of callables, or a dict mapping strings to nestedspecs
args
default tosys.argv[1:]
converters
is a mapping from types (or whatever you want to use as annotations) to a function that parses a command line argument
Given functions foo
, bar
, baz
, here are some sample invocations:
funcli.run(foo, ['arg0']) # Calls foo('arg0')
funcli.run({ foo, bar }, ['bar', 'arg0']) # Calls bar('arg0')
funcli.run({ 'beep': foo, 'bloop': [bar, baz] }, ['beep', 'arg0']) # Calls foo('arg0')
funcli.run({ 'beep': foo, 'bloop': [bar, baz] }, ['bloop', 'bar', 'arg0']) # Calls bar('arg0')
Converters
Built-in converters handle int
, float
, bool
, and pathlib.Path
. Everything else is kept as a str
.
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
funcli-0.1.2.tar.gz
(3.3 kB
view hashes)