1

I am using bpython for interactive Python sessions and since I updated my system I have the following problem:

In bpython3:

>>> import sys
>>> sys.stdout.flush
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'FakeStream' object has no attribute 'flush'

However, in Python3:

>>> import sys
>>> sys.stdout.flush
<built-in method flush of _io.TextIOWrapper object at 0x7fab6b7fb708>

The same for IPython3.

So why does sys.stdout not have the attribute flush in bpython3? I searched for the source code of the sys module, but couldn't find it. Nor could I find a sysmodule.c file or something like that. Doesn't bpython use the same code for this module as the other CLIs?

$ bpython3 --version
bpython version 0.12 on top of Python 3.4.2
(C) 2008-2012 Bob Farrell, Andreas Stuehrk et al. See AUTHORS for detail.

$ python3 --version
Python 3.4.2
the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Marius
  • 523
  • 4
  • 14

1 Answers1

4

It is a bug that was fixed in version 0.13.

Upgrading with pip3 install -U bpython should update to the latest stable release which includes the fix.

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Padraic Cunningham
  • 176,452
  • 29
  • 245
  • 321