Bugs item #1447633, was opened at 2006-03-10 18:55
Message generated for change (Comment added) made by goodger
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1447633&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.4
>Status: Closed
>Resolution: Invalid
Priority: 5
Submitted By: Edward C. Jones (edcjones)
Assigned to: Nobody/Anonymous (nobody)
Summary: "reindent.py" exposes bug in tokenize
Initial Comment:
I use up-to-date Debian unstable (i368 port) on a PC with a AMD Athlon64
+3500 chip. I compile my own copy of Python which I keep in /usr/local.
Here is a small Python program called "fixnames.py":
#! /usr/bin/env python
"""Rename files that contain unpleasant characters.
Modify this code as needed.
"""
import os, sys, optparse
usage = 'USAGE: ./fixnames.py [-h] <filelist>'
parser = optparse.OptionParser(usage=usage)
options, args = parser.parse_args()
if len(args) != 1:
parser.print_help()
sys.exit('an argument is required'))
# The input is a list of files to be renamed.
for name in open(args[0]), 'r'):
# Modify these as needed.
newname = name.replace(' ', '_')
newname = newname.replace('@', '_at_')
newname = newname.replace('%20', '_')
newname = newname.replace("'", '')
os.rename(name, newname)
If I run
python /usr/local/src/Python-2.4.2/Tools/scripts/reindent.py fixnames.py
I get
Traceback (most recent call last):
File "/usr/local/src/Python-2.4.2/Tools/scripts/reindent.py", line 293, in ?
main()
File "/usr/local/src/Python-2.4.2/Tools/scripts/reindent.py", line 83, in main
check(arg)
File "/usr/local/src/Python-2.4.2/Tools/scripts/reindent.py", line 108, in
check
if r.run():
File "/usr/local/src/Python-2.4.2/Tools/scripts/reindent.py", line 166, in run
tokenize.tokenize(self.getline, self.tokeneater)
File "/usr/local/lib/python2.4/tokenize.py", line 153, in tokenize
tokenize_loop(readline, tokeneater)
File "/usr/local/lib/python2.4/tokenize.py", line 159, in tokenize_loop
for token_info in generate_tokens(readline):
File "/usr/local/lib/python2.4/tokenize.py", line 236, in generate_tokens
raise TokenError, ("EOF in multi-line statement", (lnum, 0))
tokenize.TokenError: ('EOF in multi-line statement', (24, 0))
----------------------------------------------------------------------
>Comment By: David Goodger (goodger)
Date: 2006-03-10 20:56
Message:
Logged In: YES
user_id=7733
reindent.py and tokenize.py require input with correct
syntax. The bug is in the input code.
Closing this bug report.
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2006-03-10 19:11
Message:
Logged In: YES
user_id=31435
What do you think the bug is? That is, what did you expect
to happen? tokenize.py isn't a syntax checker, so this
looks like a case of garbage-in, garbage-out to me. There
are two lines in the sample program that contain a right
parenthesis that shouldn't be there, and if those syntax
errors are repaired then tokenize.py is happy with the
program. As is, because of the unbalanced parentheses the
net paren level isn't 0 when tokenize reaches the end of the
file, so _something_ is wrong with the file, and "EOF in
multi-line statement" is just its heurestic guess at the
most likely cause.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1447633&group_id=5470
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com