[Python-Dev] Choosing a best practice solution for Python/extension modules (original) (raw)
Brett Cannon brett at python.org
Sun Feb 22 01:56:48 CET 2009
- Previous message: [Python-Dev] Choosing a best practice solution for Python/extension modules
- Next message: [Python-Dev] Choosing a best practice solution for Python/extension modules
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sat, Feb 21, 2009 at 15:46, Aahz <aahz at pythoncraft.com> wrote:
On Sat, Feb 21, 2009, Brett Cannon wrote: > > I am seeing two approaches emerging. One is where pickle contains all > Python code and then uses something like useextension to make sure > the original Python objects are still reachable at some point. This > has the drawback that you have to use some function to make the > extensions happen and there is some extra object storage. > > The other approach is having pickle contain code known not to > be overridden by anyone, import pypickle for stuff that may be > overridden, and then import pickle for whatever is available. This > approach has the perk of using a standard practice for how to pull in > different implementation. But the drawback, thanks to how globals are > bound, is that any code pulled in from pickle/pypickle will not be > able to call into other optimized code; it's a take or leave it once > the call chain enters one of those modules as they will always call > the implementations in the module they originate from.
To what extent do we care about being able to select Python-only on a per-module basis, particularly in the face of threaded imports? That is, we could have a sys.pythononly attribute that gets checked on import. That's simple and direct, and even allows per-module switching if the application really cares and import doesn't need to worry about threads. Alternatively, sys.pythononly could be a set, but that gets ugly about setting from the application. (The module checks to see whether it's listed in sys.pythononly.) Maybe we should move this discussion to python-ideas for now to kick around really oddball suggestions?
This is all about testing. If a change is made to some extension code it should be mirrored in the Python code and vice-versa.
-Brett -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20090221/9e9c83f8/attachment.htm>
- Previous message: [Python-Dev] Choosing a best practice solution for Python/extension modules
- Next message: [Python-Dev] Choosing a best practice solution for Python/extension modules
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]