view numerics/conformity.py @ 186:c2f545f32025

move conformity ensurance to separate function
author Jeff Hammel <k0scist@gmail.com>
date Fri, 21 Jul 2017 12:46:55 -0700
parents
children 100697f7c195
line wrap: on
line source

"""
ensures data is what we assert it to be
"""


class NonConformantRowLengths(Exception):
    """nested arrays have different lengths"""


def ensure_row_length(data):
    """
    ensures that all rows of array `data` are the same
    If so, return that length.
    If not, raise NonConformantArrayLengths
    """
    lengths = [len(i) for i in data]
    if len(set(lengths)) != 1:
        raise NonConformantRowLengths("Different lengths to array_mean: {}".format(' '.join(lengths)))
    return lengths.pop()