[apparmor] [patch] fix and improve recursive_print()
Christian Boltz
apparmor at cboltz.de
Mon Nov 10 23:57:49 UTC 2014
Hello,
this patch for recursive_print() in common.py fixes printing dicts with
py3. It also replaced the tabs() lambda function with a plain string,
and the brace() lambda function with a simple formatstring to make the
code easier to understand.
=== modified file 'utils/apparmor/common.py'
--- utils/apparmor/common.py 2014-10-14 10:54:39 +0000
+++ utils/apparmor/common.py 2014-11-10 23:34:07 +0000
@@ -75,33 +84,31 @@
# print recursively in a nicely formatted way
# useful for debugging, too verbose for production code ;-)
- # "stolen" from http://code.activestate.com/recipes/578094-recursively-print-nested-dictionaries/
- # by Scott S-Allen / MIT License
- # (output format slightly modified)
+ # based on code "stolen" from Scott S-Allen / MIT License
+ # http://code.activestate.com/recipes/578094-recursively-print-nested-dictionaries/
""" Recursively prints nested elements."""
- tabs = lambda n: ' ' * n * 4 # or 2 or 8 or...
- brace = lambda s, n: '[%s]' % (s)
+ tabs = ' ' * dpth * 4 # or 2 or 8 or...
if isinstance(src, dict):
empty = True
- for key, value in src.iteritems():
- print (tabs(dpth) + brace(key, dpth))
- recursive_print(value, dpth + 1, key)
+ for key in src.keys():
+ print (tabs + '[%s]' % key)
+ recursive_print(src[key], dpth + 1, key)
empty = False
if empty:
- print (tabs(dpth) + '[--- empty ---]')
+ print (tabs + '[--- empty ---]')
elif isinstance(src, list) or isinstance(src, tuple):
empty = True
for litem in src:
recursive_print(litem, dpth + 2)
empty = False
if empty:
- print (tabs(dpth) + '[--- empty ---]')
+ print (tabs + '[--- empty ---]')
else:
if key:
- print (tabs(dpth) + '%s = %s' % (key, src))
+ print (tabs + '%s = %s' % (key, src))
else:
- print (tabs(dpth) + '- %s' % src)
+ print (tabs + '- %s' % src)
def cmd(command):
'''Try to execute the given command.'''
Regards,
Christian Boltz
--
[PHP] Das Problem ist, daß ich auf den stinkenden Haufen oben drauf
kacken kann, oder die Scheiße von Jahrhunderten fachgerecht entfernen.
Entscheidungen, Entscheidungen, ...
[Kristian Köhntopp auf http://vvv.koehntopp.de/wpkris/?p=738204]
More information about the AppArmor
mailing list