ty ty, 28.06.2010 08:16:
I'm writing wrapper for C library. This library consist of several
parts. And i want split my extension package into different extension
modules. I think, this is the right way ;-)

Depends. If it's somewhat large or deals with sufficiently distinct functionality, it might be worth doing.


But, there are some common
parts that exist in extension package, get_library_version, Error, and
so on. I've decided to create additional module, named core, where these
routines and variables are defined.

Is that supposed to be used by Python code or internally by your modules? If it's the latter, I'd just write a plain C module and link it into each of the extension modules that use it. Otherwise, a common utility module might be ok, but I don't know anything about your real code that would suggest either way. You may also consider taking both approaches, i.e. write a linked-in module and a public Python wrapper around it.


And when get_library_version, for
example, is used by programmer, Error, in opposite, is used by routines
in another modules. As i mentioned in ( above mail), i use create_error
for adding new exception class with neccessary fields. Now i call
create_error in initcore function, which initialize core module. But, if
i don't import package.core, and only import package.module, when
package.module.function fails , python's runtime throws error

Obviously. Just make sure you always import your core module first. If it defines something as basic as the main error class (assuming that's what you meant with "Error"), I'd make that the very first thing in the init function.

You might also want to take a look at Cython. It's a Python dialect that makes writing extension modules easy, so if you have a lot of C code to wrap, it'll help you get it done substantially faster than in plain C code.

Stefan

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to