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

Reply via email to