/usr/share/pyshared/scitools/numpytools.p.py is in python-scitools 0.9.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | """
%s
%s
"""
import os, sys, operator, math
# copied into this file by preprocess.py:
# #include "_numpyload.py"
# #include "numpyutils.py"
#---- build doc string from _numpyload/util doc strings ----
import _numpyload as _load
_load.__doc__ += """
Example on what gets imported
-----------------------------
(basic_NumPy holds the name of the Numeric
Python module after import of numpytools (or _numpyload):
# default:
unix/DOS> python -c "from numpytools import *; print basic_NumPy"
numpy
# set the NUMPYARRAY environment variable:
unix/DOS> python -c "import os; os.environ['NUMPYARRAY']='Numeric'; from numpytools import *; print basic_NumPy"
Numeric
# import a Numerical Python module (precedence over NUMPYARRAY variable):
unix/DOS> python -c "import numpy; import os; os.environ['NUMPYARRAY']='Numeric'; from numpytools import *; print basic_NumPy"
numpy
# add flag on the command line (precedence over import):
unix/DOS> python -c "import numpy; import os; os.environ['NUMPYARRAY']='Numeric'; from numpytools import *; print basic_NumPy" --numarray
numarray
"""
import numpyutils as _utils
# insert numpyutils and _numpyload documentation into the
# doc string of this numpytools module:
__doc__ = __doc__ % (_load.__doc__, _utils.__doc__)
# clean up:
# import numpyutils may import numpy and we remove this entry
# in sys.modules
if basic_NumPy != 'numpy':
if 'numpy' in sys.modules:
del sys.modules['numpy']
del _load, _utils
#---------
if __name__ == '__main__':
def _doctest():
import doctest, numpytools
return doctest.testmod(numpytools)
def verify(N, namecheck = ['fft','mlab','ma','ra','la']):
"""
Verify that some packages imported by numpytools
works for Numeric, numarray, or numpy.
"""
print "\nUsing %s in %s" % (N.basic_NumPy, N.__name__)
for name in namecheck:
if hasattr(N, name):
print "%s.%s : %s " % (
N.__name__,
name,
eval("N.%s.__name__" % name))
print ""
def _test1():
"""Call verify function for N as Numeric, numarray, and numpy."""
sys.argv.append('--Numeric')
import numpytools as N
verify(N)
sys.argv[-1] = '--numarray'
reload(N)
verify(N)
sys.argv[-1] = '--numpy'
reload(N)
verify(N)
#_test1()
#test_ArrayGen()
#_doctest() # does not work properly with wrap2callable
# Test meshgrid function
import unittest
import numpytools as N
class numpytoolsTest(unittest.TestCase):
def setUp(self):
pass
def testMeshgrid(self):
#print 'testing Meshgrid'
x = N.arange(10)
y = N.arange(4)
z = N.arange(3)
X, Y, Z = N.meshgrid(x, y, z, sparse=False)
assert N.rank(X) == 3
def testMeshgrid_DenseFromMixedArrayTypes(self):
# Other combination of arrays
#print 'testing Meshgrid with mixed array implementations'
y = N.arange(4)
z = N.arange(3)
import Numeric
x = Numeric.arange(10)
X, Y, Z = N.meshgrid(x, y, z, sparse=False)
if not N.rank(X) == 3:
raise AssertionError(
"Meshgrid failed with arraytype mix of Numeric and %s"\
%N.basic_NumPy)
import numarray
x = numarray.arange(10)
X, Y, Z = N.meshgrid(x, y, z, sparse=False)
if not N.rank(X) == 3:
raise AssertionError(
"Meshgrid failed with arraytype mix of numarray and %s"\
%N.basic_NumPy)
import numpy
x = numpy.arange(10)
X, Y, Z = N.meshgrid(x, y, z, sparse=False)
#assert N.rank(X) == 3
if not N.rank(X) == 3:
raise AssertionError(
"Meshgrid failed with arraytype mix of numpy and %s"\
%N.basic_NumPy)
def testMeshGrid_DenseFromNodenseMeshgridOutput(self):
# sparse fails for dense output when input has singleton dimensions
x = seq(-2,2,0.1)
y = seq(-4,4,1)
xx, yy = meshgrid(x,y) # xx and yy now has singleton dimension
self.assertEqual(rank(xx), 2)
self.assertEqual(rank(yy), 2)
self.assertEqual(multiply.reduce(xx.shape), size(xx))
self.assertEqual(multiply.reduce(yy.shape), size(yy))
# This one should fail when xx and yy is not flat as well
xx, yy = meshgrid(xx.flat, yy.flat, sparse=False) # no singleton
self.assertEqual(shape(xx), (size(y), size(x)))
self.assertEqual(shape(yy), (size(y), size(x)))
xx, yy = meshgrid(x,y) # Add singleton dimensions
xx, yy = meshgrid(xx, yy, sparse=False)
self.assertEqual(shape(xx), (size(y), size(x)))
self.assertEqual(shape(yy), (size(y), size(x)))
#from IPython.Shell import IPythonShellEmbed as magic
#magic()('from unittest')
sys.argv.append('') # extra argument for the test below
for arg in ['--Numeric', '--numarray', '--numpy']:
try:
__import__(arg[2:])
except:
print "You don't have %s installed" %arg[2:]
continue
sys.argv[-1] = arg
print '\nNow testing with system arg %10s\n%s' %(arg, '='*38)
print N, dir(N)
reload(N); verify(N)
suite = unittest.makeSuite(numpytoolsTest)
unittest.TextTestRunner(verbosity=2).run(suite)
|