moke is not like make
Project description
Moke transforms a Python module into a command line script. Every function can become a sub-command, with options inferred from the argument list and the optional doc string.
A command line application that greets exactly two persons. (put the following into a file called mokefile.py:
from moke import task, log @task def greet(who, shout=False, times=1): """ Sends greetings from moke. - who(str2) two persons to greet - shout(switch) triggers CAPS """ greetings = ("Hello %s and %s!" % (who[0], who[1])) * times if shout: greetings = greetings.upper() log("greeted: %s and %s" % (who[0], who[1]), INFO) if __name__ == "__main__": task()
Execute the mokefile by calling moke:
moke greet --shout -times 2 Mary Kate
this returns:
2011-09-30 14:12:52,815 moke (version 1.0.0) 2011-09-30 14:12:52,815 cwd: "/home/.../moke/test/scripts" 2011-09-30 14:12:52,815 mokefile: "/home/.../moke/test/scripts/mokefile.py" 2011-09-30 14:12:52,815 task: greet 2011-09-30 14:12:52,815 params: ('who', ['Mary', 'Kate']) ('shout', True) ('times', 2) HELLO MARY AND KATE! HELLO MARY AND KATE!
If you forgot what your mokefile.py does, just ask for help:
moke --help usage: mokefile.py [-h] [-ls LS] [-ll {info,warn,error}] [-lf {tab}] {greet} ... positional arguments: {greet} greet Sends greetings from moke. optional arguments: -h, --help show this help message and exit -ls LS (file_a) [default: <stderr>] logging stream -ll {info,warn,error} (str) [default: info] logging level -lf {tab} (str) [default: tab] logging format
Sub-command specific help is also generated:
moke greet --help usage: mokefile.py greet [-h] [--shout] [-times TIMES] who who positional arguments: who (str) two persons to greet optional arguments: -h, --help show this help message and exit --shout (switch) triggers CAPS -times TIMES (int) [default: 1]
Now it’s time to start your own Mokefile:
moke new [filename]
Which creates a skeleton file for you:
$ moke new Mokefile moke: *** Created /...path.../Mokefile moke: *** Running 'moke Mokefile --help'
Have fun!
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
moke-1.2.5.tar.gz
(209.6 kB
view details)
File details
Details for the file moke-1.2.5.tar.gz
.
File metadata
- Download URL: moke-1.2.5.tar.gz
- Upload date:
- Size: 209.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f27a9c5b014b570cdaf5fa62577cb2c96d6da325fabd43696d29cb46551f8b8 |
|
MD5 | 227632a2095e06f3eb429ff613ab180b |
|
BLAKE2b-256 | eefb76cd9d63887c4e9de3192305fc67074def918a9b88e1da1a48c44f73498f |