Merged requested to merge chleh/ogs:python-wrapper into master
This MR adds a very simple Python wrapper for OGS commandline tools.
The usage is as follows:
$ pip install ogs $ python >>> from ogs import cli >>> return_code = cli.createQuadraticMesh("--version") .../lib/python3.10/site-packages/ogs/_internal/../bin/createQuadraticMesh version: 6.4.3-70-gd27595c4ed >>> outfile = "/tmp/line.vtu" >>> return_code = cli.generateStructuredMesh(e="line", lx=1, nx=10, o=outfile) [2022-09-29 08:05:02.718] [ogs] [info] Mesh created: 11 nodes, 10 elements. >>> help(cli.createQuadraticMesh) Help on function run_cmd in module ogs._internal.wrap_cli_tools: run_cmd(*args, **kwargs) This function wraps the commandline tool createQuadraticMesh for easy use from Python. The entries of args are passed as is to the commandline tool. The entries of kwargs are transformed: one-letter keys get a single dash as a prefix, multi-letter keys are prefixed with two dashes. Thereby, commandline tools can be used like proper Python functions, e.g.: >>> cli = CLI() >>> cli.createQuadraticMesh("--help") # prints a help text ... >>> cli.createQuadraticMesh(help=None) # special, does the same ... A more useful example. The following will create a line mesh: >>> outfile = "line.vtu" >>> cli.generateStructuredMesh(e="line", lx=1, nx=10, o=outfile)
- Improved help texts
- Autocompletion of available tools
- Options to capture tool output/write log files
- Documentation on the OGS website
Feature description was added to the changelog
Tests covering your feature were added?
Any new feature or behavior change was documented?