... > > > > I think if you've exposed your c++ class, then there is a conversion > > > from c++ object to python object. So > > > bp::object plugin (Plugin_Info()); >
> > Thanks -- I can indeed do that (or a proxy C++ class in any case). > > I > > was wondering though if it's possible to create an anonymous python > > class in BP, without a "starter" C++ class as it were. But I > > suppose that's mostly an academic question right now. Well, it turns out I really do want to do this without a predefined C++ class, or something like that. I want to have the C++ code be easily extensible, so I don't have to repeat myself too much when adding new attributes. I tried making the proxy C++ class and exposing it, but it's very verbose and hard to maintain. I switched to using a dict, and what I have now is almost there: static bp::list EXTget_effects() { bp::list effect_list; int n_effects = get_n_sapphire_effects(); for (int i = 0; i < n_effects; i++) { Plugin_Info *pinfo = get_plugin_info_i(i); bp::dict ppinfo; ppinfo["name"] = (std::string)pinfo->plugin_name; ppinfo["category"] = (std::string)pinfo->category; ppinfo["n_effects"] = (int)pinfo->n_effects; ppinfo["n_inputs"] = (int)pinfo->n_inputs; ppinfo["custom_p"] = (int)pinfo->custom_p; effect_list.append(ppinfo); } return effect_list; } So now it returns a python list of python dicts. All I want now is to override __getattr__ on each ppinfo dict so it returns the dict value as the attribute value, so in python I can reference effect_list[i].name instead of effect_list[i]['name']. Or any alternative way to get the same effect. Is that possible? -- Gary Oberbrunner _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org https://mail.python.org/mailman/listinfo/cplusplus-sig