[pypy-svn] rev 689 - pypy/trunk/src/pypy/objspace/std
tismer at codespeak.net
tismer at codespeak.net
Thu May 29 16:58:30 CEST 2003
Author: tismer
Date: Thu May 29 16:58:30 2003
New Revision: 689
Modified:
pypy/trunk/src/pypy/objspace/std/listobject.py
Log:
list.index works
Modified: pypy/trunk/src/pypy/objspace/std/listobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/listobject.py (original)
+++ pypy/trunk/src/pypy/objspace/std/listobject.py Thu May 29 16:58:30 2003
@@ -40,6 +40,9 @@
def remove(w_self, w_any):
return list_remove(w_self.space, w_self, w_any)
+ def index(w_self, w_any):
+ return list_index(w_self.space, w_self, w_any)
+
def list_unwrap(space, w_list):
items = [space.unwrap(w_item) for w_item in w_list.ob_item[:w_list.ob_size]]
return list(items)
@@ -199,6 +202,9 @@
if space.is_true(space.eq(w_attr, space.wrap('remove'))):
w_builtinfn = make_builtin_func(space, W_ListObject.remove)
return W_InstMethObject(space, w_list, w_builtinfn)
+ if space.is_true(space.eq(w_attr, space.wrap('index'))):
+ w_builtinfn = make_builtin_func(space, W_ListObject.index)
+ return W_InstMethObject(space, w_list, w_builtinfn)
raise FailedToImplement(space.w_AttributeError)
StdObjSpace.getattr.register(getattr_list, W_ListObject, W_ANY)
@@ -338,6 +344,17 @@
raise OperationError(space.w_IndexError,
space.wrap("list.remove(x): x not in list"))
+def list_index(space, w_list, w_any):
+ eq = space.eq
+ items = w_list.ob_item
+ for i in range(w_list.ob_size):
+ cmp = eq(items[i], w_any)
+ if space.is_true(cmp):
+ return space.wrap(i)
+ raise OperationError(space.w_ValueError,
+ space.wrap("list.index(x): x not in list"))
+
+
"""
static PyMethodDef list_methods[] = {
{"append", (PyCFunction)listappend, METH_O, append_doc},
More information about the Pypy-commit
mailing list