py: Raise TypeError when trying to format non-int with %x,%o,%X.
This behaviour follows Python 3.5 standard (in 3.4 it's a DeprecationWarning which we'd rather make a TypeError).
This commit is contained in:
parent
f675ff3957
commit
d4c2bddd0c
|
@ -1273,7 +1273,7 @@ not_enough_args:
|
||||||
if (alt) {
|
if (alt) {
|
||||||
flags |= (PF_FLAG_SHOW_PREFIX | PF_FLAG_SHOW_OCTAL_LETTER);
|
flags |= (PF_FLAG_SHOW_PREFIX | PF_FLAG_SHOW_OCTAL_LETTER);
|
||||||
}
|
}
|
||||||
pfenv_print_mp_int(&pfenv_vstr, arg_as_int(arg), 1, 8, 'a', flags, fill, width);
|
pfenv_print_mp_int(&pfenv_vstr, arg, 1, 8, 'a', flags, fill, width);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'r':
|
case 'r':
|
||||||
|
@ -1296,7 +1296,7 @@ not_enough_args:
|
||||||
|
|
||||||
case 'X':
|
case 'X':
|
||||||
case 'x':
|
case 'x':
|
||||||
pfenv_print_mp_int(&pfenv_vstr, arg_as_int(arg), 1, 16, *str - ('X' - 'A'), flags | alt, fill, width);
|
pfenv_print_mp_int(&pfenv_vstr, arg, 1, 16, *str - ('X' - 'A'), flags | alt, fill, width);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -5,6 +5,12 @@ print("%d" % 1.0)
|
||||||
print("%i" % 1.0)
|
print("%i" % 1.0)
|
||||||
print("%u" % 1.0)
|
print("%u" % 1.0)
|
||||||
|
|
||||||
|
# these 3 have different behaviour in Python 3.x versions
|
||||||
|
# uPy raises a TypeError, following Python 3.5 (earlier versions don't)
|
||||||
|
#print("%x" % 18.0)
|
||||||
|
#print("%o" % 18.0)
|
||||||
|
#print("%X" % 18.0)
|
||||||
|
|
||||||
print("%e" % 1.23456)
|
print("%e" % 1.23456)
|
||||||
print("%E" % 1.23456)
|
print("%E" % 1.23456)
|
||||||
print("%f" % 1.23456)
|
print("%f" % 1.23456)
|
||||||
|
|
Loading…
Reference in New Issue