3 def remote_object_tree_item(item
):
4 wrapper
= WrappedObjectTreeItem(item
)
6 rpc
.objecttable
[oid
] = wrapper
9 class WrappedObjectTreeItem
:
10 # Lives in PYTHON subprocess
12 def __init__(self
, item
):
15 def __getattr__(self
, name
):
16 value
= getattr(self
.__item
, name
)
19 def _GetSubList(self
):
20 list = self
.__item
._GetSubList
()
21 return map(remote_object_tree_item
, list)
23 class StubObjectTreeItem
:
24 # Lives in IDLE process
26 def __init__(self
, sockio
, oid
):
30 def __getattr__(self
, name
):
31 value
= rpc
.MethodProxy(self
.sockio
, self
.oid
, name
)
34 def _GetSubList(self
):
35 list = self
.sockio
.remotecall(self
.oid
, "_GetSubList", (), {})
36 return [StubObjectTreeItem(self
.sockio
, oid
) for oid
in list]