Skip to content

Commit 30afd50

Browse files
committed
run fix_dunder.py, update images
1 parent bf1dcf5 commit 30afd50

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed

fix_dunder.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/usr/bin/env python3
2+
3+
import argparse
4+
import os
5+
import re
6+
import shutil
7+
import sys
8+
9+
SCRIPT = sys.argv[0]
10+
RE_DUNDER_CODE = re.compile(r'`__.+?__`')
11+
RE_DUNDER_IDENT = re.compile(r'`(__.+?__)`')
12+
13+
def backup(filename: str) -> None:
14+
msg = ''
15+
copy_name = filename + '.bkp'
16+
try:
17+
shutil.copy2(filename, copy_name)
18+
except FileNotFoundError:
19+
msg = f'File {filename!r} not found.'
20+
if not msg and not os.path.exists(copy_name):
21+
msg = f'Unable to create {copy_name!r}.'
22+
if msg:
23+
print(msg, file=sys.stderr)
24+
sys.exit(1)
25+
26+
def replace(filename: str) -> str:
27+
with open(filename) as fp:
28+
adoc = fp.read()
29+
30+
for dunder_code in sorted(set(RE_DUNDER_CODE.findall(adoc))):
31+
ident = RE_DUNDER_IDENT.match(dunder_code)[1]
32+
adoc = re.sub(dunder_code, f'`+{ident}+`', adoc)
33+
print(ident)
34+
35+
with open(filename, 'w') as fp:
36+
fp.write(adoc)
37+
38+
def main() -> None:
39+
parser = argparse.ArgumentParser(
40+
prog=SCRIPT,
41+
description='Subsitui `__dunder__` por `+__dunder__+`.',
42+
epilog=f'EXEMPLO:\n\t{SCRIPT} cap01.adoc')
43+
44+
parser.add_argument('asciidoc_filename')
45+
args = parser.parse_args()
46+
backup(args.asciidoc_filename)
47+
replace(args.asciidoc_filename)
48+
49+
50+
if __name__ == '__main__':
51+
main()
221 KB
Loading
884 KB
Loading
226 KB
Loading

0 commit comments

Comments
 (0)