<s>[INST] Disable output buffering Is output buffering enabled by default in Python's interpreter for sys.stdout?
If the answer is positive, what are all the ways to disable it?
Suggestions so far:

Use the -u command line switch
Wrap sys.stdout in an object that flushes after every write
Set PYTHONUNBUFFERED env var
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

Is there any other way to set some global flag in sys/sys.stdout programmatically during execution?
 [/INST] From Magnus Lycka answer on a mailing list:

You can skip buffering for a whole
  python process using "python -u" 
  (or#!/usr/bin/env python -u etc) or by
  setting the environment variable
  PYTHONUNBUFFERED.
You could also replace sys.stdout with
  some other stream like wrapper which
  does a flush after every call.
class Unbuffered(object):
   def __init__(self, stream):
       self.stream = stream
   def write(self, data):
       self.stream.write(data)
       self.stream.flush()
   def __getattr__(self, attr):
       return getattr(self.stream, attr)

import sys
sys.stdout = Unbuffered(sys.stdout)
print 'Hello'


 </s>