From 1eff316a2ec9da2eea7255d358ca91eab89d9426 Mon Sep 17 00:00:00 2001 From: Ilya Etingof Date: Sun, 23 Jul 2017 13:47:47 +0200 Subject: backward compatible OctetString specialization --- pysnmp/proto/rfc1902.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'pysnmp/proto') 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 -- cgit v1.2.1