Acclimatise is a Python library and command-line utility for parsing the help output of a command-line tool and then outputting a description of the tool in a more structured format
Project description
Acclimatise
Acclimatise is a Python library and command-line utility for parsing the help output of a command-line tool and then outputting a description of the tool in a more structured format, for example a Common Workflow Language tool definition.
Currently Acclimatise supports both CWL and WDL outputs, but other formats will be considered in the future, especially pull requests to support them.
Example
Lets say you want to create a CWL workflow containing the common Unix wc
(word count)
utility. Running wc --help
returns:
Usage: wc [OPTION]... [FILE]...
or: wc [OPTION]... --files0-from=F
Print newline, word, and byte counts for each FILE, and a total line if
more than one FILE is specified. A word is a non-zero-length sequence of
characters delimited by white space.
With no FILE, or when FILE is -, read standard input.
The options below may be used to select which counts are printed, always in
the following order: newline, word, character, byte, maximum line length.
-c, --bytes print the byte counts
-m, --chars print the character counts
-l, --lines print the newline counts
--files0-from=F read input from the files specified by
NUL-terminated names in file F;
If F is - then read names from standard input
-L, --max-line-length print the maximum display width
-w, --words print the word counts
--help display this help and exit
--version output version information and exit
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/wc>
or available locally via: info '(coreutils) wc invocation'
If you run acclimatise -f wdl wc
, which means "convert the wc command into wdl",
you'll get the following output:
version 1.0
task Wc {
input {
Boolean bytesBytes
Boolean charsChars
Boolean linesLines
String filesFiles0From
Boolean maxMaxLineLength
Boolean wordsWords
String? orOr
}
command <<<
wc \
~{orOr} \
~{true="--bytes" false="" bytesBytes} \
~{true="--chars" false="" charsChars} \
~{true="--lines" false="" linesLines} \
~{if defined(filesFiles0From) then ("--files0-from " + '"' + filesFiles0From + '"') else ""} \
~{true="--max-line-length" false="" maxMaxLineLength} \
~{true="--words" false="" wordsWords}
>>>
}
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
Built Distribution
Hashes for acclimatise-0.0.7-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92076fc4f1c7e7f0388be645e66ba1d825979cf635000b53939ec23afdfc208e |
|
MD5 | 85cce9750e919e7de7aa7b4d6476ef80 |
|
BLAKE2b-256 | 490e4a64429ad9dfea033ac0d2b8e5182bbc0baea4a07fa49ae3a292b386055b |