the python CLI that gets things done.
Project description
clilabs: the python CLI that gets things done.
Sometimes I want to execute a python callback with some args on the command line, but i get frustrated that it always requires to wrap my command in a wrapper of some sort. Clilabs unfrustrates me.
Install:
$ pip install clilabs
Help:
$ clilabs
clilabs automates python callables parametered calls.
Things starting with - will arrive in clilabs.context.
Examples:
clilabs help your.mod:main
clilabs debug your.mod -a --b --something='to see' how it=parses
clilabs your.mod:funcname with your=args
clilabs help clilabs.django
clilabs help django
clilabs clilabs.django:list auth.user
clilabs django:list auth.user # also works
# refer to the root one
clilabs ~django.db.models:somefunc somearg some=kwarg
Demo:
$ clilabs debug ~your.mod:yourfunc -a --b --something='to see' how it=parses
Could not import your.mod
Args: ('how',)
Kwargs: {'it': 'parses'}
Context args: ['a', 'b']
Context kwargs: {'something': 'to see'}
Moar in tutorial.md
Making your own command
Add to your setup.py:
entry_points={
'console_scripts': [
'yourcmd = yourpkg.cli:cli',
],
},
Add in yourpkg/cli.py:
'''Your documentation that shows by default:
yourcmd somefunc ...
'''
import clilabs
def cli(*argv):
argv = list(argv) if argv else ['help', 'yourpkg.cli']
cb = clilabs.modfuncimp(*clilabs.funcexpand(argv[0], 'yourpkg.cli'))
args, kwargs = clilabs.expand(*argv[1:])
return cb(*args, **kwargs)
def main(...):
'''Put your help text, that will show when the
user runs the command without argument.'''
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
clilabs-1.1.10.tar.gz
(10.4 kB
view details)
File details
Details for the file clilabs-1.1.10.tar.gz.
File metadata
- Download URL: clilabs-1.1.10.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b052fe36a3a6871abc458712a1ba97060f5abd411b185c54525f5facbf348c28
|
|
| MD5 |
218adf3d4b088863ca351466b85137ee
|
|
| BLAKE2b-256 |
55871346c05b9e793a5d2d5d147666f52e843f6bada9cd6e1010478324075bea
|