New submission from Nick Coghlan:

Inspired by the discussion in issue 9951, I believe it would be appropriate to 
extend the default handling of the "x" and "X" format characters to accept 
arbitrary bytes-like objects. The processing of these characters would be as 
follows:

"x": display a-f as lowercase digits
"X": display A-F as uppercase digits
"#": includes 0x prefix
".precision": chunks output, placing a space after every <precision> bytes
",": uses a comma as the separator, rather than a space

Output order would match binascii.hexlify()

Examples:

format(b"xyz", "x") -> '78797a'
format(b"xyz", "X") -> '78797A'
format(b"xyz", "#x") -> '0x78797a'

format(b"xyz", ".1x") -> '78 79 7a'
format(b"abcdwxyz", ".4x") -> '61626364 7778797a'
format(b"abcdwxyz", "#.4x") -> '0x61626364 0x7778797a'

format(b"xyz", ",.1x") -> '78,79,7a'
format(b"abcdwxyz", ",.4x") -> '61626364,7778797a'
format(b"abcdwxyz", "#,.4x") -> '0x61626364,0x7778797a'

This approach makes it easy to inspect binary data, with the ability to inject 
regular spaces or commas to improved readability. Those are the basic features 
needed to support debugging.

Anything more complicated than that, and we're starting to want something more 
like the struct module.

----------
components: Interpreter Core
messages: 226733
nosy: ncoghlan
priority: normal
severity: normal
status: open
title: Allow 'x' and 'X' to accept bytes objects in string formatting
versions: Python 3.5

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue22385>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to