class CBORTag(object): """ Represents a CBOR semantic tag. :param int tag: tag number :param value: encapsulated value (any object) """ __slots__ = 'tag', 'value' def __init__(self, tag, value): self.tag = tag self.value = value def __eq__(self, other): if isinstance(other, CBORTag): return self.tag == other.tag and self.value == other.value return NotImplemented def __repr__(self): return 'CBORTag({self.tag}, {self.value!r})'.format(self=self) class CBORSimpleValue(object): """ Represents a CBOR "simple value". :param int value: the value (0-255) """ __slots__ = 'value' def __init__(self, value): if value < 0 or value > 255: raise TypeError('simple value too big') self.value = value def __eq__(self, other): if isinstance(other, CBORSimpleValue): return self.value == other.value elif isinstance(other, int): return self.value == other return NotImplemented def __repr__(self): return 'CBORSimpleValue({self.value})'.format(self=self) class UndefinedType(object): __slots__ = () #: Represents the "undefined" value. undefined = UndefinedType() break_marker = object()