src/lib/pythongen.ml: Fix InternalError(str(exception)) for Py3 #175
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Cc: @edwintorok, @MarkSymsCtx, @lindig
In
pythongen.ml
, fixreturn InternalError(str(exn)).failure()
:For Python3,
compat_block
definesstr = bytes
:The easy fix is to get a copy of
str
and use it to convertexn
tostr
:(Instead, we could also prepend
def get_str(a): return str(a)
, this is just shorter. It would be fine either way.)Without this fix,
str(Exception())
,compat_block
causes it to bebytes(Exception())
on Py3. This would raise aTypeError
becauseException
can't be converted tobytes
:Setting
get_str()
to bestr()
for Py2 and Py3 fixes it and gets astr
forInternalError.__init__(arg)
(which expects astr
value as argument).