bmi-tester: Test Basic Model Interface implementations

Build Status Documentation Status Coverage Status Conda Version Conda Installation Conda Downloads

About

The bmi-tester is a command-line utility and Python library for testing Basic Model Interface (BMI) implementations.

Requirements

The bmi-tester requires Python 3. Additional dependencies can be found in the project’s requirements.txt file and can be installed using either pip or conda.

In addition to these requirements, the bmi-tester also requires the gimli.units package, which is a Python interface to the udunits2 C library, which is not available through pip but can be installed using conda.

If you are a developer of the bmi-tester you will also want to install additional dependencies for running the project’s tests to make sure that things are working as they should. These dependencies are listed in requirements-testing.txt and can all be install with either pip or conda.

Installation

To install, first create a new environment in which the project will be installed. This, although not necessary, will isolate the installation so that there won’t be conflicts with your base Python installation. This can be done with conda as,

$ conda create -n bmi-tester python=3
$ conda activate bmi-tester

Stable Release

The bmi-tester, and its dependencies, can most easily be installed with conda,

$ conda install bmi-tester -c conda-forge

From Source

After downloading the bmi-tester source code, run the following from the project’s top-level folder (the one that contains setup.py) to install into the current environment,

$ pip install -e .

Usage

You can access the bmi-tester from the command line with the bmi-test command. Use the –help option to get a brief description of the command line arguments,

$ bmi-test --help

The bmi-test command takes a single argument, the name of the entry point of the class that implements the BMI you would like to test. To demonstrate how this works, we will use the Hydrotrend model as an example. To install the Python BMI for Hydrotrend, use conda,

$ conda install pymt_hydrotrend -c conda-forge

Once installed, the following will test the BMI implementation for the Hydrotrend class,

$ bmi-test pymt_hydrotrend:Hydrotrend

The entry point is given as <model>:<class>. That is, in Python you would import the Hydrotrend class as,

>>> from pymt_hydrotrend import Hydrotrend