diff options
Diffstat (limited to 'test/sanity/code-smell/no-unwanted-characters.py')
-rw-r--r-- | test/sanity/code-smell/no-unwanted-characters.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/sanity/code-smell/no-unwanted-characters.py b/test/sanity/code-smell/no-unwanted-characters.py new file mode 100644 index 0000000..26e5912 --- /dev/null +++ b/test/sanity/code-smell/no-unwanted-characters.py @@ -0,0 +1,27 @@ +"""Disallow use of unwanted Unicode characters.""" +from __future__ import annotations + +import re +import sys + + +def main(): + """Main entry point.""" + for path in sys.argv[1:] or sys.stdin.read().splitlines(): + with open(path, 'rb') as path_fd: + for line, text in enumerate(path_fd.readlines()): + try: + text = text.decode('utf-8') + except UnicodeDecodeError as ex: + print('%s:%d:%d: UnicodeDecodeError: %s' % (path, line + 1, ex.start + 1, ex)) + continue + + match = re.search('(\u00a0)', text) + + if match: + print('%s:%d:%d: use an ASCII space instead of a Unicode no-break space' % ( + path, line + 1, match.start(1) + 1)) + + +if __name__ == '__main__': + main() |