# 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('.') |