[Numpy-discussion] Exporting Numpy C functionality to other extension modules
Jack.Jansen at oratrix.com
Wed Jan 15 14:34:05 EST 2003
Actually, wrt my previous message on cobjects for communicating between
extension modules, we can do one better!
This is an idea I've been toying with for the MacPython extension
types, and I think it's applicable to Numeric too. It goes as follows.
Each Numeric object has an attribute with a well-known name, lets call
it "__Numeric_C_interface". This is a Cobject, and it is shared among
all Numeric objects of the same type. The value of this C object is a
pointer to a C structure with pointers to all the C routines you might
want to call on the object, basically the PyArray_API structure (I
think). The descr of the C object is a string with the version number
of this particular PyArray_API structure.
An extension module that knows about this protocol and gets passed an
object that it think might be a Numeric array checks whether the object
has an __Numeric_C_interface attribute. If so it retrieves it, checks
that it is a Cobject, gets the descriptor and tests it for
compatibility and if it is compatible gets the cobject pointer and
happily calls all the Numeric routines it needs.
- Jack Jansen <Jack.Jansen at oratrix.com>
- If I can't dance I don't want to be part of your revolution -- Emma
More information about the NumPy-Discussion