numeric_formats.py
43 lines
| 1.2 KiB
| text/x-python
|
PythonLexer
fperez
|
r0 | # -*- coding: utf-8 -*- | ||
""" | ||||
Extension for printing Numeric Arrays in flexible ways. | ||||
""" | ||||
fperez
|
r32 | from Numeric import ArrayType | ||
fperez
|
r0 | def num_display(self,arg): | ||
"""Display method for printing which treats Numeric arrays specially. | ||||
""" | ||||
# Non-numpy variables are printed using the system default | ||||
if type(arg) != ArrayType: | ||||
self._display(arg) | ||||
return | ||||
# Otherwise, we do work. | ||||
format = __IPYTHON__.runtime_rc.numarray_print_format | ||||
print 'NumPy array, format:',format | ||||
# Here is where all the printing logic needs to be implemented | ||||
print arg # nothing yet :) | ||||
def magic_format(self,parameter_s=''): | ||||
"""Specifies format of numerical output. | ||||
This command is similar to Ocave's format command. | ||||
""" | ||||
valid_formats = ['long','short'] | ||||
if parameter_s in valid_formats: | ||||
self.runtime_rc.numarray_print_format = parameter_s | ||||
print 'Numeric output format is now:',parameter_s | ||||
else: | ||||
print 'Invalid format:',parameter_s | ||||
print 'Valid formats:',valid_formats | ||||
# setup default format | ||||
__IPYTHON__.runtime_rc.numarray_print_format = 'long' | ||||
# Bind our new functions to the interpreter | ||||
__IPYTHON__.__class__.magic_format = magic_format | ||||
__IPYTHON__.hooks.display = num_display | ||||