[issue20015] Allow 1-character ASCII unicode where 1-character str is required

Serhiy Storchaka report at bugs.python.org
Wed Dec 18 16:59:26 CET 2013


New submission from Serhiy Storchaka:

In most cases when str object required, unicode object is allowed too. "s" and "z" codes (with modifiers) in PyArg_Parse*() accept both str and unicode instances. But "c" code accepts only 1-character str, not unicode. This makes harder writing version-agnostic code with imported unicode_literals (2.7 functions require bytes literals, 3.x functions require unicode literals) and breaks pickle compatibility (see issue13566).

This change will affect:

* str.ljust(), str.rjust() and str.center();
* '%c' % char;
* mmap.write_byte();
* array constructor and item setter for 'c' type;
* datetime.isoformat();
* bsddb.set_re_delim() and bsddb.set_re_pad();
* msvcrt.putch() and msvcrt.ungetch();
* swi.block.padstring().

----------
components: Interpreter Core
files: getargs_c_unicode.patch
keywords: patch
messages: 206529
nosy: alexandre.vassalotti, pitrou, serhiy.storchaka
priority: normal
severity: normal
stage: patch review
status: open
title: Allow 1-character ASCII unicode where 1-character str is required
versions: Python 2.7
Added file: http://bugs.python.org/file33193/getargs_c_unicode.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20015>
_______________________________________


More information about the Python-bugs-list mailing list