New submission from Terry J. Reedy: I propose to remove the following two lines with 'reload' from turtledemo.__main__.py.
from importlib import reload ... ... def loadfile(self, filename): ... reload(self.module) Reloading modules each time a demo is run allows and even encourages module level code that initializes variables (other than classes) and has system side-effects. In particular, some such calls created the test problems reported in #21882. Code that needs to be run each time the required main() is called should be inside main. Indeed, reforming the two_canvases demo (see patch for #21882) made two_canvases work properly within the demo driver. With the demos patched, I tried them all twice after commenting out the reload. I did not notice any difference, except possibly faster response. I already edited the help text to tell users to initialize in main(). ---------- assignee: terry.reedy keywords: patch messages: 223771 nosy: gregorlingl, terry.reedy priority: normal severity: normal stage: patch review status: open title: Turtledemo: stop reloading demos type: behavior versions: Python 2.7, Python 3.4, Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue22051> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com