Skip to content
forked from moskytw/clime

Convert functions into multi-command program breezily.

License

Notifications You must be signed in to change notification settings

wangperry/clime

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The full version of this documentaion is at clime.mosky.tw.

Clime

Clime lets you convert any module into a multi-command CLI program without any configuration.

The main features:

  1. It works well with zero configuration. Free you from the configuration hell.
  2. Docstring is just config. When you finish the docstring, the config of the aliases and metavars are also finished.
  3. It generates the usage of each command from the functions automatically.

It is a better choice than the heavy optparse or argparse for most of the CLI tasks.

CLI-ize ME!

Let me show you Clime with an example.

Here we have a simple script with a docstring here: :

# file: repeat.py

def repeat(message, times=2, count=False):
    '''It repeats the message.

    options:
        -m=<str>, --message=<str>  The description of this option.
        -t=<int>, --times=<int>
        -c, --count
    '''

    s = message * times
    return len(s) if count else s

After adding this line, :

import clime.now

clime.now <http://clime.mosky.tw/api.html#module-clime.now> describes more about how to customize your program.

... your CLI program is ready! :

$ python repeat.py twice
twicetwice

$ python repeat.py --times=3 thrice
thricethricethrice

And it generates the usage manual: :

$ python repeat.py --help
usage: [-t<int> | --times=<int>] [-c | --count] <message>
   or: repeat [-t<int> | --times=<int>] [-c | --count] <message>

If you have a docstring in your function, it also show up in usage manual with --help. :

$ python repeat.py repeat --help
usage: [-t<int> | --times=<int>] [-c | --count] <message>
   or: repeat [-t<int> | --times=<int>] [-c | --count] <message>

It repeats the message.

options:
    -m=<str>, --message=<str>  The message.
    -t=<int>, --times=<int>
    -c, --count

You can find more examples in the clime/examples.

.Command <http://clime.mosky.tw/api.html#clime.core.Command> describes more about how it works.

Installation

Clime is hosted on two different platforms, PyPI and GitHub.

Install from PyPI

Install Clime from PyPI for a stable version: :

$ sudo pip install clime

If you don't have pip, execute :

$ sudo apt-get install python-pip

to install pip on Debian-base Linux distribution.

Get Clime from GitHub

If you want to follow the latest version of Clime, use :

$ git clone git://github.com/moskytw/clime.git

to clone a Clime repository, or download manually from GitHub.

About

Convert functions into multi-command program breezily.

Resources

License

Stars

Watchers

Forks

Packages

No packages published