doing implements hierarchical command lines
Project description
doing
Hierarchical command lines in python.
doing enables the simple creation of simple hierarchical command lines in Python programs.
It was originally designed to make it easy to create small Python tools that took the place of bash scripts in system maintenance, so the library assumes that packages and modules with names that do not start with an underscore are either commands or containers of sub-commands.
Contents
[TOC]
This is what you do
If the doing distribution is uncompressed to a directory, you’ll find a sample command-line program n the Python executable package called… sample.
This is the source code for sample/__main__.py:
#!/usr/bin/env python3 import doing import sample if __name__ == '__main__': doing.do_main(sample)
And this is what doing enables:
$ python -m sample sample v1.0.0rc1 a sample hierarchical command line created with the doing package sample greet ... greet in several languages sample version display the version
Issuing a sub-command:
$ python -m sample version version 1.0.0rc1
As sub-command with sub-sub-commands:
$ python -m sample greet sample.greet greet in several languages sample greet english greet in English sample greet spanish greet in Spanish
Finally:
$ python -m sample greet english Hello! $ python -m sample greet spanish Hola!
Adding an executable script called do, with contents like those of __main__.py will let you do:
$ ./do greet english Hello! $ ./do greet spanish Hola!
Implementing the doing command line
doing assumes that all packages and modules are potential commands or sub-commands. The description of the command is taken from the modules doc-comment (in mymodule.py or mypackage/__init__.py.
To enable doing for a top-level package, either provide a __main__.py or a do (or any other script name) as described in the introduction.
For modules and packages that execute some action, write a def do(): method in the module or in the packages __init__.py.
This is the contents of sample/greet/spanish.py:
""" greet in Spanish """ def do(): print('Hola!')
If doing finds that a command has modules implementing sub-commands, it will indicate so on the command help with an ellipsis:
sample greet ... greet in several languages
end
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 Distributions
Built Distribution
File details
Details for the file doing-1.0.0.zip
.
File metadata
- Download URL: doing-1.0.0.zip
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf797a73980ebd1a0f865cfe77cad8655a059ecc0901d6ef53b7b58e295bc465 |
|
MD5 | 329d29006af6ca65ad4dc5a0a482db5a |
|
BLAKE2b-256 | f48e658d3ca2da179316bf8d600d483286e63bad0ba292d79109cd64b71135f9 |
File details
Details for the file doing-1.0.0.tar.gz
.
File metadata
- Download URL: doing-1.0.0.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9345bd365f9069575b32c652a105f02c38f7b9915e897815e027deff0d6492b9 |
|
MD5 | 92009603b6bb8673df86303303dc1baf |
|
BLAKE2b-256 | d115b6e479dcce6f7c085cf6edc27b711877eb01deb04f5cd195e514c91410a4 |
File details
Details for the file doing-1.0.0-py2.py3-none-any.whl
.
File metadata
- Download URL: doing-1.0.0-py2.py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b481e88ffe921110f1640f69c0a6b3a7559c5076c440d62281d84913b188fcc |
|
MD5 | 02b4acc169735902b5cad256da345353 |
|
BLAKE2b-256 | 6f7ae6ed64e4241281ac700eae3351f9095a59b7e9c1c24773921a8746b720e7 |