moleculekit.fileformats.utils module#

exception moleculekit.fileformats.utils.TypeCastPerformanceWarning#

Bases: RuntimeWarning

moleculekit.fileformats.utils.cast_indices(indices)#

Check that indices are appropriate for indexing an array

Parameters:

indices ({None, array_like, slice}) – If indices is None or slice, it’ll just pass through. Otherwise, it’ll be converted to a numpy array and checked to make sure it contains unique integers.

Returns:

value – Either a slice or an array of integers, depending on the input type

Return type:

{slice, np.ndarray}

moleculekit.fileformats.utils.ensure_type(val, dtype, ndim, name, length=None, can_be_none=False, shape=None, warn_on_cast=True, add_newaxis_on_deficient_ndim=False)#

Typecheck the size, shape and dtype of a numpy array, with optional casting.

Parameters:
  • val ({np.ndaraay, None}) – The array to check

  • dtype ({nd.dtype, str}) – The dtype you’d like the array to have

  • ndim (int) – The number of dimensions you’d like the array to have

  • name (str) – name of the array. This is used when throwing exceptions, so that we can describe to the user which array is messed up.

  • length (int, optional) – How long should the array be?

  • can_be_none (bool) – Is val == None acceptable?

  • shape (tuple, optional) – What should be shape of the array be? If the provided tuple has Nones in it, those will be semantically interpreted as matching any length in that dimension. So, for example, using the shape spec (None, None, 3) will ensure that the last dimension is of length three without constraining the first two dimensions

  • warn_on_cast (bool, default=True) – Raise a warning when the dtypes don’t match and a cast is done.

  • add_newaxis_on_deficient_ndim (bool, default=True) – Add a new axis to the beginining of the array if the number of dimensions is deficient by one compared to your specification. For instance, if you’re trying to get out an array of ndim == 3, but the user provides an array of shape == (10, 10), a new axis will be created with length 1 in front, so that the return value is of shape (1, 10, 10).

Notes

The returned value will always be C-contiguous.

Returns:

typechecked_val – If val=None and can_be_none=True, then this will return None. Otherwise, it will return val (or a copy of val). If the dtype wasn’t right, it’ll be casted to the right shape. If the array was not C-contiguous, it’ll be copied as well.

Return type:

np.ndarray, None