[Python-3000] please keep open() as a builtin, and general concerns about Py3k complexity
Steve Howell
showell30 at yahoo.com
Wed May 23 07:45:15 CEST 2007
--- Neal Norwitz <nnorwitz at gmail.com> wrote:
> On 5/22/07, Steve Howell <showell30 at yahoo.com>
> wrote:
> >
> > In the system I've worked on for the last three
> years,
> > we have at least 200 calls to the builtin open()
> > method.
>
> This number is meaningless by itself. 200 calls in
> how many lines of code?
> How many files total and how many files use open?
>
> I'm not sure if the numbers are useful, but if it's
> only used in 0.1%
> of the modules, that's not a strong case for keeping
> it.
>
17.7% of the files I searched have calls to open().
980 source files
174 files call open()
242898 lines of code
305 calls to open()
This is the quick and dirty Python code to compute
these stats, which has a call to the open() builtin.
import os
fns = []
for dir in ('/ts-qa51', '/ars-qa12', '/is-qa7'):
cmd = "cd %s && find . -name '*.py'" % dir
output = os.popen(cmd).readlines()
fns += [os.path.join(dir, line[2:]) for
line in output]
fns = [fn.strip() for fn in fns]
numSourceFiles = len(fns)
print '%d source files' % numSourceFiles
loc = 0
filesWithBuiltin = 0
openLines = 0
for fn in fns:
fn = fn.strip()
lines = open(fn).readlines()
loc += len(lines)
hasBuiltin = False
for line in lines:
if ' open(' in line:
hasBuiltin = True
openLines += 1
if hasBuiltin:
filesWithBuiltin += 1
print '%d files call open()' % filesWithBuiltin
print '%d lines of code' % loc
print '%d calls to open()' % openLines
____________________________________________________________________________________Get the Yahoo! toolbar and be alerted to new email wherever you're surfing.
http://new.toolbar.yahoo.com/toolbar/features/mail/index.php
More information about the Python-3000
mailing list