[pypy-commit] pypy py3.6: turn UnicodeError while converting to decimal into ValueError, correct message
mattip
pypy.commits at gmail.com
Mon Feb 18 10:07:49 EST 2019
Author: Matti Picus <matti.picus at gmail.com>
Branch: py3.6
Changeset: r96066:51e9bde8332f
Date: 2019-02-18 15:06 +0200
http://bitbucket.org/pypy/pypy/changeset/51e9bde8332f/
Log: turn UnicodeError while converting to decimal into ValueError,
correct message
diff --git a/pypy/objspace/std/intobject.py b/pypy/objspace/std/intobject.py
--- a/pypy/objspace/std/intobject.py
+++ b/pypy/objspace/std/intobject.py
@@ -913,7 +913,12 @@
return _from_intlike(space, w_inttype, w_obj)
elif space.isinstance_w(w_value, space.w_unicode):
from pypy.objspace.std.unicodeobject import unicode_to_decimal_w
- b = unicode_to_decimal_w(space, w_value, allow_surrogates=True)
+ try:
+ b = unicode_to_decimal_w(space, w_value, allow_surrogates=True)
+ except Exception:
+ raise oefmt(space.w_ValueError,
+ 'invalid literal for int() with base 10: %R',
+ w_value)
return _string_to_int_or_long(space, w_inttype, w_value, b)
elif (space.isinstance_w(w_value, space.w_bytearray) or
space.isinstance_w(w_value, space.w_bytes)):
@@ -941,7 +946,12 @@
if space.isinstance_w(w_value, space.w_unicode):
from pypy.objspace.std.unicodeobject import unicode_to_decimal_w
- s = unicode_to_decimal_w(space, w_value, allow_surrogates=True)
+ try:
+ s = unicode_to_decimal_w(space, w_value, allow_surrogates=True)
+ except Exception:
+ raise oefmt(space.w_ValueError,
+ 'invalid literal for int() with base %d: %S',
+ base, w_value)
elif (space.isinstance_w(w_value, space.w_bytes) or
space.isinstance_w(w_value, space.w_bytearray)):
s = space.charbuf_w(w_value)
More information about the pypy-commit
mailing list