[Python-Dev] RFC: PEP 460: Add bytes % args and bytes.format(args) to Python 3.5 (original) (raw)

Stephen J. Turnbull stephen at xemacs.org
Thu Jan 9 05:53:02 CET 2014


Antoine Pitrou writes:

However, interpolating a bytes object isn't out of place, and it is what a minimal "formatting" primitive could do.

Something like this?

# VERY incomplete pseudo-code
class str:

    # new method
    # fmtstring has syntax of .format method's spec, maybe adding a 'B'
    # for "insert Blob of bytes" spec
    def format_for_wire(fmtstring, args, encoding='utf-8', errors='strict'):

        result = b''

        # gotta go to a meeting, exercise for reader :-(
        parts = zip_specs_and_args(fmtstring, args)

        for spec, arg in parts:
            if spec == 'B' and isinstance(arg, bytes):
                result += arg
            else:
                partial = format(spec, arg)
                result += partial.encode(encoding=encoding, errors=errors)

        return result

Maybe format_to_bytes is a more accurate name.

I have no idea how to do this for %-formatting though. :-(

And I have the sneaking suspicion that it can't be this easy. :-(

Can it? :-)



More information about the Python-Dev mailing list