Currently %c formatting raises OverflowError if an argument is out of range.

>>> '%c' % 1114112
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: %c arg not in range(0x110000)
>>> '{:c}'.format(1114112)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: %c arg not in range(0x110000)

The same for PyUnicode_Format(), PyUnicode_FromFromat() and PyUnicode_FromFromatV() in C API.

But chr() raises ValueError.

>>> chr(1114112)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
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?

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to