ENH: Explicitly specify write_text encoding format #3508
Merged
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.
When writing reports from nipype the write_text
function could default to using 'ascii' coding
for writing the report. This would fail if any
part of the report tried to generate a unicode
character.
The issue was encountered when the OS environmental variable "PS1" had a non-ascii character in the
environmental variable.
The result was a failure of the nipype pipeline
from running due to an exception being thrown
while trying to write the debugging information.
Summary
Fixes #2942.
List of changes proposed in this PR (pull-request)
Explicitly request writing files with utf-8 encoding. This is particularly important for writing reports that capture information from the environment when the environment could contain unicode characters.
NOTE: The 8882'nd character is encountered while trying to print the PS1 environmental variable : ➜
Forcing
resolves the failed problem. I have no idea why the
io.open()
is defaulting to encoding='ascii'.