summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2019-09-07 18:16:28 +0200
committerIlya Etingof <etingof@gmail.com>2019-09-07 18:16:28 +0200
commitbac135a0ac35acb6ebefa683541fc34b920f7671 (patch)
treef3ce7c674edc50d02cd8b041684dda3c52fcf497
parentaa5eb55ad9aaa67bf158c19864582ff7efb9854c (diff)
downloadpyasn1-git-bac135a0ac35acb6ebefa683541fc34b920f7671.tar.gz
Improve open maps debugging in decoder
-rw-r--r--pyasn1/codec/ber/decoder.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/pyasn1/codec/ber/decoder.py b/pyasn1/codec/ber/decoder.py
index 5759ab8..5ff485f 100644
--- a/pyasn1/codec/ber/decoder.py
+++ b/pyasn1/codec/ber/decoder.py
@@ -638,7 +638,10 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder):
openTypes = options.get('openTypes', {})
if LOG:
- LOG('using open types map: %r' % openTypes)
+ LOG('user-specified open types map:')
+
+ for k, v in openTypes.items():
+ LOG('%s -> %r' % (k, v))
if openTypes or options.get('decodeOpenTypes', False):
@@ -658,6 +661,17 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder):
except KeyError:
+ if LOG:
+ LOG('default open types map of component '
+ '"%s.%s" governed by component "%s.%s"'
+ ':' % (asn1Object.__class__.__name__,
+ namedType.name,
+ asn1Object.__class__.__name__,
+ namedType.openType.name))
+
+ for k, v in namedType.openType.items():
+ LOG('%s -> %r' % (k, v))
+
try:
openType = namedType.openType[governingValue]
@@ -823,7 +837,10 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder):
openTypes = options.get('openTypes', {})
if LOG:
- LOG('using open types map: %r' % openTypes)
+ LOG('user-specified open types map:')
+
+ for k, v in openTypes.items():
+ LOG('%s -> %r' % (k, v))
if openTypes or options.get('decodeOpenTypes', False):
@@ -843,6 +860,17 @@ class UniversalConstructedTypeDecoder(AbstractConstructedDecoder):
except KeyError:
+ if LOG:
+ LOG('default open types map of component '
+ '"%s.%s" governed by component "%s.%s"'
+ ':' % (asn1Object.__class__.__name__,
+ namedType.name,
+ asn1Object.__class__.__name__,
+ namedType.openType.name))
+
+ for k, v in namedType.openType.items():
+ LOG('%s -> %r' % (k, v))
+
try:
openType = namedType.openType[governingValue]