Decorators and buffer flushing

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Thu Feb 28 18:53:28 EST 2008


En Thu, 28 Feb 2008 18:04:38 -0200, Ethan Metsger <emetsger at obj-sys.com>  
escribió:

> On Thu, 28 Feb 2008 14:48:55 -0500, <castironpi at gmail.com> wrote:
>
>> Can you reproduce the bug on the console?  Or, try starting with a new
>> line in the output.  Or, try a input().
>
> I can reproduce the issue in the console.  I'm not convinced it's  
> actually
> a bug, unless for some reason the interpreter is preventing a buffer  
> flush.

Try starting the interpreter with python -u xxx.py (-u = unbuffered) but I  
don't really think this might be the cause. Are you sure the code actually  
says sys.stdout.flush() and not sys.stdout.flush?

>        sys.stdout.write ("%s" % (self.name.ljust(30),))

Usually written as:
sys.stdout.write("%-30s" % self.name)

And instead of:

   if xxx is True:
     ...

use:

   if xxx:
     ...

> Is it possible that flushing is prohibited until __exit__ is called?

I don't think so... What's your platform/OS?
Try to post a minimal example showing the problem - copy & paste it, don't  
retype. Maybe in the process of reducing your code to find the minimal  
example, you find the problem yourself.

Are you aware of the existing framework for unit tests? the unittest  
module?

-- 
Gabriel Genellina




More information about the Python-list mailing list