diff options
author | Ilya Etingof <etingof@gmail.com> | 2017-07-23 13:47:47 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2017-07-23 13:47:47 +0200 |
commit | 1eff316a2ec9da2eea7255d358ca91eab89d9426 (patch) | |
tree | f38099a178532f33c5108f11772775a4cca1907e /pysnmp/proto | |
parent | 3e7f2e6e1090b24a7666259302bc5bc48561011d (diff) | |
download | pysnmp-git-1eff316a2ec9da2eea7255d358ca91eab89d9426.tar.gz |
backward compatible OctetString specialization
Diffstat (limited to 'pysnmp/proto')
-rw-r--r-- | pysnmp/proto/rfc1902.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/pysnmp/proto/rfc1902.py b/pysnmp/proto/rfc1902.py index 75ecda9f..6c368e8b 100644 --- a/pysnmp/proto/rfc1902.py +++ b/pysnmp/proto/rfc1902.py @@ -612,10 +612,26 @@ class Bits(OctetString): namedValues = namedval.NamedValues() def __init__(self, *args, **kwargs): - if 'namedValues' not in kwargs: - kwargs['namedValues'] = self.namedValues + try: + self.namedValues = kwargs.pop('namedValues') + + except KeyError: + pass + OctetString.__init__(self, *args, **kwargs) + def clone(self, *args, **kwargs): + namedValues = kwargs.pop('namedValues', self.namedValues) + clone = OctetString.clone(self, *args, **kwargs) + clone.namedValues = namedValues + return clone + + def subtype(self, *args, **kwargs): + namedValues = kwargs.pop('namedValues', self.namedValues) + clone = OctetString.subtype(self, *args, **kwargs) + clone.namedValues = namedValues + return clone + def prettyIn(self, bits): if not isinstance(bits, (tuple, list)): return OctetString.prettyIn(self, bits) # raw bitstring |