STINNER Victor <[email protected]> added the comment:
PyString_Format() uses a "goto unicode;" if a '%c' or '%s' argument is unicode.
The unicode label converts the partial formatted result (byte string) to
unicode, and use PyUnicode_Format() to finish to formatting.
I don't think that you can apply the same algorithm here (converts the partial
result to unicode) because it requires to rewrite the format string: arguments
can be used twice or more, and used in any order.
Example: "{0} {1}".format("bytes", u"unicode") => switch to unicode occurs at
result="bytes ", format=" {1}", arguments=(u"unicode"). Converts "bytes " to
unicode is easy, but the format have to be rewritten in " {0}" or something
else.
Call trace of str.format(): do_string_format() -> build_string() ->
output_markup() -> render_field(). The argument type is proceed in
render_field().
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue7300>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com