1/def main/i
2class NullsInString(Exception):
3    """Nulls in string."""
4
5_FILTER=''.join([(len(repr(chr(x)))==3) and chr(x) or '.' for x in range(256)])
6
7def _dump(src, length=16):
8    result=[]
9    for i in xrange(0, len(src), length):
10        s = src[i:i+length]
11        hexa = ' '.join(["%02X"%ord(x) for x in s])
12        printable = s.translate(_FILTER)
13        result.append("%04X   %-*s   %s\n" % (i, length*3, hexa, printable))
14    return ''.join(result)
15
16.
17/print ""\.join((file_prefix, "/s/^/    /
18i
19                        try:
20                            if attrs[attr_name].find('\0') >= 0:
21                                raise NullsInString;
22.
23.+1a
24                        except (UnicodeDecodeError, NullsInString):
25                            print "".join((file_prefix, "%s:" % (attr_name,)))
26                            print _dump(attrs[attr_name])
27.
28w
29