Add PyErr_WarnEx()
[pytest.git] / Lib / idlelib / RemoteObjectBrowser.py
blob6ba3391372bf10723ca8a8a901737b2e8e416a5f
1 import rpc
3 def remote_object_tree_item(item):
4 wrapper = WrappedObjectTreeItem(item)
5 oid = id(wrapper)
6 rpc.objecttable[oid] = wrapper
7 return oid
9 class WrappedObjectTreeItem:
10 # Lives in PYTHON subprocess
12 def __init__(self, item):
13 self.__item = item
15 def __getattr__(self, name):
16 value = getattr(self.__item, name)
17 return value
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):
27 self.sockio = sockio
28 self.oid = oid
30 def __getattr__(self, name):
31 value = rpc.MethodProxy(self.sockio, self.oid, name)
32 return value
34 def _GetSubList(self):
35 list = self.sockio.remotecall(self.oid, "_GetSubList", (), {})
36 return [StubObjectTreeItem(self.sockio, oid) for oid in list]