annotate tvii/unique.py @ 93:36c141f0f0bd default tip

add tensorflow dependency + console scripts
author Jeff Hammel <k0scist@gmail.com>
date Sun, 17 Dec 2017 14:31:35 -0800
parents 4b20694b8a16
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
50
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
1 class NotUnique(Exception):
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
2 """exception for a set of items that are not unique"""
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
3
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
4 msg_tmpl = "Not unique: {items}"
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
5
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
6 def __init__(self, multiples):
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
7 self.multiples = multiples
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
8 message = self.msg_tmpl.format(items=', '.join([str(item)
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
9 for item in multiples]))
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
10 Exception.__init__(self, message)
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
11
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
12
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
13 def unique(items):
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
14 """asserts that a `items` is a set of one"""
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
15
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
16 types = set(items)
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
17 unique = types.pop()
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
18 if types:
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
19 types.add(unique)
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
20 raise NotUnique(types)
4b20694b8a16 add module + test for uniqueness
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
21 return unique