# Core package utilities (plasmapy.utils)¶

## Introduction¶

PlasmaPy.utils is where we store functionality that helps us write (what we try to think of as) clean, readable and informative code. This means:

• the many kinds of warnings and exceptions you may (hopefully not!) encounter while working with PlasmaPy, such as plasmapy.utils.RelativityWarning or plasmapy.utils.PhysicsError.

• decorators we use for reusable physical quantity computation and checking, such as plasmapy.utils.check_quantity and plasmapy.utils.check_relativistic.

• Some helper utilities for importing and testing packages such as plasmapy.utils.call_string.

## Reference/API¶

### plasmapy.utils.decorators Package¶

A module to contain various decorators used to build readable and useful code.

#### Functions¶

 check_relativistic([func, betafrac]) Warns or raises an exception when the output of the decorated function is greater than betafrac times the speed of light. check_quantity(**validations) Verify that the function’s arguments have correct units. A decorator for decorators, which preserves the signature of the function being wrapped.

### plasmapy.utils.exceptions Module¶

Exceptions and warnings specific to PlasmaPy.

#### Classes¶

 CouplingWarning A warning for functions that rely on a particular coupling regime to be valid. PhysicsError The base exception for physics-related errors. PhysicsWarning The base warning for warnings related to non-physical situations. PlasmaPyError Base class of PlasmaPy custom errors. PlasmaPyWarning Base class of PlasmaPy custom warnings. RelativityError An exception for speeds greater than the speed of light. RelativityWarning A warning for when relativistic velocities are being used in or are returned by non-relativistic functionality.

### plasmapy.utils.pytest_helpers Package¶

#### Functions¶

 assert_can_handle_nparray(function_to_test) Test for ability to handle numpy array quantities. call_string(f[, args, kwargs, color, …]) Return a string with the equivalent call of a function. run_test(func[, args, kwargs, …]) Test that a function or class returns the expected result, raises the expected exception, or issues an expected warning for the supplied positional and keyword arguments. run_test_equivalent_calls(*test_inputs[, …]) Test that different functions/inputs return equivalent results.

#### Classes¶

 InconsistentTypeError Exception for when the type of the actual result differs from the type of the expected result. IncorrectResultError Exception for when the actual result differs from the expected result by more than the allowed tolerance. InvalidTestError Exception for when the inputs to a test are not valid. MissingExceptionError Exception for when an expected exception is not raised. MissingWarningError Exception for when a warning is expected to be issued, but isn’t. RunTestError Base exception for test failures. UnexpectedExceptionError Exception for when an exception is expected, but a different exception is raised instead. UnexpectedResultError Exception for when the actual result differs from the expected result.