Chris Colbert, 19.01.2012 09:18:
> If it doesn't pass PyDict_CheckExact you won't be able to use it as the
> globals to eval or exec.

What makes you say that? I tried and it worked for me, all the way back to
Python 2.4:

--------------------
Python 2.4.6 (#2, Jan 21 2010, 23:45:25)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class MyDict(dict): pass
>>> eval('1+1', MyDict())
2
>>> exec '1+1' in MyDict()
>>>
--------------------

I only see a couple of calls to PyDict_CheckExact() in CPython's sources
and they usually seem to be related to special casing for performance
reasons. Nothing that should impact a module's globals.

Besides, Cython controls its own language usages of eval and exec.

Stefan
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to