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.2.3.tar.gz
(7.8 kB
view details)
File details
Details for the file clilabs-1.2.3.tar.gz
.
File metadata
- Download URL: clilabs-1.2.3.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3da40db466924dc000e7aa7843a7f1832fd070d23bb8ed0954dc9363ebe7f768 |
|
MD5 | 2c64d5ff6dee9efb9b69ea752cdbbb5a |
|
BLAKE2b-256 | 5c5f1a9cfdbca4495936a17c1332910f5a12969f08ef0a4ec0579b00fe09d16d |