/otwrapy

General purpose OpenTURNS python wrapper tools

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

https://github.com/openturns/otwrapy/actions/workflows/build.yml/badge.svg?branch=master
.. currentmodule:: otwrapy

otwrapy is a collection of tools that simplify the task of wrapping external codes in a Python environment as well as parallelizing it. It is built on top of OpenTURNS, with its users as the target audience. Documentation is available here. The module provides :

  • A Parallelizer class that converts any ot.Function into a parallel wrapper using either multiprocessing, ipyparallel, joblib, pathos or dask SSHCluster.
  • A set of useful tools that simply recurrent tasks when writing code wrappers:
    • TempWorkDir: Context manager that gracefully creates a temporary working directory. It handles errors and has the option to cleanup upon exit.
    • Debug: Decorator that protects the decorated function into a try/except structure so that errors are logged. It is specially useful when you launch your code in a non interactive environment.
    • load_array and dump_array: Used for efficiently create and load backups with the option to compress with gzip.
    • safemakedirs: Create a directory without raising an exception if it exits.
    • create_logger: Return a logger with a FileHandler at a given logging level.

otwrapy comes from the experience of wrapping a lot of different external codes at Phimeca engineering. We are a company specialized in uncertainty treatment and we assist our clients introducing the probabilistic dimension in their so far deterministic studies.

Warning

While fully usable, otwrapy is still pre-1.0 software and has no backwards compatibility guarantees until the 1.0 release occurs! Please make sure to be careful anytime you upgrade!