Author: mattip <[email protected]>
Branch: 
Changeset: r75204:45f14b80454a
Date: 2015-01-02 09:30 +0200
http://bitbucket.org/pypy/pypy/changeset/45f14b80454a/

Log:    try harder to filter out NotImplementedError results for functions,
        None results for attributes also add capability to run alternative
        cpython for comparison and "usage" help

diff --git a/pypy/module/micronumpy/tool/numready/main.py 
b/pypy/module/micronumpy/tool/numready/main.py
--- a/pypy/module/micronumpy/tool/numready/main.py
+++ b/pypy/module/micronumpy/tool/numready/main.py
@@ -71,6 +71,10 @@
     lines = subprocess.check_output(args).splitlines()
     items = SearchableSet()
     for line in lines:
+        # since calling a function in "search.py" may have printed side 
effects,
+        # make sure the line begins with '[UT] : '
+        if not (line[:1] in KINDS.values() and line[1:4] == ' : '):
+            continue
         kind, name = line.split(" : ", 1)
         subitems = []
         if kind == KINDS["TYPE"] and name in SPECIAL_NAMES and attr is None:
@@ -97,7 +101,15 @@
                  "nditer"]
 
 def main(argv):
-    cpy_items = find_numpy_items("/usr/bin/python")
+    if 'help' in argv[1]:
+        print '\nusage: python', os.path.dirname(__file__), '<path-to-pypy> 
[<outfile.html>] [<path-to-cpython-with-numpy>]'
+        print '       path-to-cpython-with-numpy defaults to 
"/usr/bin/python"\n'
+        return 
+    if len(argv) < 4:
+        cpython = '/usr/bin/python'
+    else:
+        cpython = argv[3]
+    cpy_items = find_numpy_items(cpython)
     pypy_items = find_numpy_items(argv[1])
     ver = get_version_str(argv[1])
     all_items = []
diff --git a/pypy/module/micronumpy/tool/numready/search.py 
b/pypy/module/micronumpy/tool/numready/search.py
--- a/pypy/module/micronumpy/tool/numready/search.py
+++ b/pypy/module/micronumpy/tool/numready/search.py
@@ -23,6 +23,15 @@
         if attr is None and name.startswith("_"):
             continue
         subobj = getattr(obj, name)
+        if subobj is None:
+            continue
+        if isinstance(subobj, types.FunctionType):
+            try:
+                subobj()
+            except NotImplementedError:
+                continue
+            except:
+                pass
         if isinstance(subobj, types.TypeType):
             kind = KINDS["TYPE"]
         else:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to