Tooling — sdx-common 0.7.1 documentation

# Tooling

Transformers can be called from the command line for testing or remediation purposes.

Under these conditions, certain parameters need to be supplied by the user. To facilitate that, there are some helper functions you can use to parse the command line for those values.

## Boilerplate

Here is an example of code which turns a Transformer module into a CLI utility:

    #!/usr/bin/env python
    #  coding: UTF-8

    from collections import namedtuple
    import itertools
    import json
    import sys

    import sdx.common.cli

    __doc__ = """Module documentation"""

    class MyTransformer(Transformer):

        <class definition goes here>

    def main(args):
        Settings = namedtuple(
            "Settings",
            [
                "FTP_HOST",
                "SDX_FTP_IMAGE_PATH",
            ]
        )

        reply = json.load(args.input)
        tfr = MyTransformer(reply, seq_nr=args.seq_nr)
        zipfile = tfr.pack(
            settings=Settings("", ""),
            img_seq=itertools.count(args.img_nr),
            tmp=args.work
        )
        args.output.write(zipfile.read())

    def run():
        parser = sdx.common.cli.transformer_cli(__doc__)
        args = parser.parse_args()
        rv = main(args)
        sys.exit(rv)

    if __name__ == "__main__":
        run()

## Command Line Interface

Defines a common CLI for SDX tooling.

Operation via CLI requires a set of common options.

    usage: SDX [-h] [--version] [-v] [--work WORK] [--img_nr IMG_NR]
               [--seq_nr SEQ_NR]
               [input] [output]

### Positional Arguments

`input` | Specify survey data.
`output` | Specify output file.

### Named Arguments

`--version` | Print the current version number
`-v, --verbose` | Increase the verbosity of output
`--work` | Set a path to the working directory.
`--img_nr` | Set a starting number for the image sequence.
`--seq_nr` | Set a sequence number for the data output.