I've been working here and there on making the two point functions compatible with yt 3. I've run into an issue with the file i/o that's got me puzzled.
There's a call to write_on_root() that's failing with the error
AttributeError: 'builtin_function_or_method' object has no attribute 'StringIO'
Looking at the definition for write_on_root() in parallel_analysis_interface.py, I see that the offending line is:
So apparently there's no function called StringIO(), even though the documentation for cStringIO says there should be.
I think the issue is how cStringIO is being imported:
from yt.extern.six.moves import cStringIO
Looking through yt/extern/six.py, it looks like it's modifying how the modules are imported, or something like that, but I can't really figure out what's going on in that file.
Does anyone have any thoughts on this?