[Erp5-report] r15313 - /erp5/trunk/utils/treenalyser.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Jul 25 22:55:51 CEST 2007


Author: vincent
Date: Wed Jul 25 22:55:50 2007
New Revision: 15313

URL: http://svn.erp5.org?rev=15313&view=rev
Log:
Make hex dump code a function.

Modified:
    erp5/trunk/utils/treenalyser.py

Modified: erp5/trunk/utils/treenalyser.py
URL: http://svn.erp5.org/erp5/trunk/utils/treenalyser.py?rev=15313&r1=15312&r2=15313&view=diff
==============================================================================
--- erp5/trunk/utils/treenalyser.py (original)
+++ erp5/trunk/utils/treenalyser.py Wed Jul 25 22:55:50 2007
@@ -161,27 +161,33 @@
       if display_klass:
         print klass_fmt % (EMPTY_STRING, mod, klass)
       if display_hexdump:
-        for line_number in xrange(data_len/16 + 1):
-          offset = LINE_LENGTH * line_number
-          outstring_list = ['  '] * LINE_LENGTH
-          ascii_list = [SPACE] * LINE_LENGTH
-          for column_number in xrange(min(LINE_LENGTH, data_len - offset)):
-            byte = data[column_number + offset]
-            byte_value = ord(byte)
-            outstring_list[column_number] = '%02x' % (byte_value, )
-            if SPACE_ORD <= byte_value <= TILDE_ORD:
-              ascii_list[column_number] = '%s' % (byte, )
-            else:
-              ascii_list[column_number] = '.'
-          print hex_fmt % (EMPTY_STRING, line_number * LINE_LENGTH,
-                           SPACE.join(outstring_list[:HALF_LINE_LENGTH]),
-                           SPACE.join(outstring_list[HALF_LINE_LENGTH:]),
-                           EMPTY_STRING.join(ascii_list))
+        print line_fmt % ('Full dump:', )
+        hexdump(data)
     if verbose > 1:
       print 'Object size cache stats: len = %s, hit = %s, miss = %s, '\
             'prune = %s' % (len(object_total_size_cache),
             object_total_size_cache_hit, object_total_size_cache_miss,
             object_total_size_cache_prune)
+
+def hexdump(data, data_len=None, data_offset=0):
+  if data_len is None:
+    data_len = len(data) - data_offset
+  for line_number in xrange(data_len/16 + 1):
+    offset = LINE_LENGTH * line_number + data_offset
+    outstring_list = ['  '] * LINE_LENGTH
+    ascii_list = [SPACE] * LINE_LENGTH
+    for column_number in xrange(min(LINE_LENGTH, data_len - offset)):
+      byte = data[column_number + offset]
+      byte_value = ord(byte)
+      outstring_list[column_number] = '%02x' % (byte_value, )
+      if SPACE_ORD <= byte_value <= TILDE_ORD:
+        ascii_list[column_number] = '%s' % (byte, )
+      else:
+        ascii_list[column_number] = '.'
+    print hex_fmt % (line_number * LINE_LENGTH,
+                     SPACE.join(outstring_list[:HALF_LINE_LENGTH]),
+                     SPACE.join(outstring_list[HALF_LINE_LENGTH:]),
+                     EMPTY_STRING.join(ascii_list))
 
 def main():
   verbose = 0




More information about the Erp5-report mailing list