hi all, is it possible to use boost.python to define classes in a script (like in the one below), register the defined classes and later on create instances of the class?
from cd3 import * class MyNode(Node): def init(self, start, stop, dt): in_flow = Flow() self.addInPort(in_flow) def f(self, time, dt): return dt register_node(MyNode) registering of the class is working also instantiating the class. but it seems that when i call init(...) and f(...) afterwards the namespace and all imports are lost. so in_flow = Flow() raises an global name Flow undefined. The wrapping of Flow works on first execution. Is it possible to provide the same globals and locals to call_method so that Flow and other classes are defined? thanks in advance. gregor burger university of innsbruck the wrapped Node looks like this: struct NodeCallback : Node { NodeCallback(PyObject *p) : self(p) { Py_INCREF(self); } virtual ~NodeCallback() { Py_DECREF(self); } void init(int start, int stop, int dt) { call_method<void, int, int, int>(self, "init", start, stop, dt); } int f(int time, int dt) { return call_method<int, int, int>(self, "f", time, dt); } void addInPort(object o) { std::string name = extract<std::string>(o.attr("__name__")); std::cout << "adding in port " << name << std::endl; } PyObject *self; }; _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig