<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr">Hi everyone,<div><br></div><div>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.</div><div><br></div><div>There's a call to write_on_root() that's failing with the error</div><div><br></div><div><i>AttributeError: 'builtin_function_or_method' object has no attribute 'StringIO'</i><br></div><div><br></div><div>Looking at the definition for write_on_root() in parallel_analysis_interface.py, I see that the offending line is:</div><div><br></div><div><i>return cStringIO.StringIO()</i><br></div><div><br></div><div>So apparently there's no function called StringIO(), even though the documentation for cStringIO says there should be.</div><div><br></div><div>I think the issue is how cStringIO is being imported:</div><div><i>from yt.extern.six.moves import cStringIO</i><br></div><div><br></div><div>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.</div><div><br></div><div>Does anyone have any thoughts on this?</div><div><br></div><div>Thanks,</div><div><br></div><div>Daniel</div></div>