[apparmor] [patch] common.py: add recursive_print()

Christian Boltz apparmor at cboltz.de
Thu Feb 27 21:46:15 UTC 2014


Hello,

Am Donnerstag, 27. Februar 2014 schrieb Jamie Strandboge:
> On 02/27/2014 02:04 PM, Christian Boltz wrote:
> > Am Donnerstag, 27. Februar 2014 schrieb Jamie Strandboge:
> >> On 02/26/2014 06:48 PM, Christian Boltz wrote:
> >>> this patch adds recursive_print() to common.py.

> >> Is pprint not an option?
> > 
> > Not really - I gave it a short test, but it resulted in a very long
> > line. Here's the head -c1000 of pprint'ing "aa", the hasher that
> > stores all profiles:
...
> > That's not very readable IMHO ;-)
> > 
> > (If there's an option to add newlines at the right[tm] place and I
> > just didn't find it, please tell me ;-)
> 
> Hmmm, pprint has formatting options; I'm not sure why they wouldn't be
> working for you. From http://docs.python.org/3/library/pprint.html:
> 
> "pprint.pprint(object, stream=None, indent=1, width=80, depth=None)
> 
>     Prints the formatted representation of object on stream, [...]

It looks nice with the test data provided in the manual, but I still get 
one long line if I replace "stuff" with the "aa" hasher we use.

Just to give you an idea how I tested:

=== modified file 'utils/apparmor/aa.py'
--- utils/apparmor/aa.py        2014-02-26 22:41:00 +0000
+++ utils/apparmor/aa.py        2014-02-27 21:37:46 +0000
@@ -574,6 +574,11 @@
     file = get_profile_filename(pname)
     attach_profile_data(aa, profile_data)
     attach_profile_data(original_aa, profile_data)
+
+    import pprint
+    pp = pprint.PrettyPrinter(indent=4)
+    pp.pprint(aa)
+
     if os.path.isfile(profile_dir + '/tunables/global'):
         if not filelist.get(file, False):
             filelist[file] = hasher()


Then run   aa-autodep $whatever   and enjoy a very long line ;-)

> http://stackoverflow.com/questions/8168654/python-pprint-issues
> suggested using a width of '1'.

That doesn't change anything, at least not with our hasher.


Regards,

Christian Boltz
-- 
If Ubuntu is a Volkswagen, then OpenSUSE is a Mercedes-Benz.
[http://blogs.zdnet.com/BTL/?p=8988]




More information about the AppArmor mailing list