Wolfgang Maier added the comment:
the new test:
test_exc('%x', '1', TypeError, %x format: a number is required, not str)
expects the wrong error message.
python -m unittest -v test.test_format
...
'%x' % '1' works? ... no
Unexpected class 'TypeError' : '%x format: an integer is required,
Roundup Robot added the comment:
New changeset 11e6986c794d by Serhiy Storchaka in branch 'default':
Issue #23466: Fixed expected error message in test_format.
https://hg.python.org/cpython/rev/11e6986c794d
--
___
Python tracker
Serhiy Storchaka added the comment:
Good catch, Wolfgang!
Definitely we should make test_format more unittest compatible.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23466
___
Serhiy Storchaka added the comment:
Here is a patch that makes bytes formatting raise an OverflowError if integer
argument of %c is out of range.
--
Added file: http://bugs.python.org/file38812/bytes_format_overflow.patch
___
Python tracker
STINNER Victor added the comment:
b'%c' is still raising a TypeError. The error message is fine (%c requires
an integer in range(256) or a single byte) but it should be an OverflowError
for backwards compatibility.
I don't understand why you care so much on the exact exception. It doesn't
Serhiy Storchaka added the comment:
See also issue18184.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23466
___
___
Python-bugs-list mailing
Changes by Serhiy Storchaka storch...@gmail.com:
--
resolution: - fixed
stage: patch review - resolved
status: open - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23466
___
Ethan Furman added the comment:
Looks good, thanks Serhiy.
--
stage: needs patch - patch review
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23466
___
Roundup Robot added the comment:
New changeset 313fd1c819c5 by Serhiy Storchaka in branch 'default':
Issue #23466: Raised OverflowError if %c argument is out of range.
https://hg.python.org/cpython/rev/313fd1c819c5
--
___
Python tracker
Ethan Furman added the comment:
It's a new feature for 3.5 that is partly responsible for compatibility with
2.7 code.
2.7 raises Overflow error, so 3.5 should also (for out of range values -- wrong
value types raise TypeError).
--
___
Python
Ethan Furman added the comment:
b'%c' is still raising a TypeError. The error message is fine (%c requires an
integer in range(256) or a single byte) but it should be an OverflowError for
backwards compatibility.
--
resolution: fixed -
stage: resolved - needs patch
status: closed -
Serhiy Storchaka added the comment:
OverflowError is for platform limitations (such as the size of machine word or
addressed space). When limits are well defined and platform-independent,
ValueError or may be TypeError are considered as better types. It would be
better to change OverflowError
Changes by Serhiy Storchaka storch...@gmail.com:
--
assignee: - serhiy.storchaka
resolution: - fixed
stage: patch review - resolved
status: open - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23466
Roundup Robot added the comment:
New changeset cb96fd376baa by Serhiy Storchaka in branch 'default':
Issue #23466: %c, %o, %x, and %X in bytes formatting now raise TypeError on
https://hg.python.org/cpython/rev/cb96fd376baa
--
nosy: +python-dev
___
Ethan Furman added the comment:
Patch looks good.
Changing the raised exceptions to ValueError would require deprecation periods.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23466
___
STINNER Victor added the comment:
Changing the raised exceptions to ValueError would require deprecation
periods.
bytes%args is not a new feature of python 3.5? It sounds strange to
deprecate a part of a new feature.
--
___
Python tracker
STINNER Victor added the comment:
The patch looks good to me, except of a question added on the review.
--
nosy: +haypo
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23466
___
Serhiy Storchaka added the comment:
Ethan?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23466
___
___
Python-bugs-list mailing list
Serhiy Storchaka added the comment:
Here is a patch.
The difference between string and bytes formatting is that %c with out of the
range integer raises OverflowError for str and TypeError for bytes. May be
ValueError is more suitable in both cases.
--
keywords: +patch
stage: - patch
Changes by STINNER Victor victor.stin...@gmail.com:
--
title: Inconsistency between str and bytes formatting of integers - PEP 461:
Inconsistency between str and bytes formatting of integers
___
Python tracker rep...@bugs.python.org
20 matches
Mail list logo