New submission from STINNER Victor <victor.stin...@gmail.com>: CPython expects __builtins__ to be a dict, but it is interesting to be able to use another type. For example, my pysandbox project (sandbox to secure Python) requires a read-only mapping for __builtins__.
The PEP 416 was rejected, so there is no builtin frozendict type, but it looks like the dictproxy type will be exposed as a public type. Attached patch uses PyDict_CheckExact() to check if __builtins__ is a dict and add a "slow-path" for other types. The overhead on runtime performance should be very low (near zero), PyDict_CheckExact() just dereference a pointer (to read the object type) and compare two pointers. The patch depends on issue #14383 patch (identifier.patch) for the __build_class__ identifier. I can write a new patch without this dependency if needed. ---------- components: Interpreter Core files: builtins.patch keywords: patch messages: 156534 nosy: haypo priority: normal severity: normal status: open title: Support other types than dict for __builtins__ type: enhancement versions: Python 3.3 Added file: http://bugs.python.org/file24989/builtins.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14385> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com