You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ cat test.jsonnet
[ "test%d" % "3" ]
$ sjsonnet test.jsonnet
[
"test3"
]
$ jsonnet test.jsonnet
RUNTIME ERROR: Format required number at 0, got string
<std>:(588:11)-(589:47) function <format_code>
<std>:715:15-60 thunk <s> from <function <format_codes_arr>>
<std>:720:24-25 thunk from <thunk <s_padded> from <function <format_codes_arr>>>
<std>:480:30-33 thunk from <thunk from <function <pad_left>>>
<std>:480:19-34 thunk from <function <pad_left>>
<std>:476:11-12 thunk from <function <padding>>
<std>:472:12-13 function <aux>
<std>:476:7-17 function <padding>
<std>:480:7-38 function <pad_left>
<std>:720:15-39 thunk <s_padded> from <function <format_codes_arr>>
<std>:726:55-63 thunk from <function <format_codes_arr>>
<std>:726:11-64 function <format_codes_arr>
<std>:774:7-48 function <anonymous>
<std>:237:7-23 function <anonymous>
test.jsonnet:1:3-17
During manifestation
So the reference implementation issues an error while sjsonnet accepts the input.
The function std.mod(a, b) is what the % operator is desugared to. It performs modulo arithmetic if the left hand side is a number, or if the left hand side is a string, it does Python-style string formatting with std.format().
Python issues an error as well:
python -c "'test%d' % '3'"
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: %d format: a real number is required, not str
The text was updated successfully, but these errors were encountered:
See the following reproducer:
So the reference implementation issues an error while
sjsonnet
accepts the input.According to the reference:
Python issues an error as well:
The text was updated successfully, but these errors were encountered: