Jim Bosch <talljimbo <at> gmail.com> writes: > > On Fri, 2010-03-19 at 19:55 +0000, Gennadiy Rozental wrote: > > I am doing something like this in export part of mymodule: > > > > scope S = class_<X>("X", no_init ); > > > > class_<Y>( "Y",... ) > > ... > > ; > > > > In Python I do see mymodule.X.Y, but mymodule.X.Y.__name__ is 'mymodule.Y' > > > > Hmm. In the same situation, I simply get mymodule.X.Y.__name__ == > 'Y' (and mymodule.X.__name__ == 'X') - no module prefixes at all. That > matches the pure-python inner class result, at least on my system.
You right. I got it wrong when reported the error. The problem, is that when I print mymodule.X.Y I am getting <class 'mymodule.Y'> which is wrong IMO > I do get mymodule.X.__module__ == 'mymodule' and mymodule.X.Y.__module__ > == 'mymodule', but that's also correct as far as mirroring the > pure-python inner class result. Well I hoped to mimic some kind of subnamespace with scope. Thus the module should be mymodule.X or the name should be X.Y > Note that you can change the __module__ attribute; I often import my > wrapped names into different submodules in a package and adjust their > __module__ accordingly to make a Python interface that mirrors the C++ > namespaces better - but all that has to be done in Python; boost python > can't do it for you (maybe Py++ could?) Can you show an example? I am currently tweaking this Python as well (post loading) like this: mymodule.X.Y.__name__ = 'X.Y' It's still not completely satisfactory, since help(mymodule.X) does not do the right job, but at least it does not show Y as 'mymodule.Y' Gennadiy _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig