Skip to main content

aCLImatise 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

For the full documentation, refer to the Github Pages Website.


aCLImatise 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 aCLImatise 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 aclimatise explore wc, which means “parse the wc command and all subcommands”, you’ll end up with the following files in your current directory:

  • wc.cwl

  • wc.wdl

  • wc.yml

These are representations of the command wc in 3 different formats. If you look at wc.wdl, you’ll see that it contains a WDL-compatible tool definition for wc:

version 1.0
task Wc {
  input {
    Boolean bytes
    Boolean chars
    Boolean lines
    String files__from
    Boolean max_line_length
    Boolean words
  }
  command <<<
    wc \
      ~{true="--bytes" false="" bytes} \
      ~{true="--chars" false="" chars} \
      ~{true="--lines" false="" lines} \
      ~{if defined(files__from) then ("--files0-from " +  '"' + files__from + '"') else ""} \
      ~{true="--max-line-length" false="" max_line_length} \
      ~{true="--words" false="" words}
  >>>
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aclimatise-2.0.0.post1.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aclimatise-2.0.0.post1-py3-none-any.whl (67.9 kB view details)

Uploaded Python 3

File details

Details for the file aclimatise-2.0.0.post1.tar.gz.

File metadata

  • Download URL: aclimatise-2.0.0.post1.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for aclimatise-2.0.0.post1.tar.gz
Algorithm Hash digest
SHA256 d17a546825807c8d38929b9b4da79cc482d00066b36bd1fd14ea9d75b30834ab
MD5 75f78aec063eb8fbb2d84c7ef64f2a96
BLAKE2b-256 a103b0a06357fe5e1f0b3b414cc912c86f54b518c2f51738fa6dcb3a57e88882

See more details on using hashes here.

File details

Details for the file aclimatise-2.0.0.post1-py3-none-any.whl.

File metadata

  • Download URL: aclimatise-2.0.0.post1-py3-none-any.whl
  • Upload date:
  • Size: 67.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for aclimatise-2.0.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 9291b65966e41e997fa93e05e35497764a3863e0715c2d0085ff794a33a64343
MD5 520c0796a0f71f592b2421a2a14eac2b
BLAKE2b-256 20facbe70985322c46fb8932e08a7485261406d26044e490b6ecec682d8ce9c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page