Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
172bb394
Commit
172bb394
authored
Mar 30, 2019
by
Serhiy Storchaka
Committed by
GitHub
Mar 30, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-22831: Use "with" to avoid possible fd leaks in tools (part 2). (GH-10927)
parent
afbb7a37
Changes
27
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
248 additions
and
258 deletions
+248
-258
Tools/demo/markov.py
Tools/demo/markov.py
+3
-3
Tools/demo/rpython.py
Tools/demo/rpython.py
+11
-12
Tools/demo/rpythond.py
Tools/demo/rpythond.py
+10
-10
Tools/freeze/checkextensions_win32.py
Tools/freeze/checkextensions_win32.py
+2
-1
Tools/freeze/freeze.py
Tools/freeze/freeze.py
+2
-1
Tools/i18n/pygettext.py
Tools/i18n/pygettext.py
+2
-3
Tools/scripts/cleanfuture.py
Tools/scripts/cleanfuture.py
+7
-8
Tools/scripts/combinerefs.py
Tools/scripts/combinerefs.py
+5
-4
Tools/scripts/dutree.py
Tools/scripts/dutree.py
+11
-11
Tools/scripts/eptags.py
Tools/scripts/eptags.py
+19
-18
Tools/scripts/finddiv.py
Tools/scripts/finddiv.py
+11
-11
Tools/scripts/fixnotice.py
Tools/scripts/fixnotice.py
+8
-12
Tools/scripts/fixps.py
Tools/scripts/fixps.py
+9
-11
Tools/scripts/get-remote-certificate.py
Tools/scripts/get-remote-certificate.py
+6
-9
Tools/scripts/h2py.py
Tools/scripts/h2py.py
+19
-20
Tools/scripts/ifdef.py
Tools/scripts/ifdef.py
+2
-3
Tools/scripts/md5sum.py
Tools/scripts/md5sum.py
+4
-4
Tools/scripts/mkreal.py
Tools/scripts/mkreal.py
+7
-8
Tools/scripts/nm2def.py
Tools/scripts/nm2def.py
+3
-2
Tools/scripts/objgraph.py
Tools/scripts/objgraph.py
+2
-1
Tools/scripts/parseentities.py
Tools/scripts/parseentities.py
+9
-7
Tools/scripts/pathfix.py
Tools/scripts/pathfix.py
+21
-23
Tools/scripts/pdeps.py
Tools/scripts/pdeps.py
+22
-23
Tools/scripts/ptags.py
Tools/scripts/ptags.py
+19
-18
Tools/scripts/rgrep.py
Tools/scripts/rgrep.py
+24
-23
Tools/unicode/gencjkcodecs.py
Tools/unicode/gencjkcodecs.py
+2
-1
Tools/unicode/gencodec.py
Tools/unicode/gencodec.py
+8
-11
No files found.
Tools/demo/markov.py
View file @
172bb394
...
...
@@ -78,9 +78,9 @@ def test():
continue
else
:
f
=
open
(
filename
,
'r'
)
if
debug
:
print
(
'processing'
,
filename
,
'...'
)
text
=
f
.
read
(
)
f
.
close
()
with
f
:
if
debug
:
print
(
'processing'
,
filename
,
'...'
)
text
=
f
.
read
()
paralist
=
text
.
split
(
'
\
n
\
n
'
)
for
para
in
paralist
:
if
debug
>
1
:
print
(
'feeding ...'
)
...
...
Tools/demo/rpython.py
View file @
172bb394
...
...
@@ -22,17 +22,16 @@ def main():
port
=
int
(
port
[
i
+
1
:])
host
=
host
[:
i
]
command
=
' '
.
join
(
sys
.
argv
[
2
:])
s
=
socket
(
AF_INET
,
SOCK_STREAM
)
s
.
connect
((
host
,
port
))
s
.
send
(
command
.
encode
())
s
.
shutdown
(
SHUT_WR
)
reply
=
b''
while
True
:
data
=
s
.
recv
(
BUFSIZE
)
if
not
data
:
break
reply
+=
data
print
(
reply
.
decode
(),
end
=
' '
)
s
.
close
()
with
socket
(
AF_INET
,
SOCK_STREAM
)
as
s
:
s
.
connect
((
host
,
port
))
s
.
send
(
command
.
encode
())
s
.
shutdown
(
SHUT_WR
)
reply
=
b''
while
True
:
data
=
s
.
recv
(
BUFSIZE
)
if
not
data
:
break
reply
+=
data
print
(
reply
.
decode
(),
end
=
' '
)
main
()
Tools/demo/rpythond.py
View file @
172bb394
...
...
@@ -26,16 +26,16 @@ def main():
s
.
listen
(
1
)
while
True
:
conn
,
(
remotehost
,
remoteport
)
=
s
.
accept
()
print
(
'connection from'
,
remotehost
,
remoteport
)
request
=
b''
while
1
:
data
=
conn
.
recv
(
BUFSIZE
)
if
not
data
:
break
request
+=
data
reply
=
execute
(
request
.
decode
())
conn
.
send
(
reply
.
en
code
())
conn
.
close
(
)
with
conn
:
print
(
'connection from'
,
remotehost
,
remoteport
)
request
=
b''
while
1
:
data
=
conn
.
recv
(
BUFSIZE
)
if
not
data
:
break
request
+=
data
reply
=
execute
(
request
.
de
code
())
conn
.
send
(
reply
.
encode
()
)
def
execute
(
request
):
stdout
=
sys
.
stdout
...
...
Tools/freeze/checkextensions_win32.py
View file @
172bb394
...
...
@@ -130,7 +130,8 @@ def parse_dsp(dsp):
ret
=
[]
dsp_path
,
dsp_name
=
os
.
path
.
split
(
dsp
)
try
:
lines
=
open
(
dsp
,
"r"
).
readlines
()
with
open
(
dsp
,
"r"
)
as
fp
:
lines
=
fp
.
readlines
()
except
IOError
as
msg
:
sys
.
stderr
.
write
(
"%s: %s
\
n
"
%
(
dsp
,
msg
))
return
None
...
...
Tools/freeze/freeze.py
View file @
172bb394
...
...
@@ -142,7 +142,8 @@ def main():
# last option can not be "-i", so this ensures "pos+1" is in range!
if
sys
.
argv
[
pos
]
==
'-i'
:
try
:
options
=
open
(
sys
.
argv
[
pos
+
1
]).
read
().
split
()
with
open
(
sys
.
argv
[
pos
+
1
])
as
infp
:
options
=
infp
.
read
().
split
()
except
IOError
as
why
:
usage
(
"File name '%s' specified with the -i option "
"can not be read - %s"
%
(
sys
.
argv
[
pos
+
1
],
why
)
)
...
...
Tools/i18n/pygettext.py
View file @
172bb394
...
...
@@ -561,9 +561,8 @@ def main():
# initialize list of strings to exclude
if
options
.
excludefilename
:
try
:
fp
=
open
(
options
.
excludefilename
)
options
.
toexclude
=
fp
.
readlines
()
fp
.
close
()
with
open
(
options
.
excludefilename
)
as
fp
:
options
.
toexclude
=
fp
.
readlines
()
except
IOError
:
print
(
_
(
"Can't read --exclude-file: %s"
)
%
options
.
excludefilename
,
file
=
sys
.
stderr
)
...
...
Tools/scripts/cleanfuture.py
View file @
172bb394
...
...
@@ -96,11 +96,11 @@ def check(file):
errprint
(
"%r: I/O Error: %s"
%
(
file
,
str
(
msg
)))
return
ff
=
FutureFinder
(
f
,
file
)
changed
=
ff
.
run
(
)
if
changed
:
ff
.
gettherest
()
f
.
close
()
with
f
:
ff
=
FutureFinder
(
f
,
file
)
changed
=
ff
.
run
()
if
changed
:
ff
.
gettherest
()
if
changed
:
if
verbose
:
print
(
"changed."
)
...
...
@@ -122,9 +122,8 @@ def check(file):
os
.
rename
(
file
,
bak
)
if
verbose
:
print
(
"renamed"
,
file
,
"to"
,
bak
)
g
=
open
(
file
,
"w"
)
ff
.
write
(
g
)
g
.
close
()
with
open
(
file
,
"w"
)
as
g
:
ff
.
write
(
g
)
if
verbose
:
print
(
"wrote new"
,
file
)
else
:
...
...
Tools/scripts/combinerefs.py
View file @
172bb394
...
...
@@ -85,9 +85,7 @@ def read(fileiter, pat, whilematch):
else
:
break
def
combine
(
fname
):
f
=
open
(
fname
)
def
combinefile
(
f
):
fi
=
iter
(
f
)
for
line
in
read
(
fi
,
re
.
compile
(
r'^Remaining objects:$'
),
False
):
...
...
@@ -121,8 +119,11 @@ def combine(fname):
print
(
'[%s->%s]'
%
(
addr2rc
[
addr
],
rc
),
end
=
' '
)
print
(
guts
,
addr2guts
[
addr
])
f
.
close
()
print
(
"%d objects before, %d after"
%
(
before
,
after
))
def
combine
(
fname
):
with
open
(
fname
)
as
f
:
combinefile
(
f
)
if
__name__
==
'__main__'
:
combine
(
sys
.
argv
[
1
])
Tools/scripts/dutree.py
View file @
172bb394
...
...
@@ -4,18 +4,18 @@
import
os
,
sys
,
errno
def
main
():
p
=
os
.
popen
(
'du '
+
' '
.
join
(
sys
.
argv
[
1
:]),
'r'
)
total
,
d
=
None
,
{}
for
line
in
p
.
readlines
():
i
=
0
while
line
[
i
]
in
'0123456789'
:
i
=
i
+
1
size
=
eval
(
line
[:
i
])
while
line
[
i
]
in
'
\
t
'
:
i
=
i
+
1
filename
=
line
[
i
:
-
1
]
comps
=
filename
.
split
(
'/'
)
if
comps
[
0
]
==
''
:
comps
[
0
]
=
'/'
if
comps
[
len
(
comps
)
-
1
]
==
''
:
del
comps
[
len
(
comps
)
-
1
]
total
,
d
=
store
(
size
,
comps
,
total
,
d
)
with
os
.
popen
(
'du '
+
' '
.
join
(
sys
.
argv
[
1
:]))
as
p
:
for
line
in
p
:
i
=
0
while
line
[
i
]
in
'0123456789'
:
i
=
i
+
1
size
=
eval
(
line
[:
i
])
while
line
[
i
]
in
'
\
t
'
:
i
=
i
+
1
filename
=
line
[
i
:
-
1
]
comps
=
filename
.
split
(
'/'
)
if
comps
[
0
]
==
''
:
comps
[
0
]
=
'/'
if
comps
[
len
(
comps
)
-
1
]
==
''
:
del
comps
[
len
(
comps
)
-
1
]
total
,
d
=
store
(
size
,
comps
,
total
,
d
)
try
:
display
(
total
,
d
)
except
IOError
as
e
:
...
...
Tools/scripts/eptags.py
View file @
172bb394
...
...
@@ -28,29 +28,30 @@ def treat_file(filename, outfp):
except OSError:
sys.stderr.write('
Cannot
open
%
s
\
n
'%filename)
return
charno = 0
lineno = 0
tags = []
size = 0
while 1:
line = fp.readline()
if not line:
break
lineno = lineno + 1
m = matcher.search(line)
if m:
tag = m.group(0) + '
\
177
%
d
,
%
d
\
n
' % (lineno, charno)
tags.append(tag)
size = size + len(tag)
charno = charno + len(line)
with fp:
charno = 0
lineno = 0
tags = []
size = 0
while 1:
line = fp.readline()
if not line:
break
lineno = lineno + 1
m = matcher.search(line)
if m:
tag = m.group(0) + '
\
177
%
d
,
%
d
\
n
' % (lineno, charno)
tags.append(tag)
size = size + len(tag)
charno = charno + len(line)
outfp.write('
\
f
\
n
%
s
,
%
d
\
n
' % (filename,size))
for tag in tags:
outfp.write(tag)
def main():
outfp = open('
TAGS
', '
w
')
for filename in sys.argv[1:]:
treat_file(filename, outfp)
with open('
TAGS
', '
w
') as outfp:
for filename in sys.argv[1:]:
treat_file(filename, outfp)
if __name__=="__main__":
main()
Tools/scripts/finddiv.py
View file @
172bb394
...
...
@@ -55,17 +55,17 @@ def process(filename, listnames):
except
IOError
as
msg
:
sys
.
stderr
.
write
(
"Can't open: %s
\
n
"
%
msg
)
return
1
g
=
tokenize
.
generate_tokens
(
fp
.
readline
)
lastrow
=
None
for
type
,
token
,
(
row
,
col
),
end
,
line
in
g
:
if
token
in
(
"/"
,
"/="
)
:
if
listnames
:
print
(
filename
)
break
if
row
!=
lastrow
:
lastrow
=
row
print
(
"%s:%d:%s"
%
(
filename
,
row
,
line
),
end
=
' '
)
fp
.
close
(
)
with
fp
:
g
=
tokenize
.
generate_tokens
(
fp
.
readline
)
lastrow
=
None
for
type
,
token
,
(
row
,
col
),
end
,
line
in
g
:
if
token
in
(
"/"
,
"/="
)
:
if
listnames
:
print
(
filename
)
break
if
row
!=
lastrow
:
lastrow
=
row
print
(
"%s:%d:%s"
%
(
filename
,
row
,
line
),
end
=
' '
)
def
processdir
(
dir
,
listnames
):
try
:
...
...
Tools/scripts/fixnotice.py
View file @
172bb394
...
...
@@ -73,22 +73,19 @@ def main():
elif
opt
==
'--dry-run'
:
DRYRUN
=
1
elif
opt
==
'--oldnotice'
:
fp
=
open
(
arg
)
OLD_NOTICE
=
fp
.
read
()
fp
.
close
()
with
open
(
arg
)
as
fp
:
OLD_NOTICE
=
fp
.
read
()
elif
opt
==
'--newnotice'
:
fp
=
open
(
arg
)
NEW_NOTICE
=
fp
.
read
()
fp
.
close
()
with
open
(
arg
)
as
fp
:
NEW_NOTICE
=
fp
.
read
()
for
arg
in
args
:
process
(
arg
)
def
process
(
file
):
f
=
open
(
file
)
data
=
f
.
read
()
f
.
close
()
with
open
(
file
)
as
f
:
data
=
f
.
read
()
i
=
data
.
find
(
OLD_NOTICE
)
if
i
<
0
:
if
VERBOSE
:
...
...
@@ -102,9 +99,8 @@ def process(file):
data
=
data
[:
i
]
+
NEW_NOTICE
+
data
[
i
+
len
(
OLD_NOTICE
):]
new
=
file
+
".new"
backup
=
file
+
".bak"
f
=
open
(
new
,
"w"
)
f
.
write
(
data
)
f
.
close
()
with
open
(
new
,
"w"
)
as
f
:
f
.
write
(
data
)
os
.
rename
(
file
,
backup
)
os
.
rename
(
new
,
file
)
...
...
Tools/scripts/fixps.py
View file @
172bb394
...
...
@@ -14,20 +14,18 @@ def main():
except
IOError
as
msg
:
print
(
filename
,
': can
\
'
t open :'
,
msg
)
continue
line
=
f
.
readline
()
if
not
re
.
match
(
'^#! */usr/local/bin/python'
,
line
):
print
(
filename
,
': not a /usr/local/bin/python script'
)
f
.
close
()
continue
rest
=
f
.
read
()
f
.
close
()
with
f
:
line
=
f
.
readline
()
if
not
re
.
match
(
'^#! */usr/local/bin/python'
,
line
):
print
(
filename
,
': not a /usr/local/bin/python script'
)
continue
rest
=
f
.
read
()
line
=
re
.
sub
(
'/usr/local/bin/python'
,
'/usr/bin/env python'
,
line
)
print
(
filename
,
':'
,
repr
(
line
))
f
=
open
(
filename
,
"w"
)
f
.
write
(
line
)
f
.
write
(
rest
)
f
.
close
()
with
open
(
filename
,
"w"
)
as
f
:
f
.
write
(
line
)
f
.
write
(
rest
)
if
__name__
==
'__main__'
:
main
()
Tools/scripts/get-remote-certificate.py
View file @
172bb394
...
...
@@ -29,9 +29,8 @@ def fetch_server_certificate (host, port):
return
None
else
:
tn
=
tempfile
.
mktemp
()
fp
=
open
(
tn
,
"wb"
)
fp
.
write
(
m
.
group
(
1
)
+
b"
\
n
"
)
fp
.
close
()
with
open
(
tn
,
"wb"
)
as
fp
:
fp
.
write
(
m
.
group
(
1
)
+
b"
\
n
"
)
try
:
tn2
=
(
outfile
or
tempfile
.
mktemp
())
status
,
output
=
subproc
(
r'openssl x509 -in "%s" -out "%s"'
%
...
...
@@ -39,9 +38,8 @@ def fetch_server_certificate (host, port):
if
status
!=
0
:
raise
RuntimeError
(
'OpenSSL x509 failed with status %s and '
'output: %r'
%
(
status
,
output
))
fp
=
open
(
tn2
,
'rb'
)
data
=
fp
.
read
()
fp
.
close
()
with
open
(
tn2
,
'rb'
)
as
fp
:
data
=
fp
.
read
()
os
.
unlink
(
tn2
)
return
data
finally
:
...
...
@@ -49,9 +47,8 @@ def fetch_server_certificate (host, port):
if
sys
.
platform
.
startswith
(
"win"
):
tfile
=
tempfile
.
mktemp
()
fp
=
open
(
tfile
,
"w"
)
fp
.
write
(
"quit
\
n
"
)
fp
.
close
()
with
open
(
tfile
,
"w"
)
as
fp
:
fp
.
write
(
"quit
\
n
"
)
try
:
status
,
output
=
subproc
(
'openssl s_client -connect "%s:%s" -showcerts < "%s"'
%
...
...
Tools/scripts/h2py.py
View file @
172bb394
...
...
@@ -69,23 +69,21 @@ def main():
sys.stdout.write('
# Generated by h2py from stdin\n')
process
(
sys
.
stdin
,
sys
.
stdout
)
else
:
fp
=
open
(
filename
,
'r'
)
outfile
=
os
.
path
.
basename
(
filename
)
i
=
outfile
.
rfind
(
'.'
)
if
i
>
0
:
outfile
=
outfile
[:
i
]
modname
=
outfile
.
upper
()
outfile
=
modname
+
'.py'
outfp
=
open
(
outfile
,
'w'
)
outfp
.
write
(
'# Generated by h2py from %s
\
n
'
%
filename
)
filedict
=
{}
for
dir
in
searchdirs
:
if
filename
[:
len
(
dir
)]
==
dir
:
filedict
[
filename
[
len
(
dir
)
+
1
:]]
=
None
# no '/' trailing
importable
[
filename
[
len
(
dir
)
+
1
:]]
=
modname
break
process
(
fp
,
outfp
)
outfp
.
close
()
fp
.
close
()
with
open
(
filename
)
as
fp
:
outfile
=
os
.
path
.
basename
(
filename
)
i
=
outfile
.
rfind
(
'.'
)
if
i
>
0
:
outfile
=
outfile
[:
i
]
modname
=
outfile
.
upper
()
outfile
=
modname
+
'.py'
with
open
(
outfile
,
'w'
)
as
outfp
:
outfp
.
write
(
'# Generated by h2py from %s
\
n
'
%
filename
)
filedict
=
{}
for
dir
in
searchdirs
:
if
filename
[:
len
(
dir
)]
==
dir
:
filedict
[
filename
[
len
(
dir
)
+
1
:]]
=
None
# no '/' trailing
importable
[
filename
[
len
(
dir
)
+
1
:]]
=
modname
break
process
(
fp
,
outfp
)
def
pytify
(
body
):
# replace ignored patterns by spaces
...
...
@@ -161,9 +159,10 @@ def process(fp, outfp, env = {}):
except
IOError
:
pass
if
inclfp
:
outfp
.
write
(
'
\
n
# Included from %s
\
n
'
%
filename
)
process
(
inclfp
,
outfp
,
env
)
with
inclfp
:
outfp
.
write
(
'
\
n
# Included from %s
\
n
'
%
filename
)
process
(
inclfp
,
outfp
,
env
)
else
:
sys
.
stderr
.
write
(
'Warning - could not find file %s
\
n
'
%
filename
)
...
...
Tools/scripts/ifdef.py
View file @
172bb394
...
...
@@ -45,9 +45,8 @@ def main():
if
filename
==
'-'
:
process
(
sys
.
stdin
,
sys
.
stdout
)
else
:
f
=
open
(
filename
,
'r'
)
process
(
f
,
sys
.
stdout
)
f
.
close
()
with
open
(
filename
)
as
f
:
process
(
f
,
sys
.
stdout
)
def
process
(
fpi
,
fpo
):
keywords
=
(
'if'
,
'ifdef'
,
'ifndef'
,
'else'
,
'endif'
)
...
...
Tools/scripts/md5sum.py
View file @
172bb394
...
...
@@ -47,10 +47,10 @@ def printsum(filename, out=sys.stdout):
except
IOError
as
msg
:
sys
.
stderr
.
write
(
'%s: Can
\
'
t open: %s
\
n
'
%
(
filename
,
msg
))
return
1
if
fnfilter
:
filename
=
fnfilter
(
filename
)
sts
=
printsumfp
(
fp
,
filename
,
out
)
fp
.
close
(
)
with
fp
:
if
fnfilter
:
filename
=
fnfilter
(
filename
)
sts
=
printsumfp
(
fp
,
filename
,
out
)
return
sts
def
printsumfp
(
fp
,
filename
,
out
=
sys
.
stdout
):
...
...
Tools/scripts/mkreal.py
View file @
172bb394
...
...
@@ -18,14 +18,13 @@ def mkrealfile(name):
st
=
os
.
stat
(
name
)
# Get the mode
mode
=
S_IMODE
(
st
[
ST_MODE
])
linkto
=
os
.
readlink
(
name
)
# Make sure again it's a symlink
f_in
=
open
(
name
,
'r'
)
# This ensures it's a file
os
.
unlink
(
name
)
f_out
=
open
(
name
,
'w'
)
while
1
:
buf
=
f_in
.
read
(
BUFSIZE
)
if
not
buf
:
break
f_out
.
write
(
buf
)
del
f_out
# Flush data to disk before changing mode
with
open
(
name
,
'rb'
)
as
f_in
:
# This ensures it's a file
os
.
unlink
(
name
)
with
open
(
name
,
'wb'
)
as
f_out
:
while
1
:
buf
=
f_in
.
read
(
BUFSIZE
)
if
not
buf
:
break
f_out
.
write
(
buf
)
os
.
chmod
(
name
,
mode
)
def
mkrealdir
(
name
):
...
...
Tools/scripts/nm2def.py
View file @
172bb394
...
...
@@ -42,7 +42,8 @@ NM = 'nm -p -g %s' # For Linux, use "nm -g %s"
def
symbols
(
lib
=
PYTHONLIB
,
types
=
(
'T'
,
'C'
,
'D'
)):
lines
=
os
.
popen
(
NM
%
lib
).
readlines
()
with
os
.
popen
(
NM
%
lib
)
as
pipe
:
lines
=
pipe
.
readlines
()
lines
=
[
s
.
strip
()
for
s
in
lines
]
symbols
=
{}
for
line
in
lines
:
...
...
@@ -97,7 +98,7 @@ def main():
exports
=
export_list
(
s
)
f
=
sys
.
stdout
# open('PC/python_nt.def','w')
f
.
write
(
DEF_TEMPLATE
%
(
exports
))
f
.
close
()
#
f.close()
if
__name__
==
'__main__'
:
main
()
Tools/scripts/objgraph.py
View file @
172bb394
...
...
@@ -180,7 +180,8 @@ def main():
if
filename
==
'-'
:
readinput
(
sys
.
stdin
)
else
:
readinput
(
open
(
filename
,
'r'
))
with
open
(
filename
)
as
f
:
readinput
(
f
)
#
warndups
()
#
...
...
Tools/scripts/parseentities.py
View file @
172bb394
...
...
@@ -50,13 +50,15 @@ def writefile(f,defs):
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
>
1
:
infile
=
open
(
sys
.
argv
[
1
])
with
open
(
sys
.
argv
[
1
])
as
infile
:
text
=
infile
.
read
()
else
:
infile
=
sys
.
stdin
text
=
sys
.
stdin
.
read
()
defs
=
parse
(
text
)
if
len
(
sys
.
argv
)
>
2
:
outfile
=
open
(
sys
.
argv
[
2
],
'w'
)
with
open
(
sys
.
argv
[
2
],
'w'
)
as
outfile
:
writefile
(
outfile
,
defs
)
else
:
outfile
=
sys
.
stdout
text
=
infile
.
read
()
defs
=
parse
(
text
)
writefile
(
outfile
,
defs
)
writefile
(
sys
.
stdout
,
defs
)
Tools/scripts/pathfix.py
View file @
172bb394
...
...
@@ -103,29 +103,27 @@ def fix(filename):
except IOError as msg:
err('
%
s
:
cannot
open
:
%
r
\
n
' % (filename, msg))
return 1
line = f.readline()
fixed = fixline(line)
if line == fixed:
rep(filename+'
:
no
change
\
n
')
f.close()
return
head, tail = os.path.split(filename)
tempname = os.path.join(head, '
@
' + tail)
try:
g = open(tempname, '
wb
')
except IOError as msg:
f.close()
err('
%
s
:
cannot
create
:
%
r
\
n
' % (tempname, msg))
return 1
rep(filename + '
:
updating
\
n
')
g.write(fixed)
BUFSIZE = 8*1024
while 1:
buf = f.read(BUFSIZE)
if not buf: break
g.write(buf)
g.close()
f.close()
with f:
line = f.readline()
fixed = fixline(line)
if line == fixed:
rep(filename+'
:
no
change
\
n
')
return
head, tail = os.path.split(filename)
tempname = os.path.join(head, '
@
' + tail)
try:
g = open(tempname, '
wb
')
except IOError as msg:
err('
%
s
:
cannot
create
:
%
r
\
n
' % (tempname, msg))
return 1
with g:
rep(filename + '
:
updating
\
n
')
g.write(fixed)
BUFSIZE = 8*1024
while 1:
buf = f.read(BUFSIZE)
if not buf: break
g.write(buf)
# Finishing touch -- move files
...
...
Tools/scripts/pdeps.py
View file @
172bb394
...
...
@@ -64,29 +64,28 @@ m_from = re.compile('^[ \t]*import[ \t]+([^#]+)')
# Collect data from one file
#
def
process
(
filename
,
table
):
fp
=
open
(
filename
,
'r'
)
mod
=
os
.
path
.
basename
(
filename
)
if
mod
[
-
3
:]
==
'.py'
:
mod
=
mod
[:
-
3
]
table
[
mod
]
=
list
=
[]
while
1
:
line
=
fp
.
readline
()
if
not
line
:
break
while
line
[
-
1
:]
==
'
\
\
'
:
nextline
=
fp
.
readline
()
if
not
nextline
:
break
line
=
line
[:
-
1
]
+
nextline
m_found
=
m_import
.
match
(
line
)
or
m_from
.
match
(
line
)
if
m_found
:
(
a
,
b
),
(
a1
,
b1
)
=
m_found
.
regs
[:
2
]
else
:
continue
words
=
line
[
a1
:
b1
].
split
(
','
)
# print '#', line, words
for
word
in
words
:
word
=
word
.
strip
()
if
word
not
in
list
:
list
.
append
(
word
)
fp
.
close
()
with
open
(
filename
)
as
fp
:
mod
=
os
.
path
.
basename
(
filename
)
if
mod
[
-
3
:]
==
'.py'
:
mod
=
mod
[:
-
3
]
table
[
mod
]
=
list
=
[]
while
1
:
line
=
fp
.
readline
()
if
not
line
:
break
while
line
[
-
1
:]
==
'
\
\
'
:
nextline
=
fp
.
readline
()
if
not
nextline
:
break
line
=
line
[:
-
1
]
+
nextline
m_found
=
m_import
.
match
(
line
)
or
m_from
.
match
(
line
)
if
m_found
:
(
a
,
b
),
(
a1
,
b1
)
=
m_found
.
regs
[:
2
]
else
:
continue
words
=
line
[
a1
:
b1
].
split
(
','
)
# print '#', line, words
for
word
in
words
:
word
=
word
.
strip
()
if
word
not
in
list
:
list
.
append
(
word
)
# Compute closure (this is in fact totally general)
...
...
Tools/scripts/ptags.py
View file @
172bb394
...
...
@@ -19,9 +19,9 @@ def main():
for
filename
in
args
:
treat_file
(
filename
)
if
tags
:
fp
=
open
(
'tags'
,
'w'
)
tags
.
sort
()
for
s
in
tags
:
fp
.
write
(
s
)
with
open
(
'tags'
,
'w'
)
as
fp
:
tags
.
sort
()
for
s
in
tags
:
fp
.
write
(
s
)
expr
=
r'^[ \t]*(def|class)[ \t]+([a-zA-Z0-9_]+)[ \t]*[:\
(]
'
...
...
@@ -33,21 +33,22 @@ def treat_file(filename):
except:
sys.stderr.write('
Cannot
open
%
s
\
n
' % filename)
return
base = os.path.basename(filename)
if base[-3:] == '
.
py
':
base = base[:-3]
s = base + '
\
t
' + filename + '
\
t
' + '
1
\
n
'
tags.append(s)
while 1:
line = fp.readline()
if not line:
break
m = matcher.match(line)
if m:
content = m.group(0)
name = m.group(2)
s = name + '
\
t
' + filename + '
\
t
/^
' + content + '
/
\
n
'
tags.append(s)
with fp:
base = os.path.basename(filename)
if base[-3:] == '
.
py
':
base = base[:-3]
s = base + '
\
t
' + filename + '
\
t
' + '
1
\
n
'
tags.append(s)
while 1:
line = fp.readline()
if not line:
break
m = matcher.match(line)
if m:
content = m.group(0)
name = m.group(2)
s = name + '
\
t
' + filename + '
\
t
/^
' + content + '
/
\
n
'
tags.append(s)
if __name__ == '
__main__
':
main()
Tools/scripts/rgrep.py
View file @
172bb394
...
...
@@ -30,29 +30,30 @@ def main():
f
=
open
(
filename
)
except
IOError
as
msg
:
usage
(
"can't open %r: %s"
%
(
filename
,
msg
),
1
)
f
.
seek
(
0
,
2
)
pos
=
f
.
tell
()
leftover
=
None
while
pos
>
0
:
size
=
min
(
pos
,
bufsize
)
pos
=
pos
-
size
f
.
seek
(
pos
)
buffer
=
f
.
read
(
size
)
lines
=
buffer
.
split
(
"
\
n
"
)
del
buffer
if
leftover
is
None
:
if
not
lines
[
-
1
]:
del
lines
[
-
1
]
else
:
lines
[
-
1
]
=
lines
[
-
1
]
+
leftover
if
pos
>
0
:
leftover
=
lines
[
0
]
del
lines
[
0
]
else
:
leftover
=
None
for
line
in
reversed
(
lines
):
if
prog
.
search
(
line
):
print
(
line
)
with
f
:
f
.
seek
(
0
,
2
)
pos
=
f
.
tell
()
leftover
=
None
while
pos
>
0
:
size
=
min
(
pos
,
bufsize
)
pos
=
pos
-
size
f
.
seek
(
pos
)
buffer
=
f
.
read
(
size
)
lines
=
buffer
.
split
(
"
\
n
"
)
del
buffer
if
leftover
is
None
:
if
not
lines
[
-
1
]:
del
lines
[
-
1
]
else
:
lines
[
-
1
]
=
lines
[
-
1
]
+
leftover
if
pos
>
0
:
leftover
=
lines
[
0
]
del
lines
[
0
]
else
:
leftover
=
None
for
line
in
reversed
(
lines
):
if
prog
.
search
(
line
):
print
(
line
)
def
usage
(
msg
,
code
=
2
):
...
...
Tools/unicode/gencjkcodecs.py
View file @
172bb394
...
...
@@ -61,7 +61,8 @@ def gencodecs(prefix):
encoding
=
enc
.
lower
(),
owner
=
loc
)
codecpath
=
os
.
path
.
join
(
prefix
,
enc
+
'.py'
)
open
(
codecpath
,
'w'
).
write
(
code
)
with
open
(
codecpath
,
'w'
)
as
f
:
f
.
write
(
code
)
if
__name__
==
'__main__'
:
import
sys
...
...
Tools/unicode/gencodec.py
View file @
172bb394
...
...
@@ -72,9 +72,8 @@ def parsecodes(codes, len=len, range=range):
def
readmap
(
filename
):
f
=
open
(
filename
,
'r'
)
lines
=
f
.
readlines
()
f
.
close
()
with
open
(
filename
)
as
f
:
lines
=
f
.
readlines
()
enc2uni
=
{}
identity
=
[]
unmapped
=
list
(
range
(
256
))
...
...
@@ -359,18 +358,16 @@ encoding_table = codecs.charmap_build(decoding_table)
def
pymap
(
name
,
map
,
pyfile
,
encodingname
,
comments
=
1
):
code
=
codegen
(
name
,
map
,
encodingname
,
comments
)
f
=
open
(
pyfile
,
'w'
)
f
.
write
(
code
)
f
.
close
()
with
open
(
pyfile
,
'w'
)
as
f
:
f
.
write
(
code
)
def
marshalmap
(
name
,
map
,
marshalfile
):
d
=
{}
for
e
,(
u
,
c
)
in
map
.
items
():
d
[
e
]
=
(
u
,
c
)
f
=
open
(
marshalfile
,
'wb'
)
marshal
.
dump
(
d
,
f
)
f
.
close
()
with
open
(
marshalfile
,
'wb'
)
as
f
:
marshal
.
dump
(
d
,
f
)
def
convertdir
(
dir
,
dirprefix
=
''
,
nameprefix
=
''
,
comments
=
1
):
...
...
@@ -411,8 +408,8 @@ def rewritepythondir(dir, dirprefix='', comments=1):
print
(
'converting %s to %s'
%
(
mapname
,
dirprefix
+
codefile
))
try
:
map
=
marshal
.
load
(
open
(
os
.
path
.
join
(
dir
,
mapname
),
'rb'
)
)
with
open
(
os
.
path
.
join
(
dir
,
mapname
),
'rb'
)
as
f
:
map
=
marshal
.
load
(
f
)
if
not
map
:
print
(
'* map is empty; skipping'
)
else
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment