def make_proxy_for_testing(self, obj): func_cls = type(obj) clsname = func_cls.__name__ modname = func_cls.__module__ methods = netref.inspect_methods(obj) proxy_cls = netref.make_proxy_class(clsname, modname, methods) new_function_oid = self.obj_id.__next__() oid = new_function_oid self.register_object(obj, oid) proxy_obj = proxy_cls(self, oid) return proxy_obj, proxy_cls
def _make_netref_instance(self, oid, clsname, modname): """ creation of proxy objects, we call netrefs First creates and instance of the proxy to act as the function or object or class or metaclass using the proxy instance creater BaseNetref then creates an instance of this and sets it's ___oid__ and ___conn__""" typeinfo = (clsname, modname) if typeinfo in self._netref_classes_cache: # previously created netref classes cls = self._netref_classes_cache[typeinfo] elif typeinfo in self._netref_proxy_builtin_cls: # pre created builtins netref classes cls = self._netref_proxy_builtin_cls[typeinfo] else: # build new netref class methods_tup = self.sync_request(global_consts.HANDLE_INSPECT, oid) cls = netref.make_proxy_class(clsname, modname, methods_tup) self._netref_classes_cache[typeinfo] = cls # add to previously created netref_instance = cls(conn=weakref.ref(self), oid=oid) return netref_instance # Here ___con__ and ___oid__ are set