| # Cleanup all tables and PYC files to ensure no PLY stuff is cached | |
| from __future__ import print_function | |
| import itertools | |
| import fnmatch | |
| import os, shutil | |
| file_patterns = ('yacctab.*', 'lextab.*', '*.pyc', '__pycache__') | |
| def do_cleanup(root): | |
| for path, dirs, files in os.walk(root): | |
| for file in itertools.chain(dirs, files): | |
| try: | |
| for pattern in file_patterns: | |
| if fnmatch.fnmatch(file, pattern): | |
| fullpath = os.path.join(path, file) | |
| if os.path.isdir(fullpath): | |
| shutil.rmtree(fullpath, ignore_errors=False) | |
| else: | |
| os.unlink(fullpath) | |
| print('Deleted', fullpath) | |
| except OSError: | |
| pass | |
| if __name__ == "__main__": | |
| do_cleanup('.') |