Submodules in dynamic modules?

Martin Sjögren martin at strakt.com
Thu Jul 26 16:13:34 CEST 2001


On Thu, Jul 26, 2001 at 09:59:47AM -0400, Steven D. Majewski wrote:
> 
> 
> On Thu, 26 Jul 2001, Martin Sjgren wrote:
> 
> > Is there a standardized way to use submodules in a dynamic module written
> > in C? I have a module (foo) that should have a few submodules in it, foo
> > by itself won't contain much at all, but it's nice to group things up in
> > submodules, so I could do
> > 
> > from foo import bar
> > 
> > or
> > 
> > from foo import bar, baz
> > 
> > The way I'm doing it right now is that I've more or less copied the source
> > code from Py_InitModule4() to set things up, and then insert the module
> > object into the dictionary.
> 
> I don't know if there's a standard way and I don't know if it's better,
> but what I have done is to define the macro:
> 
> #define ADD_MODULE(x)     if (-1 == \
>     PyModule_AddObject( m, (x), PyImport_ImportModule((x))))  return NULL
> 
> 
> And in Carbonmodule.c (for MacOSX) where I have a whole bunch of these
> submodules, I have:
> 
>    m = Py_InitModule("Carbon",CarbonMethods );
> 
>    (void) initWin();
>    ADD_MODULE("Win");
>    (void) initMenu();
>    ADD_MODULE("Menu");
>    (void) initEvt();
>    ADD_MODULE("Evt");
>    (void) initDlg();
>    ADD_MODULE("Dlg");

[snip]

I'm not sure we're talking about the same thing here.  I don't want to
import other Python modules, I want to have several submodules in my one C
library file (foomodule.so on unix).  I guess I COULD have several .so
files and import them like you do here, but that would be unnecessarily
complicated!

Thanks for your input anyway. :)

Martin

-- 
Martin Sjögren
  martin at strakt.com              ICQ : 41245059
  Phone: +46 (0)31 405242        Cell: +46 (0)739 169191
  GPG key: http://www.strakt.com/~martin/gpg.html




More information about the Python-list mailing list