Title: IDLE: don't offer to save text files as .py
Type: Stage: resolved
Components: IDLE Versions: Python 3.5
Status: closed Resolution: duplicate
Dependencies: Superseder: Idle: saving Shell or an OutputWindow should default to .txt
View: 21140
Assigned To: terry.reedy Nosy List: paul.moore, r.david.murray, radialbeast, steve.dower, steven.daprano, terry.reedy, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2016-10-05 15:35 by radialbeast, last changed 2016-10-06 20:31 by terry.reedy. This issue is now closed.

File name Uploaded Description Edit
2016-10-06 (4).png radialbeast, 2016-10-06 17:15
Messages (9)
msg278132 - (view) Author: A.J. (radialbeast) Date: 2016-10-05 15:35
whenever I go to run a program no matter what I do it always says syntax error and highlights the 5 in the 3.5.2 version banner
msg278134 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2016-10-05 15:45
Hi A.J.,

What you're describing isn't really possible, so you're going to need to provide some more detail.  Please copy and paste your Command Prompt session into a message here to show us what's going on.
msg278135 - (view) Author: Tim Golden (tim.golden) * (Python committer) Date: 2016-10-05 15:47
This sometimes happens when someone copies from a book or a tutorial and
includes as though code the banner header which is only meant to
illustrate the context.
msg278138 - (view) Author: Steven D'Aprano (steven.daprano) * (Python committer) Date: 2016-10-05 17:05
See #28366
msg278141 - (view) Author: Paul Moore (paul.moore) * (Python committer) Date: 2016-10-05 17:25
I can recreate this (based on the screenshots from #28366).

To reproduce, open IDLE. You get the console banner and prompt. Save that file using File-Save. The close IDLE. Reopen it, do File-Open to open your saved console session, then use the "Run" menu to run it. (You need to close IDLE, so it "forgets" the .py file came from a console session.)

That's incorrect usage, of course (not "of course" to the OP - that's the real point here) as the text of a console session isn't a valid Python file, and doesn't syntax check. The error is saying precisely that - what is in the file isn't valid Python.

So in one sense, this is simply user error. But I wonder, is there something about how IDLE presents things that could be improved? Either in the documentation or in the UI? I'm not exactly sure what the point of "file-save" in a console window is, and certainly it would be better to save the transcript as text so it couldn't be inadvertently be read back in as a Python module.

I'm not an IDLE user, though, so I don't really have the background to know the best solution.
msg278142 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2016-10-05 17:51
I'm retitling the issue.  The new title doesn't necessary represent the "bug" that needs to be fixed, but it does seem to represent the *apparent* error.
msg278198 - (view) Author: A.J. (radialbeast) Date: 2016-10-06 17:15
There is no other way to explain it without fail every time no matter what code I write there is always syntax error highlighted on the five in the version banner.
msg278210 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2016-10-06 20:24
I am closing this as a duplicate of existing #21140, to make .txt instead of .py the extension for files known not to be code files.  I There is an existing simple patch.  I will modify it to not even offer .py as a secondary choice.

The reason Paul had to close IDLE to open the file in an(other) editor window is that Python allows only one editor window per file, and Shell is a subclass of OutputWindow, which is a subclass of EditorWindow. (The latter inheritance is backwards; OutputWindow should be the base TextEditor and 'CodeEditor' a subclass thereof.) When Shell is saved, the file name appears on the recent files list, and attempts to open it make the exiting editor the active window. 

Angie, as Paul explained, your screenshot shows a text file, mislabeled as a .py python file, in the editor.  When you run non-code text as code, you get a SyntaxError.  The text file appears to be a saved interactive shell session.  "Python 3" by itself is a SyntaxError and will continue to be an error no matter what follows.

It is possible that your Python installation, or the IDLE part of it, is badly broken, and needs to be repaired or re-installed.  But I think it much much  more likely that you have made a mistake.  If you want to discuss this further, please post to python-list (or its mirror).  Include a link to this issue, give a detailed description of what you did (keystrokes and mouse clicks), and ask any questions.
msg278211 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2016-10-06 20:31
PS. A.J., you will likely be a happier user if you make a subdirectory under c:/Users/angie and put your files there instead of in the installation directory under the hidden AppDate
Date User Action Args
2016-10-06 20:31:24terry.reedysetmessages: + msg278211
2016-10-06 20:24:56terry.reedysetstatus: open -> closed
title: idle forgets that saved console session is not a python file after restart -> IDLE: don't offer to save text files as .py
superseder: Idle: saving Shell or an OutputWindow should default to .txt
messages: + msg278210

resolution: duplicate
stage: resolved
2016-10-06 17:15:51radialbeastsetfiles: + 2016-10-06 (4).png

messages: + msg278198
2016-10-05 18:40:45zach.waresetassignee: terry.reedy
components: + IDLE, - Windows
2016-10-05 17:51:21r.david.murraysetnosy: + r.david.murray

messages: + msg278142
title: 3.5.2 syntax issue -> idle forgets that saved console session is not a python file after restart
2016-10-05 17:47:53steven.dapranosetnosy: + terry.reedy
2016-10-05 17:25:59paul.mooresetmessages: + msg278141
2016-10-05 17:09:23zach.warelinkissue28366 superseder
2016-10-05 17:05:16steven.dapranosetnosy: + steven.daprano
messages: + msg278138
2016-10-05 15:47:40tim.goldensetmessages: + msg278135
2016-10-05 15:45:20zach.waresetmessages: + msg278134
2016-10-05 15:35:57radialbeastcreate