Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a94d21f

Browse files
committed
Minor performance nits.
1 parent 2e6c13f commit a94d21f

2 files changed

Lines changed: 36 additions & 32 deletions

File tree

Doc/indfix.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,20 @@
2424
import sys
2525

2626

27-
def strcasecmp(e1, e2, lower=string.lower):
27+
def cmp_entries(e1, e2, lower=string.lower):
2828
return cmp(lower(e1[1]), lower(e2[1])) or cmp(e1, e2)
2929

3030

31-
def dump_entries(ofp, entries):
31+
def dump_entries(write, entries):
3232
if len(entries) == 1:
33-
ofp.write(" \\item %s (%s)%s\n" % entries[0])
33+
write(" \\item %s (%s)%s\n" % entries[0])
3434
return
35-
ofp.write(" \item %s\n" % entries[0][0])
35+
write(" \item %s\n" % entries[0][0])
3636
# now sort these in a case insensitive manner:
37-
entries.sort(strcasecmp)
37+
if len(entries) > 0:
38+
entries.sort(cmp_entries)
3839
for xxx, subitem, pages in entries:
39-
ofp.write(" \subitem %s%s\n" % (subitem, pages))
40+
write(" \subitem %s%s\n" % (subitem, pages))
4041

4142

4243
breakable_re = re.compile(r" \\item (.*) [(](.*)[)]((?:, \d+)+)")
@@ -55,27 +56,28 @@ def main():
5556
else:
5657
fp = open(filename)
5758
ofp = StringIO.StringIO()
58-
item, subitem = None, None
5959
entries = []
60+
match = breakable_re.match
61+
write = ofp.write
6062
while 1:
6163
line = fp.readline()
6264
if not line:
6365
break
64-
m = breakable_re.match(line)
66+
m = match(line)
6567
if m:
6668
entry = m.group(1, 2, 3)
67-
if entries:
68-
if entries[-1][0] != entry[0]:
69-
dump_entries(ofp, entries)
70-
entries = []
69+
if entries and entries[-1][0] != entry[0]:
70+
dump_entries(write, entries)
71+
entries = []
7172
entries.append(entry)
7273
elif entries:
73-
dump_entries(ofp, entries)
74+
dump_entries(write, entries)
7475
entries = []
75-
ofp.write(line)
76+
write(line)
7677
else:
77-
pass
78-
ofp.write(line)
78+
write(line)
79+
del write
80+
del match
7981
fp.close()
8082
if outfile == "-":
8183
fp = sys.stdout

Doc/tools/indfix.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,20 @@
2424
import sys
2525

2626

27-
def strcasecmp(e1, e2, lower=string.lower):
27+
def cmp_entries(e1, e2, lower=string.lower):
2828
return cmp(lower(e1[1]), lower(e2[1])) or cmp(e1, e2)
2929

3030

31-
def dump_entries(ofp, entries):
31+
def dump_entries(write, entries):
3232
if len(entries) == 1:
33-
ofp.write(" \\item %s (%s)%s\n" % entries[0])
33+
write(" \\item %s (%s)%s\n" % entries[0])
3434
return
35-
ofp.write(" \item %s\n" % entries[0][0])
35+
write(" \item %s\n" % entries[0][0])
3636
# now sort these in a case insensitive manner:
37-
entries.sort(strcasecmp)
37+
if len(entries) > 0:
38+
entries.sort(cmp_entries)
3839
for xxx, subitem, pages in entries:
39-
ofp.write(" \subitem %s%s\n" % (subitem, pages))
40+
write(" \subitem %s%s\n" % (subitem, pages))
4041

4142

4243
breakable_re = re.compile(r" \\item (.*) [(](.*)[)]((?:, \d+)+)")
@@ -55,27 +56,28 @@ def main():
5556
else:
5657
fp = open(filename)
5758
ofp = StringIO.StringIO()
58-
item, subitem = None, None
5959
entries = []
60+
match = breakable_re.match
61+
write = ofp.write
6062
while 1:
6163
line = fp.readline()
6264
if not line:
6365
break
64-
m = breakable_re.match(line)
66+
m = match(line)
6567
if m:
6668
entry = m.group(1, 2, 3)
67-
if entries:
68-
if entries[-1][0] != entry[0]:
69-
dump_entries(ofp, entries)
70-
entries = []
69+
if entries and entries[-1][0] != entry[0]:
70+
dump_entries(write, entries)
71+
entries = []
7172
entries.append(entry)
7273
elif entries:
73-
dump_entries(ofp, entries)
74+
dump_entries(write, entries)
7475
entries = []
75-
ofp.write(line)
76+
write(line)
7677
else:
77-
pass
78-
ofp.write(line)
78+
write(line)
79+
del write
80+
del match
7981
fp.close()
8082
if outfile == "-":
8183
fp = sys.stdout

0 commit comments

Comments
 (0)