Hi,
Zack Schilling has the distinction of being the first Pygame developer
to use py2app/py2exe to wrap a game using NumPy. Before that no one
noticed bufferproxy was missing.
So where to generate the import errors. bufferproxy is not critical to
surface unless some other module needs a surface buffer. Either
Surface.get_buffer can check for NULL pointers and raise an
NotImplementedError if bufferproxy is missing or bufferproxy is made a
requirement for surface to import properly. The former option could save
a little space if array packages are not used, but is potentially
confusing. Since buffers may be used elsewhere I prefer the later option
myself.
A missing surflock already raises an ImportError. So for the surface
module that leaves base, rect and color.
I suppose another possibly overlooked module is rwobject. That will need
to be investigated as well.
Lenard
René Dudfield wrote:
ah yes, good one.
On Wed, Feb 4, 2009 at 2:07 PM, Lenard Lindstrom <[email protected]> wrote:
Simple. The bufferproxy module is not included in the executables. I would
also check for surflock.
The moral of the story, when critical modules are missing, they should not
be quietly ignored. An exception has to be raised. Brian Fisher did this
with _numericsurfarray when Numeric is missing. It simply fails to import. I
did the same for _numericsndarray. Now it needs to be done for Pygame
extention modules that rely on other Pygame modules.
--
Lenard Lindstrom
<[email protected]>