mirror of
https://github.com/python/cpython.git
synced 2024-12-04 23:34:42 +08:00
IDLE: fix some RessourceWarning, reuse tokenize.open()
This commit is contained in:
parent
0af0306396
commit
85c6772aec
@ -201,18 +201,18 @@ class PyShellEditorWindow(EditorWindow):
|
||||
breaks = self.breakpoints
|
||||
filename = self.io.filename
|
||||
try:
|
||||
lines = open(self.breakpointPath,"r").readlines()
|
||||
with open(self.breakpointPath, "r") as fp:
|
||||
lines = fp.readlines()
|
||||
except IOError:
|
||||
lines = []
|
||||
new_file = open(self.breakpointPath,"w")
|
||||
for line in lines:
|
||||
if not line.startswith(filename + '='):
|
||||
new_file.write(line)
|
||||
self.update_breakpoints()
|
||||
breaks = self.breakpoints
|
||||
if breaks:
|
||||
new_file.write(filename + '=' + str(breaks) + '\n')
|
||||
new_file.close()
|
||||
with open(self.breakpointPath, "w") as new_file:
|
||||
for line in lines:
|
||||
if not line.startswith(filename + '='):
|
||||
new_file.write(line)
|
||||
self.update_breakpoints()
|
||||
breaks = self.breakpoints
|
||||
if breaks:
|
||||
new_file.write(filename + '=' + str(breaks) + '\n')
|
||||
|
||||
def restore_file_breaks(self):
|
||||
self.text.update() # this enables setting "BREAK" tags to be visible
|
||||
@ -220,7 +220,8 @@ class PyShellEditorWindow(EditorWindow):
|
||||
if filename is None:
|
||||
return
|
||||
if os.path.isfile(self.breakpointPath):
|
||||
lines = open(self.breakpointPath,"r").readlines()
|
||||
with open(self.breakpointPath, "r") as fp:
|
||||
lines = fp.readlines()
|
||||
for line in lines:
|
||||
if line.startswith(filename + '='):
|
||||
breakpoint_linenumbers = eval(line[len(filename)+1:])
|
||||
@ -571,7 +572,8 @@ class ModifiedInterpreter(InteractiveInterpreter):
|
||||
def execfile(self, filename, source=None):
|
||||
"Execute an existing file"
|
||||
if source is None:
|
||||
source = open(filename, "r").read()
|
||||
with open(filename, "r") as fp:
|
||||
source = fp.read()
|
||||
try:
|
||||
code = compile(source, filename, "exec")
|
||||
except (OverflowError, SyntaxError):
|
||||
|
@ -67,25 +67,20 @@ class ScriptBinding:
|
||||
|
||||
def tabnanny(self, filename):
|
||||
# XXX: tabnanny should work on binary files as well
|
||||
with open(filename, 'r', encoding='iso-8859-1') as f:
|
||||
two_lines = f.readline() + f.readline()
|
||||
encoding = IOBinding.coding_spec(two_lines)
|
||||
if not encoding:
|
||||
encoding = 'utf-8'
|
||||
f = open(filename, 'r', encoding=encoding)
|
||||
try:
|
||||
tabnanny.process_tokens(tokenize.generate_tokens(f.readline))
|
||||
except tokenize.TokenError as msg:
|
||||
msgtxt, (lineno, start) = msg
|
||||
self.editwin.gotoline(lineno)
|
||||
self.errorbox("Tabnanny Tokenizing Error",
|
||||
"Token Error: %s" % msgtxt)
|
||||
return False
|
||||
except tabnanny.NannyNag as nag:
|
||||
# The error messages from tabnanny are too confusing...
|
||||
self.editwin.gotoline(nag.get_lineno())
|
||||
self.errorbox("Tab/space error", indent_message)
|
||||
return False
|
||||
with tokenize.open(filename) as f:
|
||||
try:
|
||||
tabnanny.process_tokens(tokenize.generate_tokens(f.readline))
|
||||
except tokenize.TokenError as msg:
|
||||
msgtxt, (lineno, start) = msg
|
||||
self.editwin.gotoline(lineno)
|
||||
self.errorbox("Tabnanny Tokenizing Error",
|
||||
"Token Error: %s" % msgtxt)
|
||||
return False
|
||||
except tabnanny.NannyNag as nag:
|
||||
# The error messages from tabnanny are too confusing...
|
||||
self.editwin.gotoline(nag.get_lineno())
|
||||
self.errorbox("Tab/space error", indent_message)
|
||||
return False
|
||||
return True
|
||||
|
||||
def checksyntax(self, filename):
|
||||
|
Loading…
Reference in New Issue
Block a user