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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|