view tvii/unique.py @ 82:c05ce6b7f941

test distance calculations
author Jeff Hammel <k0scist@gmail.com>
date Sun, 17 Dec 2017 13:45:44 -0800
parents 4b20694b8a16
children
line wrap: on
line source

class NotUnique(Exception):
    """exception for a set of items that are not unique"""

    msg_tmpl = "Not unique: {items}"

    def __init__(self, multiples):
        self.multiples = multiples
        message = self.msg_tmpl.format(items=', '.join([str(item)
                                                        for item in multiples]))
        Exception.__init__(self, message)


def unique(items):
    """asserts that a `items` is a set of one"""

    types = set(items)
    unique = types.pop()
    if types:
        types.add(unique)
        raise NotUnique(types)
    return unique