[IPython-dev] Python 3 on Windows

Thomas Kluyver takowl@gmail....
Thu Feb 2 10:25:41 CST 2012


On 2 February 2012 16:12, Daniel Griffith <daniel.dang.griffith@gmail.com>wrote:

> I ran "a = !ls" and tried to "print(a.nlstr)" to see the results, and it
> complained about having bytes instead of strings:
> "TypeError: sequence item 0: expected str instance, bytes found".
>
> The earlier stage would be in the "!" handler; I haven't looked at that
> code. I assume there are reasons it is putting
> bytes into the SList instead of strings. Maybe it should change instead? I
> don't know. I suppose that would depend
> on whether other code will assume that SList contains only strings and
> whether "!" is returning bytes.
>

That's the stage I'd look at - the code starts with the getoutput method
here:
https://github.com/ipython/ipython/blob/master/IPython/core/interactiveshell.py#L2093

The trouble with just calling str is that it doesn't always do what you
might expect, so if we've got bytes, it's better to decode them:

>>> str(b'abc')
"b'abc'"
>>> b'abc'.decode()  # ...but we need to work out the encoding
'abc'

Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/ipython-dev/attachments/20120202/37d976fb/attachment.html 


More information about the IPython-dev mailing list