[Python-Dev] Strange artifacts with PEP 3121 and monkey-patching sys.modules (in csv, ElementTree and others) (original) (raw)
Antoine Pitrou solipsis at pitrou.net
Sun Aug 11 13:48:26 CEST 2013
- Previous message: [Python-Dev] Strange artifacts with PEP 3121 and monkey-patching sys.modules (in csv, ElementTree and others)
- Next message: [Python-Dev] Strange artifacts with PEP 3121 and monkey-patching sys.modules (in csv, ElementTree and others)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sun, 11 Aug 2013 07:04:40 -0400 Nick Coghlan <ncoghlan at gmail.com> wrote:
On 11 August 2013 06:33, Antoine Pitrou <solipsis at pitrou.net> wrote: > So code can be written like: > > PyObject *dialects = PyStateGetModuleAttr( > &csvmodule, "dialects", &PyDictType); > if (dialects == NULL) > return NULL;
This sounds like a good near term solution to me. Longer term, I think there may be value in providing a richer extension module initialisation API that lets extension modules be represented as module subclasses in sys.modules, since that would get us to a position where it is possible to have multiple instances of an extension module in the same subinterpreter by holding on to external references after removing them from sys.modules (which is what we do in the test suite for pure Python modules).
Either that, or add a "struct PyMemberDef *m_members" field to PyModuleDef, to enable looking up stuff in the m_state using regular attribute lookup.
Unfortunately, doing so would probably break the ABI. Also, allowing for module subclasses is probably more flexible in the long term. We just need to devise a convenience API for that (perhaps by allowing to create both the subclass and instantiate it in a single call).
However, that's dependent on the ModuleSpec idea we're currently thrashing out on import-sig (and should be able to bring to python-dev soon), and I think getting that integrated at all will be ambitious enough for 3.4 - using it to improve extension module handling would then be a project for 3.5.
Sounds reasonable.
Regards
Antoine.
- Previous message: [Python-Dev] Strange artifacts with PEP 3121 and monkey-patching sys.modules (in csv, ElementTree and others)
- Next message: [Python-Dev] Strange artifacts with PEP 3121 and monkey-patching sys.modules (in csv, ElementTree and others)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]