Mercurial > hg > numerics
annotate 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 |
rev | line source |
---|---|
186
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
1 """ |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
2 ensures data is what we assert it to be |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
3 """ |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
4 |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
5 |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
6 class NonConformantRowLengths(Exception): |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
7 """nested arrays have different lengths""" |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
8 |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
9 |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
10 def ensure_row_length(data): |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
11 """ |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
12 ensures that all rows of array `data` are the same |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
13 If so, return that length. |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
14 If not, raise NonConformantArrayLengths |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
15 """ |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
16 lengths = [len(i) for i in data] |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
17 if len(set(lengths)) != 1: |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
18 raise NonConformantRowLengths("Different lengths to array_mean: {}".format(' '.join(lengths))) |
c2f545f32025
move conformity ensurance to separate function
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
19 return lengths.pop() |