Add nosmartquotes.py.

This commit is contained in:
voussoir 2021-08-17 00:42:00 -07:00
parent e0ebe5da3b
commit f2003beabf
No known key found for this signature in database
GPG key ID: 5F7554F8C26DACCB

60
nosmartquotes.py Normal file
View file

@ -0,0 +1,60 @@
'''
no smart quotes
===============
Replace smart quotes and smart apostrophes with regular ASCII values.
Just say no to smart quotes!
'''
import argparse
import sys
from voussoirkit import betterhelp
from voussoirkit import spinal
from voussoirkit import vlogging
log = vlogging.getLogger(__name__, 'nosmartquotes')
def replace_smartquotes(text):
text = text.replace('', '"')
text = text.replace('', '"')
text = text.replace('', "'")
text = text.replace('', "'")
return text
def nosmartquotes_argparse(args):
files = spinal.walk(
glob_filenames=args.filename_glob,
recurse=args.recurse,
)
for file in files:
handle = file.open('r', encoding='utf-8')
text = handle.read()
handle.close()
original_text = text
text = replace_smartquotes(text)
if text == original_text:
continue
handle = file.open('w', encoding='utf-8')
handle.write(text)
handle.close()
print(file.absolute_path)
return 0
@vlogging.main_decorator
def main(argv):
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('filename_glob')
parser.add_argument('--recurse', action='store_true')
parser.set_defaults(func=nosmartquotes_argparse)
return betterhelp.single_main(argv, parser, __doc__)
if __name__ == '__main__':
raise SystemExit(main(sys.argv[1:]))