Author: mattip <[email protected]>
Branch: object-dtype2
Changeset: r76898:cbba3abb9864
Date: 2015-04-23 10:52 +0300
http://bitbucket.org/pypy/pypy/changeset/cbba3abb9864/

Log:    add upstream compatible logic to allow True for 'foo' !=
        np.arange(3)[1] in a shorcut hack

diff --git a/pypy/module/micronumpy/test/test_object_arrays.py 
b/pypy/module/micronumpy/test/test_object_arrays.py
--- a/pypy/module/micronumpy/test/test_object_arrays.py
+++ b/pypy/module/micronumpy/test/test_object_arrays.py
@@ -37,6 +37,11 @@
         assert (b == a).all()
         c = np.array([1, 2, 3])
         assert (a[0] != c[0])
+        assert (c[0] != a[0])
+        assert (a[0] > c[0])
+        assert (not a[0] < c[0])
+        assert (c[0] < a[0])
+        assert (not c[0] > a[0])
 
     def test_logical_ufunc(self):
         import numpy as np
diff --git a/pypy/module/micronumpy/ufuncs.py b/pypy/module/micronumpy/ufuncs.py
--- a/pypy/module/micronumpy/ufuncs.py
+++ b/pypy/module/micronumpy/ufuncs.py
@@ -441,8 +441,15 @@
         elif w_ldtype.is_str() and w_rdtype.is_str() and \
                 self.comparison_func:
             pass
-        elif (w_ldtype.is_str() or w_rdtype.is_str()) and \
+        elif (w_ldtype.is_str()) and \
                 self.comparison_func and w_out is None:
+            if self.name in ('equal', 'less_equal', 'less'):
+               return space.wrap(False)
+            return space.wrap(True) 
+        elif (w_rdtype.is_str()) and \
+                self.comparison_func and w_out is None:
+            if self.name in ('not_equal','less', 'less_equal'):
+               return space.wrap(True)
             return space.wrap(False)
         elif w_ldtype.is_flexible() or w_rdtype.is_flexible():
             if self.comparison_func:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to