<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Eric,<br>
<br>
The case I have been burned by many times is where all globals of
ChimeraExtension.py are deleted. In both the ChimeraExtension.py case
and opening a *.py file with File / Open the trouble is that if the
Python code registers a callback and the callback function tries to use
a name in the global name space like calling another function defined
in the same file or a global import then it fails. This is extremely
confusing when it happens.<br>
<br>
Tom<br>
<br>
<br>
-------- Original Message --------<br>
Subject: Re: [chimera-dev] [Chimera-users] Programmer's Guide
feedback....<br>
From: Eric Pettersen<br>
To: chimera-dev<br>
Date: 12/15/09 10:55 AM<br>
<blockquote cite="mid:61EC3E93-8EE5-48E0-AB71-4705D5162EE4@cgl.ucsf.edu"
type="cite">
<div>
<div>On Dec 15, 2009, at 9:36 AM, Tom Goddard wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite"><span class="Apple-style-span"
style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
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.</span></blockquote>
<br>
</div>
<div>This is a behavior of Python. We load scripts into their own
temporary module to avoid pollution of the Chimera main namespace (<i>e.g.</i> 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).</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>--Eric</div>
<br>
<div>
<div><span class="Apple-style-span"
style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;">
<div style="">
<div style="margin: 0px;"><font
style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 16px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
face="Helvetica" size="5"> Eric Pettersen</font></div>
<div style="margin: 0px;"><font
style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 16px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
face="Helvetica" size="5"> UCSF Computer
Graphics Lab</font></div>
<div style="margin: 0px;"><font
style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 16px; line-height: normal; font-size-adjust: none; font-stretch: normal;"
face="Helvetica" size="5"> <a
moz-do-not-send="true" href="http://www.cgl.ucsf.edu">http://www.cgl.ucsf.edu</a></font></div>
<br class="Apple-interchange-newline">
</div>
</span></div>
<br>
</div>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Chimera-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Chimera-dev@cgl.ucsf.edu">Chimera-dev@cgl.ucsf.edu</a>
<a class="moz-txt-link-freetext" href="http://www.cgl.ucsf.edu/mailman/listinfo/chimera-dev">http://www.cgl.ucsf.edu/mailman/listinfo/chimera-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>