csdms

bmibabel.api module

Work with api.yaml files from a BMI description.

bmibabel.api.find_api_description_file(dir='.')[source]
bmibabel.api.find_bmi_metadata(dir='.')[source]

Find BMI metadata in a directory tree.

A folder is thought to contain BMI metadata if:

  • Its name is .bmi and contains a api.yaml. If it contains only folders, each folder is assumed to contain bmi metadata for an individual model.
  • It is listed in .bmi.yaml file under bmi_paths. If any of these paths do not end in .bmi, but there is a .bmi folder there, that folder is used.
Parameters:

dir : str, optional

Path to folder to search for metadata.

Returns:

tuple of str

Paths to BMI metadata folders.

bmibabel.api.get_subdirs(dir='.')[source]
bmibabel.api.is_bmi_metadata_folder(path)[source]
bmibabel.api.load(dir='.')[source]

Load an api description from a file.

Parameters:

dir : str, optional

Path to folder that contains description file.

Returns:

dict

Description of the API.

Raises:

ParseError

MissingKeyError

UnknownKeyError

If the description is invalid.

MissingFileError

If an api file cannot be read.

bmibabel.api.load_all(dir='.')[source]

Load multiple API descriptions.

Parameters:

dir : str, optional

Path to folder that contains description file.

Returns:

list

Descriptions of APIs.

bmibabel.api.load_api(fname)[source]
bmibabel.api.load_bmi_paths(fname, dir='.')[source]
bmibabel.api.pkg_config(package, opt)[source]

Use pkg-config to get compile options.

Parameters:

package : str

Name of pkg-config package.

opt : {‘–cflags’, ‘–libs’}

Options for pkg-config.

Returns:

str

Compiler flags.

bmibabel.api.prepend_env_path(path_var, path, env=None)[source]

Prepend a path to and environment variable.

Parameters:

path_var : str

Environment variable.

path : str

Path to prepend.

env : dict, optional

Environment to use, otherwise the current environment.

bmibabel.api.validate_api(api)[source]

Validate API description or raise an exception.

Parameters:

api : dict_like

Description of a BMI.

Raises:

ParseError

If the description object is invalid.

MissingKeyError

If a required key is missing

UnknownKeyError

If an unknown key is found