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 <[email protected]>
<http://bugs.python.org/issue22051>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com