On Dec 15, 2009, at 9:36 AM, Tom Goddard wrote:
4. The ToolbarButton.py doesn't work unless the "import re" and "import
chimera" are in the function body. This is because Chimera deletes all
globals after loading a file. This has often been a headache for me
and Chimera should not delete globals.
This is a behavior of Python. We load scripts into their own
temporary module to avoid pollution of the Chimera main namespace (e.g. if
the script defined globals named "id" or "sum" or "type" they would
override built-in functions of the same name for all future script
executions!). When Chimera unloads the temporary module, Python nulls
out it's global namespace (to give garbage collection a shot at
working).
Now perhaps Chimera shouldn't unload the module. I think this
would be a reasonable change. Perhaps it could be discussed at our
next internal Chimera developers' meeting to ensure that I'm not
forgetting any other ramifications that the change might have.
--Eric
Eric Pettersen
UCSF Computer
Graphics Lab
_______________________________________________
Chimera-dev mailing list
Chimera-dev@cgl.ucsf.edu
http://www.cgl.ucsf.edu/mailman/listinfo/chimera-dev