[pypy-commit] buildbot default: remove numready from here

fijal noreply at buildbot.pypy.org
Mon Jan 23 23:42:08 CET 2012


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: 
Changeset: r612:fdaf7c879572
Date: 2012-01-24 00:41 +0200
http://bitbucket.org/pypy/buildbot/changeset/fdaf7c879572/

Log:	remove numready from here

diff --git a/bot2/pypybuildbot/builds.py b/bot2/pypybuildbot/builds.py
--- a/bot2/pypybuildbot/builds.py
+++ b/bot2/pypybuildbot/builds.py
@@ -339,6 +339,9 @@
                 )
             )
         pypy_c_rel = "../build/pypy/translator/goal/pypy-c"
+        self.addStep(ShellCmd(
+            description="measure numpy compatibility",
+            
         if postfix:
             addopts = ['--postfix', postfix]
         else:
diff --git a/numready.py b/numready.py
deleted file mode 100644
--- a/numready.py
+++ /dev/null
@@ -1,226 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-This should be run under PyPy.
-"""
-
-import platform
-import subprocess
-import sys
-import tempfile
-import webbrowser
-from collections import OrderedDict
-
-import jinja2
-
-
-MODULE_SEARCH_CODE = '''
-import types
-import {modname} as numpy
-
-for name in dir(numpy):
-    if name.startswith("_"):
-        continue
-    obj = getattr(numpy, name)
-    kind = "{kinds[UNKNOWN]}"
-    if isinstance(obj, types.TypeType):
-        kind = "{kinds[TYPE]}"
-    print kind, ":", name
-'''
-
-ATTR_SEARCH_CODE = '''
-import types
-import {modname} as numpy
-
-obj = getattr(numpy, "{name}")
-for name in dir(obj):
-    #if name.startswith("_"):
-    #    continue
-    sub_obj = getattr(obj, name)
-    kind = "{kinds[UNKNOWN]}"
-    if isinstance(sub_obj, types.TypeType):
-        kind = "{kinds[TYPE]}"
-    print kind, ":", name
-'''
-
-KINDS = {
-    "UNKNOWN": "U",
-    "TYPE": "T",
-}
-
-PAGE_TEMPLATE = u"""
-<!DOCTYPE html>
-<html lang="en">
-    <head>
-        <title>NumPyPy Status</title>
-        <meta http-equiv="content-type" content="text/html; charset=utf-8">
-        <style type="text/css">
-            body {
-                font-family: 'Consolas', 'Bitstream Vera Sans Mono', monospace;
-            }
-            h1 {
-                text-align: center;
-            }
-            h3 {
-                text-align: center;
-            }
-            table {
-                border: 8px solid #DFDECB;
-                margin: 30px auto;
-                font-size: 12px;
-            }
-            table th {
-                text-align: left;
-            }
-            table td {
-                padding: 4px 10px;
-                text-align: center;
-            }
-            .exists {
-                background-color: #337792;
-                color: white;
-                border: 1px solid #234F61;
-            }
-        </style>
-    </head>
-    <body>
-        <h1>NumPyPy Status</h1>
-        <h3>Overall: {{ msg }}</h3>
-        <table>
-            <thead>
-                <tr>
-                    <th></th>
-                    <th>PyPy</th>
-                    <th></th>
-                    <th>PyPy</th>
-                    <th></th>
-                    <th>PyPy</th>
-                    <th></th>
-                    <th>PyPy</th>
-                    <th></th>
-                    <th>PyPy</th>
-                </tr>
-            </thead>
-            <tbody>
-                {% for chunk in all_items %}
-                    <tr>
-                    {% for item in chunk %}
-                        <th class='{{ item.cls }}'>{{ item.name }}</th>
-                        <td class='{{ item.cls }}'>{{ item.symbol }}</td>
-                    {% endfor %} 
-                    </tr>
-                {% endfor %}
-            </tbody>
-        </table>
-    </body>
-</html>
-"""
-
-class SearchableSet(object):
-    def __init__(self, items=()):
-        self._items = {}
-        for item in items:
-            self.add(item)
-
-    def __iter__(self):
-        return iter(self._items)
-
-    def __contains__(self, other):
-        return other in self._items
-
-    def __getitem__(self, idx):
-        return self._items[idx]
-
-    def add(self, item):
-        self._items[item] = item
-
-    def __len__(self):
-        return len(self._items)
-
-class Item(object):
-    def __init__(self, name, kind, subitems=None):
-        self.name = name
-        self.kind = kind
-        self.subitems = subitems
-
-    def __hash__(self):
-        return hash(self.name)
-
-    def __eq__(self, other):
-        if isinstance(other, str):
-            return self.name == other
-        return self.name == other.name
-
-
-class ItemStatus(object):
-    def __init__(self, name, pypy_exists):
-        self.name = name
-        self.cls = 'exists' if pypy_exists else ''
-        self.symbol = u"&#10004;" if pypy_exists else u'&#10006;'
-
-    def __lt__(self, other):
-        return self.name < other.name
-
-def find_numpy_attrs(python, modname, name):
-    lines = subprocess.check_output(
-        [python, "-c", ATTR_SEARCH_CODE.format(modname=modname, kinds=KINDS, name=name)]
-    ).splitlines()
-    items = SearchableSet()
-    for line in lines:
-        kind, name = line.split(" : ", 1)
-        items.add(Item(name, kind))
-    return items
-
-def find_numpy_items(python, modname="numpy"):
-    lines = subprocess.check_output(
-        [python, "-c", MODULE_SEARCH_CODE.format(modname=modname, kinds=KINDS)]
-    ).splitlines()
-    items = SearchableSet()
-    for line in lines:
-        kind, name = line.split(" : ", 1)
-        subitems = None
-        if kind == KINDS["TYPE"]:
-            if name in ['ndarray', 'dtype']:
-                subitems = find_numpy_attrs(python, modname, name)
-        items.add(Item(name, kind, subitems))
-    return items
-
-def split(lst):
-    SPLIT = 5
-    lgt = len(lst) // SPLIT + 1
-    l = [[] for i in range(lgt)]
-    for i in range(lgt):
-        for k in range(SPLIT):
-            if k * lgt + i < len(lst):
-                l[i].append(lst[k * lgt + i])
-    return l
-
-def main(argv):
-    cpy_items = find_numpy_items("/usr/bin/python")
-    pypy_items = find_numpy_items(argv[1], "numpypy")
-    all_items = []
-
-    msg = '%d/%d names, %d/%d ndarray attributes, %d/%d dtype attributes' % (
-        len(pypy_items), len(cpy_items), len(pypy_items['ndarray'].subitems),
-        len(cpy_items['ndarray'].subitems), len(pypy_items['dtype'].subitems),
-        len(cpy_items['dtype'].subitems))
-    for item in cpy_items:
-        pypy_exists = item in pypy_items
-        if item.subitems:
-            for sub in item.subitems:
-                all_items.append(
-                    ItemStatus(item.name + "." + sub.name, pypy_exists=pypy_exists and pypy_items[item].subitems and sub in pypy_items[item].subitems)
-                )
-        all_items.append(ItemStatus(item.name, pypy_exists=item in pypy_items))
-    html = jinja2.Template(PAGE_TEMPLATE).render(all_items=split(sorted(all_items)), msg=msg)
-    if len(argv) > 2:
-        with open(argv[2], 'w') as f:
-            f.write(html.encode("utf-8"))
-    else:
-        with tempfile.NamedTemporaryFile(delete=False) as f:
-            f.write(html.encode("utf-8"))
-        print "Saved in: %s" % f.name
-
-if __name__ == '__main__':
-    main(sys.argv)


More information about the pypy-commit mailing list