Skip to main content

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

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


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 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

acclimatise-1.2.0.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

acclimatise-1.2.0-py3-none-any.whl (67.9 kB view details)

Uploaded Python 3

File details

Details for the file acclimatise-1.2.0.tar.gz.

File metadata

  • Download URL: acclimatise-1.2.0.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.48.2 CPython/3.8.5

File hashes

Hashes for acclimatise-1.2.0.tar.gz
Algorithm Hash digest
SHA256 178684918b3b12fca929e4eeee5534cc8347dcb7462f4931ffb8bc47e1a5fe6d
MD5 2ff58c34a27f8a0083df3e88400ee52f
BLAKE2b-256 abb0a1acde0c2e347bea4d7adb980a9e8a3f6a83b8883cca16f0646f2db22d39

See more details on using hashes here.

File details

Details for the file acclimatise-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: acclimatise-1.2.0-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.48.2 CPython/3.8.5

File hashes

Hashes for acclimatise-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 658cfade26faa2227caba6bf8b1fe3824e88568ce8969bf049cb7c6693f4a8c8
MD5 7cbad44b17f91f58ce5ee4d01c29e993
BLAKE2b-256 0673ecbdae2bdcbbf5eaa0158681c789d8cca0479b125c808eabed4c02195757

See more details on using hashes here.

Supported by

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