diff options
-rw-r--r-- | CHANGES.txt | 6 | ||||
-rw-r--r-- | pyasn1/codec/ber/decoder.py | 4 | ||||
-rw-r--r-- | pyasn1/type/base.py | 1 | ||||
-rw-r--r-- | pyasn1/type/constraint.py | 3 | ||||
-rw-r--r-- | pyasn1/type/namedval.py | 3 | ||||
-rw-r--r-- | pyasn1/type/tag.py | 3 | ||||
-rw-r--r-- | pyasn1/type/univ.py | 41 | ||||
-rw-r--r-- | setup.py | 2 |
8 files changed, 31 insertions, 32 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index ddd2c1e..ee8ac6b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,9 @@ +Revision 0.0.14 +--------------- + +- Major overhawl for Python 2K/3K compatibility: + + Get rid of types + Revision 0.0.13 --------------- diff --git a/pyasn1/codec/ber/decoder.py b/pyasn1/codec/ber/decoder.py index 83d2441..e0c0641 100644 --- a/pyasn1/codec/ber/decoder.py +++ b/pyasn1/codec/ber/decoder.py @@ -1,5 +1,4 @@ # BER decoder -import types from pyasn1.type import tag, base, univ, char, useful, tagmap from pyasn1.codec.ber import eoo from pyasn1 import error @@ -670,8 +669,7 @@ class Decoder: else: state = stTryAsExplicitTag if state == stGetValueDecoderByAsn1Spec: - if type(asn1Spec) == types.DictType or \ - isinstance(asn1Spec, tagmap.TagMap): + if isinstance(asn1Spec, (dict, tagmap.TagMap)): if tagSet in asn1Spec: __chosenSpec = asn1Spec[tagSet] else: diff --git a/pyasn1/type/base.py b/pyasn1/type/base.py index 1cf1663..142d904 100644 --- a/pyasn1/type/base.py +++ b/pyasn1/type/base.py @@ -1,7 +1,6 @@ # Base classes for ASN.1 types from operator import getslice, setslice, delslice from string import join -from types import SliceType from pyasn1.type import constraint, tagmap from pyasn1 import error diff --git a/pyasn1/type/constraint.py b/pyasn1/type/constraint.py index 04832f9..683aacb 100644 --- a/pyasn1/type/constraint.py +++ b/pyasn1/type/constraint.py @@ -11,7 +11,6 @@ Original concept and code by Mike C. Fletcher. """ -import types import string from pyasn1.type import error @@ -129,7 +128,7 @@ class InnerTypeConstraint(AbstractConstraint): self.__multipleTypeConstraint = {} self.__singleTypeConstraint = None for v in values: - if type(v) == types.TupleType: + if isinstance(v, tuple): self.__multipleTypeConstraint[v[0]] = v[1], v[2] else: self.__singleTypeConstraint = v diff --git a/pyasn1/type/namedval.py b/pyasn1/type/namedval.py index 22edd59..f67557a 100644 --- a/pyasn1/type/namedval.py +++ b/pyasn1/type/namedval.py @@ -1,5 +1,4 @@ # ASN.1 named integers -from types import TupleType from pyasn1 import error __all__ = [ 'NamedValues' ] @@ -10,7 +9,7 @@ class NamedValues: self.namedValues = () automaticVal = 1 for namedValue in namedValues: - if type(namedValue) == TupleType: + if isinstance(namedValue, tuple): name, val = namedValue else: name = namedValue diff --git a/pyasn1/type/tag.py b/pyasn1/type/tag.py index 93ad7d5..364857f 100644 --- a/pyasn1/type/tag.py +++ b/pyasn1/type/tag.py @@ -1,6 +1,5 @@ # ASN.1 types tags from operator import getslice -from types import SliceType from string import join from pyasn1 import error @@ -93,7 +92,7 @@ class TagSet: def getBaseTag(self): return self.__baseTag def __getitem__(self, idx): - if type(idx) == SliceType: + if isinstance(idx, slice): return apply(self.__class__, (self.__baseTag,) + getslice(self.__superTags, idx.start, idx.stop)) diff --git a/pyasn1/type/univ.py b/pyasn1/type/univ.py index 08f9e39..76f9a3a 100644 --- a/pyasn1/type/univ.py +++ b/pyasn1/type/univ.py @@ -1,6 +1,5 @@ # ASN.1 "universal" data types import string -import types import operator from pyasn1.type import base, tag, constraint, namedtype, namedval, tagmap from pyasn1.codec.ber import eoo @@ -59,7 +58,7 @@ class Integer(base.AbstractSimpleAsn1Item): def __ge__(self, value): return self._value >= value def prettyIn(self, value): - if type(value) != types.StringType: + if not isinstance(value, str): return long(value) r = self.__namedValues.getValue(value) if r is not None: @@ -184,7 +183,7 @@ class BitString(base.AbstractSimpleAsn1Item): self._len = len(self._value) return self._len def __getitem__(self, i): - if type(i) == types.SliceType: + if isinstance(i, slice): return self.clone(operator.getslice(self._value, i.start, i.stop)) else: return self._value[i] @@ -198,7 +197,7 @@ class BitString(base.AbstractSimpleAsn1Item): r = [] if not value: return () - elif type(value) == types.StringType: + elif isinstance(value, str): if value[0] == '\'': if value[-2:] == '\'B': for v in value[1:-2]: @@ -234,7 +233,7 @@ class BitString(base.AbstractSimpleAsn1Item): r.extend([0]*(j-len(r)+1)) r[j] = 1 return tuple(r) - elif type(value) == types.TupleType or type(value) == types.ListType: + elif isinstance(value, (tuple, list)): r = tuple(value) for b in r: if b and b != 1: @@ -258,13 +257,13 @@ class OctetString(base.AbstractSimpleAsn1Item): ) def prettyOut(self, value): return repr(value) def prettyIn(self, value): - if type(value) == types.StringType: + if isinstance(value, str): return value else: return str(value) def purePrettyIn(self, value): - if type(value) != types.StringType: + if not isinstance(value, str): return str(value) elif not value: return value @@ -314,7 +313,7 @@ class OctetString(base.AbstractSimpleAsn1Item): self._len = len(self._value) return self._len def __getitem__(self, i): - if type(i) == types.SliceType: + if isinstance(i, slice): return self.clone(operator.getslice(self._value, i.start, i.stop)) else: return self._value[i] @@ -347,7 +346,7 @@ class ObjectIdentifier(base.AbstractSimpleAsn1Item): self._len = len(self._value) return self._len def __getitem__(self, i): - if type(i) == types.SliceType: + if isinstance(i, slice): return self.clone( operator.getslice(self._value, i.start, i.stop) ) @@ -366,11 +365,11 @@ class ObjectIdentifier(base.AbstractSimpleAsn1Item): def prettyIn(self, value): """Dotted -> tuple of numerics OID converter""" - if type(value) is types.TupleType: + if isinstance(value, tuple): pass elif isinstance(value, ObjectIdentifier): return tuple(value) - elif type(value) is types.StringType: + elif isinstance(value, str): r = [] for element in filter(None, string.split(value, '.')): try: @@ -422,9 +421,9 @@ class Real(base.AbstractSimpleAsn1Item): return m, b, e def prettyIn(self, value): - if type(value) == types.TupleType and len(value) == 3: + if isinstance(value, tuple) and len(value) == 3: for d in value: - if type(d) not in (types.IntType, types.LongType): + if not isinstance(d, (int, long)): raise error.PyAsn1Error( 'Lame Real value syntax: %s' % (value,) ) @@ -435,9 +434,9 @@ class Real(base.AbstractSimpleAsn1Item): if value[1] == 10: value = self.__normalizeBase10(value) return value - elif type(value) in (types.IntType, types.LongType): + elif isinstance(value, (int, long)): return self.__normalizeBase10((value, 10, 0)) - elif type(value) == types.FloatType: + elif isinstance(value, float): if value in self._inf: return value else: @@ -449,7 +448,7 @@ class Real(base.AbstractSimpleAsn1Item): elif isinstance(value, Real): return tuple(value) - elif type(value) == types.StringType: # handle infinite literal + elif isinstance(value, str): # handle infinite literal try: inf = float(value) except ValueError: @@ -556,7 +555,7 @@ class SetOf(base.AbstractConstructedAsn1Item): self._componentValues[idx] = self._componentType.clone() self._componentValuesSet = self._componentValuesSet + 1 return self - elif type(value) != types.InstanceType: + elif not isinstance(value, base.Asn1Item): if self._componentType is None: raise error.PyAsn1Error('Component type not defined') if isinstance(self._componentType, base.AbstractSimpleAsn1Item): @@ -606,13 +605,13 @@ class SequenceAndSetBase(base.AbstractConstructedAsn1Item): self._componentTypeLen = len(self._componentType) def __getitem__(self, idx): - if type(idx) == types.StringType: + if isinstance(idx, str): return self.getComponentByName(idx) else: return base.AbstractConstructedAsn1Item.__getitem__(self, idx) def __setitem__(self, idx, value): - if type(idx) == types.StringType: + if isinstance(idx, str): self.setComponentByName(idx, value) else: base.AbstractConstructedAsn1Item.__setitem__(self, idx, value) @@ -666,7 +665,7 @@ class SequenceAndSetBase(base.AbstractConstructedAsn1Item): self._componentValues[idx] = self._componentType.getTypeByPosition(idx).clone() self._componentValuesSet = self._componentValuesSet + 1 return self - elif type(value) != types.InstanceType: + elif not isinstance(value, base.Asn1Item): t = self._componentType.getTypeByPosition(idx) if isinstance(t, base.AbstractSimpleAsn1Item): value = t.clone(value=value) @@ -836,7 +835,7 @@ class Choice(Set): self._componentValuesSet = 1 self._currentIdx = idx return self - elif type(value) != types.InstanceType: + elif not isinstance(value, base.Asn1Item): value = self._componentType.getTypeByPosition(idx).clone( value=value ) @@ -25,7 +25,7 @@ except ImportError: params.update( { 'name': 'pyasn1', - 'version': '0.0.13', + 'version': '0.0.14', 'description': 'ASN.1 types and codecs', 'author': 'Ilya Etingof', 'author_email': 'ilya@glas.net', |