[Numpy-svn] r6323 - in trunk/numpy/lib: . tests

numpy-svn@scip... numpy-svn@scip...
Wed Jan 14 01:56:31 CST 2009


Author: stefan
Date: 2009-01-14 01:56:10 -0600 (Wed, 14 Jan 2009)
New Revision: 6323

Modified:
   trunk/numpy/lib/getlimits.py
   trunk/numpy/lib/tests/test_getlimits.py
Log:
Fix finfo to work on all instances, not just NumPy scalars.

Modified: trunk/numpy/lib/getlimits.py
===================================================================
--- trunk/numpy/lib/getlimits.py	2009-01-14 07:55:16 UTC (rev 6322)
+++ trunk/numpy/lib/getlimits.py	2009-01-14 07:56:10 UTC (rev 6323)
@@ -88,6 +88,12 @@
     _finfo_cache = {}
 
     def __new__(cls, dtype):
+        try:
+            dtype = np.dtype(dtype)
+        except TypeError:
+            # In case a float instance was given
+            dtype = np.dtype(type(dtype))
+
         obj = cls._finfo_cache.get(dtype,None)
         if obj is not None:
             return obj
@@ -220,8 +226,11 @@
     _min_vals = {}
     _max_vals = {}
 
-    def __init__(self, type):
-        self.dtype = np.dtype(type)
+    def __init__(self, int_type):
+        try:
+            self.dtype = np.dtype(int_type)
+        except TypeError:
+            self.dtype = np.dtype(type(int_type))
         self.kind = self.dtype.kind
         self.bits = self.dtype.itemsize * 8
         self.key = "%s%d" % (self.kind, self.bits)
@@ -258,7 +267,7 @@
 
     def __str__(self):
         """String representation."""
-        return '''
+        return '''\
 Machine parameters for %(dtype)s
 ---------------------------------------------------------------------
 min = %(min)s

Modified: trunk/numpy/lib/tests/test_getlimits.py
===================================================================
--- trunk/numpy/lib/tests/test_getlimits.py	2009-01-14 07:55:16 UTC (rev 6322)
+++ trunk/numpy/lib/tests/test_getlimits.py	2009-01-14 07:56:10 UTC (rev 6323)
@@ -51,5 +51,9 @@
             assert_equal(iinfo(T).max, T(-1))
 
 
+def test_instances():
+    iinfo(10)
+    finfo(3.0)
+
 if __name__ == "__main__":
     run_module_suite()



More information about the Numpy-svn mailing list