On Jul 2, 2009, at 8:39 PM, Tim Hoffman wrote:
Hi all
Can I make a suggestion that would make a couple of modules more gae friendly ;-) zope.interface and zope.i18nmessageid have 'c' optimisations which obviously don't work under app engine.
When these modules are imported you get the following exception.
gae/1.333250465889549129/zope/i18nmessageid/ _zope_i18nmessageid_message.py", line 6, in __bootstrap__ imp.load_dynamic(__name__,__file__) File "/base/python_dist/lib/python2.5/py_imp.py", line 116, in load_dynamic raise NotImplementedError('This function is not supported on App Engine.')
This bootstrapping code is generated by setuptools to deal with loading extension modules in zip files. It does some unholy things to make this work. I'd really like to find a way to suppress this. In general, I find deploying as zip files to be an anti-feature. In seems especially insane when extension modules are involved.
Unfortunately the code (in this case in zope.i18nmessageid.Message) does the following which doesn't deal with the Exception raised by the app engine runtime.
You mean with the exception raised by the setuptools wrapper code.
try: from _zope_i18nmessageid_message import Message except ImportError: pass
To make it more "gae friendly" I think we should change these occurrences to
try: from _zope_i18nmessageid_message import Message except ImportError, NotImplementedError: pass
This might be an ok work around. How hard would it be to just remove the wrapper script when deploying to app engine? Jim -- Jim Fulton Zope Corporation