types.py
55 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
Pulkit Goyal
|
r37144 | 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() | ||||