[Python-Dev] A type of out-of-range exception for %c (original) (raw)
Antoine Pitrou solipsis at pitrou.net
Sun Jun 23 21:07:03 CEST 2013
- Previous message: [Python-Dev] A type of out-of-range exception for %c
- Next message: [Python-Dev] A type of out-of-range exception for %c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sun, 23 Jun 2013 21:59:37 +0300 Serhiy Storchaka <storchaka at gmail.com> wrote:
Currently %c formatting raises OverflowError if an argument is out of range.
>>> '%c' % 1114112 Traceback (most recent call last): File "", line 1, in OverflowError: %c arg not in range(0x110000) >>> '{:c}'.format(1114112) Traceback (most recent call last): File "", line 1, in OverflowError: %c arg not in range(0x110000) The same for PyUnicodeFormat(), PyUnicodeFromFromat() and PyUnicodeFromFromatV() in C API. But chr() raises ValueError. >>> chr(1114112) Traceback (most recent call last): File "", line 1, in ValueError: chr() arg not in range(0x110000) And ValueError looks more suitable, because it is not really an overflow (limitation of the C language, or a C type). Can we change an exception type for %c formatting from OverflowError to ValueError?
Well, it overflows the limited range of the "unicode character" type (which is virtual in both Python and C, but still conceptually exists).
The most annoying thing here is that OverflowError doesn't subclass ValueError.
Regards
Antoine.
- Previous message: [Python-Dev] A type of out-of-range exception for %c
- Next message: [Python-Dev] A type of out-of-range exception for %c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]