forked from sqlalchemy/sqlalchemy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcorrections.py
39 lines (35 loc) · 1.16 KB
/
corrections.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
targets = {}
quit = False
def missing_reference(app, env, node, contnode):
global quit
if quit:
return
reftarget = node.attributes['reftarget']
reftype = node.attributes['reftype']
refdoc = node.attributes['refdoc']
rawsource = node.rawsource
if reftype == 'paramref':
return
target = rawsource
if target in targets:
return
print "\n%s" % refdoc
print "Reftarget: %s" % rawsource
correction = raw_input("? ")
correction = correction.strip()
if correction == ".":
correction = ":%s:`.%s`" % (reftype, reftarget)
elif correction == 'q':
quit = True
else:
targets[target] = correction
def write_corrections(app, exception):
print "#!/bin/sh\n\n"
for targ, corr in targets.items():
if not corr:
continue
print """find lib/ -print -type f -name "*.py" -exec sed -i '' 's/%s/%s/g' {} \;""" % (targ, corr)
print """find doc/build/ -print -type f -name "*.rst" -exec sed -i '' 's/%s/%s/g' {} \;""" % (targ, corr)
def setup(app):
app.connect('missing-reference', missing_reference)
app.connect('build-finished', write_corrections)