<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
As you can see above, ipython&#39;s stdout is the bare python one.</blockquote><div><br>Yes&nbsp; -- I figured that out shortly after sending my first email ... <br>&nbsp;<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

problem is that your class is missing a ton of other attributes.<br>
</blockquote><div><br>Yes -- I figured this too.&nbsp; So in my last email to list two days ago I posted that I tried pretty much what you suggested:&nbsp; something catches all attributes except write and redirects them to the original stdout&#39;s attribute. &nbsp; (See below for the code).&nbsp; It also fails, in the same way.&nbsp;&nbsp; <br>
<br>Is the reason that it fails that I haven&#39;t been carefl enough in catching all attributes?&nbsp; Or have I done it right and something more subtle going on?&nbsp; (What exactly does ipython do when you input &quot;up&quot; or &quot;down&quot; arrows?) <br>
<br>Thanks,<br>Dan<br><br>=======CODE==============<br><br></div>class multicaster():<br>&nbsp;&nbsp;&nbsp; def __init__(self,filename,OldObject,New=False):<br><div><div class="Ih2E3d">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self.file = filename<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; self.old = OldObject<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if New:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; F = open(filename,&#39;w&#39;)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; F.write(&#39;\n\n----------------------------------------------------------------------------------------------------------- -------------------------------------------\n&#39;)<br>


&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; F.write(&#39;STARTING LOG: &#39; + time.strftime(&#39;%c %Z&#39;) + &#39;\n&#39;)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; F.write(&#39;------------------------------------------------------------------------------------------------------------------------------------------------------\n\n&#39;)<br>


&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; F.close()<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br></div>&nbsp;&nbsp;&nbsp; def __getattr__(self,name):<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if name != &#39;write&#39;:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return self.old.__getattribute__(name)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; def write(self,s):<br>
<div class="Ih2E3d">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; F = open(self.file,&#39;a&#39;)<br>

&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; F.write(s)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; F.close()&nbsp;&nbsp;&nbsp; <br></div>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return self.old.write(s)</div></div><br>