[IPython-User] Pretty print as default print function

Carl Smith carl.input@gmail....
Sat Nov 10 02:34:18 CST 2012


Can you not redirect stdout to a method with something like...

class StandardOut(object):

    def __init__(self): pass

    def write(self, string):
        do_stuff()

I'm not sure if that'll work. Just thinking out loud really.

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


More information about the IPython-User mailing list