diff options
author | elie <elie> | 2014-06-17 14:35:12 +0000 |
---|---|---|
committer | elie <elie> | 2014-06-17 14:35:12 +0000 |
commit | 18c8d20207ffe5e325b7e642373528019be580fb (patch) | |
tree | ccb45dc4cf5afbab53fcf6392b2c1b4098f8e748 | |
parent | 87cb54cf65768c1874cdceeb539ec07a336519da (diff) | |
download | pyasn1-18c8d20207ffe5e325b7e642373528019be580fb.tar.gz |
the OctetString.__int__() and .__float__() magic methods implemented
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | pyasn1/type/univ.py | 18 |
2 files changed, 11 insertions, 8 deletions
@@ -39,6 +39,7 @@ Revision 0.1.8 - More Python magic methods implementations added to Integer & Real classes (e.g. __pos__, __neg__, __round__, __floor__, __ceil__, __trunc__) - The Integer.__invert__ Python magic method implemented. +- The OctetString.__int__() and .__float__() magic methods implemented. - Handle the case of null writer at Debug printer. - Fix to NamedType.__repr__() to work properly. - Fixes to __repr__() implementation of many built-in ASN.1 types to take into diff --git a/pyasn1/type/univ.py b/pyasn1/type/univ.py index 7101da4..15b5017 100644 --- a/pyasn1/type/univ.py +++ b/pyasn1/type/univ.py @@ -299,7 +299,7 @@ class OctetString(base.AbstractSimpleAsn1Item): value = self.defaultHexValue if value is None or value is base.noValue: value = self.defaultBinValue - self.__intValue = None + self.__asNumbersCache = None base.AbstractSimpleAsn1Item.__init__(self, value, tagSet, subtypeSpec) def clone(self, value=None, tagSet=None, subtypeSpec=None, @@ -436,17 +436,17 @@ class OctetString(base.AbstractSimpleAsn1Item): return self._value.decode(self._encoding, 'ignore') def asOctets(self): return self._value def asNumbers(self): - if self.__intValue is None: - self.__intValue = tuple([ ord(x) for x in self._value ]) - return self.__intValue + if self.__asNumbersCache is None: + self.__asNumbersCache = tuple([ ord(x) for x in self._value ]) + return self.__asNumbersCache else: def __str__(self): return self._value.decode(self._encoding, 'ignore') def __bytes__(self): return self._value def asOctets(self): return self._value def asNumbers(self): - if self.__intValue is None: - self.__intValue = tuple(self._value) - return self.__intValue + if self.__asNumbersCache is None: + self.__asNumbersCache = tuple(self._value) + return self.__asNumbersCache # Immutable sequence object protocol @@ -464,7 +464,9 @@ class OctetString(base.AbstractSimpleAsn1Item): def __radd__(self, value): return self.clone(self.prettyIn(value) + self._value) def __mul__(self, value): return self.clone(self._value * value) def __rmul__(self, value): return self * value - + def __int__(self): return int(self._value) + def __float__(self): return float(self._value) + class Null(OctetString): defaultValue = ''.encode() # This is tightly constrained tagSet = baseTagSet = tag.initTagSet( |