[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