Hi,<div><br></div><div>This works fine for a single array printing, but I want to be able to execute a script and have arrays printed in this form.</div><div><br></div><div>I think, its best to wait for Python 3 adaption, or adapt my scripts to Py3 in order to achieve this with the least amount of extra coding :)</div>
<div><br><div class="gmail_quote">On Sat, Nov 10, 2012 at 1:42 AM, Aaron Meurer <span dir="ltr">&lt;<a href="mailto:asmeurer@gmail.com" target="_blank">asmeurer@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Why not just use the regular IPython display hook, and not use print, i.e., just call the object like <div><br></div><div>In [1]: <span style="font-family:arial,sans-serif;font-size:13px">findgen(5)</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Out[1]:</span><span style="font-family:arial,sans-serif;font-size:13px">      0.00000      1.00000      2.00000      3.00000      4.00000</span></div>


<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">If you insist on using print, one option would be to just monkey-patch array.__str__.</span></div>
<span class="HOEnZb"><font color="#888888">

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Aaron Meurer</span></div></font></span><div class="HOEnZb"><div class="h5"><div>
<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">

On Sat, Nov 10, 2012 at 1:34 AM, Carl Smith <span dir="ltr">&lt;<a href="mailto:carl.input@gmail.com" target="_blank">carl.input@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Can you not redirect stdout to a method with something like...<br>
<br>
class StandardOut(object):<br>
<br>
    def __init__(self): pass<br>
<br>
    def write(self, string):<br>
        do_stuff()<br>
<br>
I&#39;m not sure if that&#39;ll work. Just thinking out loud really.<br>
<div><div><br>
On 10 November 2012 08:17, Thomas Kluyver &lt;<a href="mailto:takowl@gmail.com" target="_blank">takowl@gmail.com</a>&gt; wrote:<br>
&gt; The only thing I can think of is to hack an ast transformation into %run, to<br>
&gt; turn print statements into calls to a function you&#39;ve defined.<br>
&gt;<br>
&gt; The good news is that a lot of scientific python packages now support python<br>
&gt; 3.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Thomas<br>
&gt;<br>
&gt; On Nov 10, 2012 1:10 AM, &quot;Gökhan Sever&quot; &lt;<a href="mailto:gokhansever@gmail.com" target="_blank">gokhansever@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Thanks for the reply Thomas.<br>
&gt;&gt;<br>
&gt;&gt; I still use Python 2.7, along with all of the scientific Python stack.<br>
&gt;&gt;<br>
&gt;&gt; Do you think is there a simple way to modify IPython&#39;s &quot;run&quot; command so<br>
&gt;&gt; that output&#39;s pretty printed just like IPython shell?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Nov 9, 2012 at 2:28 AM, Thomas Kluyver &lt;<a href="mailto:takowl@gmail.com" target="_blank">takowl@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; In python 3, you can replace the builtin print function. I don&#39;t know of<br>
&gt;&gt;&gt; any way to modify the behaviour of print statements in python 2.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thomas<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Nov 9, 2012 6:59 AM, &quot;Gökhan Sever&quot; &lt;<a href="mailto:gokhansever@gmail.com" target="_blank">gokhansever@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hello,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I would like to be able print NumPy arrays matching the IDL&#39;s array<br>
&gt;&gt;&gt;&gt; print outout. For instance:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; IDL&gt; print, findgen(5)<br>
&gt;&gt;&gt;&gt;       0.00000      1.00000      2.00000      3.00000      4.00000<br>
&gt;&gt;&gt;&gt; IDL&gt; print, dindgen(5)<br>
&gt;&gt;&gt;&gt;        0.0000000       1.0000000       2.0000000       3.0000000<br>
&gt;&gt;&gt;&gt; 4.0000000<br>
&gt;&gt;&gt;&gt;        0.0000000       1.0000000       2.0000000       3.0000000<br>
&gt;&gt;&gt;&gt; 4.0000000<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I1 np.arange(5, dtype=&#39;float64&#39;)<br>
&gt;&gt;&gt;&gt; O1        0.0000000       1.0000000       2.0000000       3.0000000<br>
&gt;&gt;&gt;&gt; 4.0000000<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I2 np.arange(5, dtype=&#39;float32&#39;)<br>
&gt;&gt;&gt;&gt; O2       0.00000      1.00000      2.00000      3.00000      4.00000<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Ignoring O1 and O2 lines, outputs (formatting) are matching. I achieved<br>
&gt;&gt;&gt;&gt; this by defining some custom pprint formatters in the IPy config file.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; However, this is only valid within IPython while just typing array<br>
&gt;&gt;&gt;&gt; names. For instance, running these lines revert the printing settings back<br>
&gt;&gt;&gt;&gt; to normal.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Is there a way to make this type of customized printing default for<br>
&gt;&gt;&gt;&gt; executing a file via Python? ie., can we replace python&#39;s print statement<br>
&gt;&gt;&gt;&gt; with pprint?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; If not, should I edit numpy/core/arrayprint.py and use a pythonrc file<br>
&gt;&gt;&gt;&gt; to achieve the effect?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I am also interested in custom printing other data types than nd.arrays.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thanks.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; Gökhan<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; IPython-User mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:IPython-User@scipy.org" target="_blank">IPython-User@scipy.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; IPython-User mailing list<br>
&gt;&gt;&gt; <a href="mailto:IPython-User@scipy.org" target="_blank">IPython-User@scipy.org</a><br>
&gt;&gt;&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Gökhan<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; IPython-User mailing list<br>
&gt;&gt; <a href="mailto:IPython-User@scipy.org" target="_blank">IPython-User@scipy.org</a><br>
&gt;&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
&gt;&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; IPython-User mailing list<br>
&gt; <a href="mailto:IPython-User@scipy.org" target="_blank">IPython-User@scipy.org</a><br>
&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
&gt;<br>
_______________________________________________<br>
IPython-User mailing list<br>
<a href="mailto:IPython-User@scipy.org" target="_blank">IPython-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
IPython-User mailing list<br>
<a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Gökhan<br>
</div>