cape.errors: Customized exceptions for CAPE

This module provides CAPE-specific exceptions and methods to perform standardized checks throughout cape. One purpose of creating customized exceptions is to differentiate CAPE bugs and exceptions raised by CAPE intentionally due to problems with user input or errors detected in the execution of the integrated CFD solvers.

exception cape.errors.CapeAttributeError

Bases: AttributeError, CapeError

CAPE exception class for missing attribute

exception cape.errors.CapeError

Bases: Exception

Base exception class for exceptions intentionally raised by CAPE

exception cape.errors.CapeFileError

Bases: CapeError

CAPE exception class for file based intentonal exceptions

exception cape.errors.CapeFileNotFoundError

Bases: FileNotFoundError, CapeError

CAPE exception for missing required file

exception cape.errors.CapeIndexError

Bases: IndexError, CapeError

CAPE exception for objects with the wrong size

exception cape.errors.CapeNotImplementedError

Bases: NotImplementedError, CapeError

CAPE exception for capability not yet implemented

exception cape.errors.CapeRuntimeError

Bases: RuntimeError, CapeError

CAPE exception that does not fit other categories

exception cape.errors.CapeTypeError

Bases: TypeError, CapeError

CAPE exception for objects with the wrong type

exception cape.errors.CapeValueError

Bases: TypeError, CapeError

CAPE exception for objects with bad values

cape.errors.assert_isinstance(obj: Any, cls_or_tuple: type | tuple, desc: str | None = None)

Conveniently check types

Applies isinstance(obj, cls_or_tuple) but also constructs a :class;`TypeError` and appropriate message if test fails

Call:
>>> assert_isinstance(obj, cls, desc=None)
>>> assert_isinstance(obj, cls_tuple, desc=None)
Inputs:
obj: object

Object whose type is checked

cls: type

Single permitted class

cls_tuple: tuple[type]

Tuple of allowed classes

desc: {None} | str

Brief description of intended use of obj

Raises:
Version:
  • 2024-06-19 @ddalle: v1.0

cape.errors.assert_len(obj: list | tuple, length: int, desc: str | None = None)

Conveniently check length

Call:
>>> assert_len(obj, length, desc=None)
Inputs:
obj: list | tuple

Object whose type is checked

length: int

Required length of obj

desc: {None} | str

Brief description of intended use of obj

Raises:
Version:
  • 2024-06-19 @ddalle: v1.0

cape.errors.assert_which(cmdname: str)

Ensure that a specific executable exists

Call:
>>> assert_which(cmdname)
Inputs:
cmdname: str

Name of executable

Raises:
Versions:
  • 2025-06-19 @ddalle: v1.0