summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2016-04-12 23:21:46 +0200
committerIlya Etingof <etingof@gmail.com>2016-04-12 23:21:46 +0200
commit521fa24293780f2dd24e2d9e26113c6bccc85746 (patch)
tree1c25c04a040aa11387470ae59048869632c861bd
parent4f652723e9181d90eabe0e2ec16b50fd88a603a4 (diff)
downloadpyasn1-git-521fa24293780f2dd24e2d9e26113c6bccc85746.tar.gz
fix to base ASN.1 types to run in "unicode_literals" mode
-rw-r--r--CHANGES.txt1
-rw-r--r--pyasn1/type/univ.py12
2 files changed, 7 insertions, 6 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index c4fdcbf..c25575f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,6 +10,7 @@ Revision 0.1.10, released XX-XX-2016
iso-8859-1 encoding.
- Fix to BER decoder improperly caching long tags.
- Fix to IntegerDecoder's precomputed value map on Python 3.
+- Fix to base ASN.1 types to run in "unicode_literals" mode.
Revision 0.1.9, released 28-09-2015
-----------------------------------
diff --git a/pyasn1/type/univ.py b/pyasn1/type/univ.py
index 87f63f7..a387095 100644
--- a/pyasn1/type/univ.py
+++ b/pyasn1/type/univ.py
@@ -208,7 +208,7 @@ class Integer(base.AbstractSimpleAsn1Item):
return self._value >= value
def prettyIn(self, value):
- if not isinstance(value, str):
+ if not octets.isStringType(value):
try:
return int(value)
except:
@@ -678,7 +678,7 @@ class BitString(base.AbstractSimpleAsn1Item):
if not value:
return ()
- elif isinstance(value, str):
+ elif octets.isStringType(value):
if value[0] == '\'':
if value[-2:] == '\'B':
return self.fromBinaryString(value[1:-2])
@@ -1515,8 +1515,8 @@ class Real(base.AbstractSimpleAsn1Item):
return value
elif isinstance(value, intTypes):
return self.__normalizeBase10((value, 10, 0))
- elif isinstance(value, (str, float)):
- if isinstance(value, str):
+ elif isinstance(value, float) or octets.isStringType(value):
+ if octets.isStringType(value):
try:
value = float(value)
except ValueError:
@@ -1923,13 +1923,13 @@ class SequenceAndSetBase(base.AbstractConstructedAsn1Item):
self._componentTypeLen = len(self._componentType)
def __getitem__(self, idx):
- if isinstance(idx, str):
+ if octets.isStringType(idx):
return self.getComponentByName(idx)
else:
return base.AbstractConstructedAsn1Item.__getitem__(self, idx)
def __setitem__(self, idx, value):
- if isinstance(idx, str):
+ if octets.isStringType(idx):
self.setComponentByName(idx, value)
else:
base.AbstractConstructedAsn1Item.__setitem__(self, idx, value)