Python C module questions
Robert Kern
rkern at ucsd.edu
Thu Sep 1 14:37:34 EDT 2005
jeremy.d.brewer at gmail.com wrote:
> Hi,
>
> I'm rather new to Python, and I've just written my first Python C
> module. I was wondering if some more experience Pythonista would look
> over what I've written and given me some pointers (or find some bugs).
> I had a few questions while writing this as well.
>
> Also, I know that there are much better ways to compute nearest
> neighbors than the brute force n^2 method, but this is plenty fast for
> this application (at least the C version is).
>
> 1. How do I add docstrings to my module?
You mean a docstring on the module object itself? In initmodule() make a
string object with the contents of the docstring and assign it to
module.__doc__ . There might be a more idiomatic way, but I can't think
of it without trawling through the docs.
> 2. The Python reference counting and memory managment seemes awfully
> repetetive and error prone. Is there a nicer way of doing this? I
> know there are some wrappers out there such as Pyrex and SWIG that
> might prove useful.
I'm quite a fan of Pyrex. You may also want to give ctypes a shot. SWIG
doesn't help as much with the reference counting
> 3. This module consisted of turning 4 Python sequences into C double
> arrays, performing some calculations, and then turning a C int array
> into a Python tuple for return. And it was a lot of work. Are there
> any nice wrapper functions out there for turning Python sequences into
> C arrays and vice versa?
http://numeric.scipy.org
> Thanks,
> Jeremy Brewer
>
> The code is below:
You probably shouldn't post such large pieces of code to the list.
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the Python-list
mailing list