Example #1
0
 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
Example #2
0
 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