# 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.checks Module¶

#### Functions¶

 check_quantity(**validations) Verify that the function’s arguments have correct units. _check_quantity(arg, argname, funcname, units) Raise an exception if an object is not a Quantity with correct units and valid numerical values. 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.

### plasmapy.utils.exceptions Module¶

Exceptions and warnings specific to PlasmaPy.

#### Classes¶

 AtomicError An exception for errors in the atomic subpackage. AtomicWarning The base warning for the atomic subpackage. ChargeError An exception for incorrect or missing charge information. CouplingWarning A warning for functions that rely on a particular coupling regime to be valid. DataStandardError An exception for when HDF5 is not defined by OpenPMD standard. InvalidElementError An exception for when an argument is a valid particle is not a valid element. InvalidIonError An exception for when an argument is a valid particle but not a valid ion. InvalidIsotopeError An exception for when an argument is a valid particle but not a valid isotope. InvalidParticleError An exception for when a particle is invalid. MissingAtomicDataError An exception for missing atomic or particle data. MissingAtomicDataWarning Warning for use when atomic or particle data is missing. PhysicsError The base exception for physics-related errors. PhysicsWarning The base warning for physics related warnings. 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. UnexpectedParticleError An exception for when a particle is not of the expected category.

### plasmapy.utils.pytest_helpers Module¶

Test helper utilities.

#### Functions¶

 call_string(f, args, kwargs, VT] = {}[, …]) Return a string with the equivalent call of a function. run_test(func, args, kwargs, VT] = {}, …) 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. assert_can_handle_nparray(function_to_test) Test for ability to handle numpy array quantities.

#### Classes¶

 RunTestError Base exception for test failures. UnexpectedResultError Exception for when the actual result differs from the expected result. InconsistentTypeError Exception for when the type of the actual result differs from the type of the expected result. MissingExceptionError Exception for when an expected exception is not raised. UnexpectedResultError Exception for when the actual result differs from the expected result. MissingExceptionError Exception for when an expected exception is not raised. MissingWarningError Exception for when a warning is expected to be issued, but isn’t. 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.