import os import shutil from pathlib import Path """Cleans all django-created files and compiled python. Used by the pre-run.sh script which cleans and initialises everything before running: python databaseReset.py reset Downloaded (June 2020) from: https://groups.google.com/forum/#!topic/django-users/C8Q7CTpcChc """ # from https://groups.google.com/forum/#!topic/django-users/C8Q7CTpcChc # Just put it in the folder where manage.py file is and run it. folders = [] base_dir = os.path.dirname(os.path.realpath(__file__)) def get_directory_list(): global folders global base_dir for root, d_names, f_names in os.walk(base_dir): for name in d_names: folders.append(os.path.join(root, name)) folders = sorted(folders) return folders def delete_pycache(): global folders for folder in folders: if folder.endswith("__pycache__"): shutil.rmtree(folder) print("All __pycache__ files deleted.") return None def delete_migrations(): global folders for folder in folders: if folder.endswith("migrations"): for item in os.listdir(folder): if not item.endswith("__init__.py"): fullitem = Path(folder, item) if fullitem.is_dir(): print(f"__ directory {item} in {folder} not deleted") else: os.remove(os.path.join(folder, item)) print("All migration files deleted.") return None def delete_sqlite3(): global base_dir db_file = os.path.join(base_dir, "troggle.sqlite") #print("troggle.sqlite: {}".format(db_file)) if os.path.exists(db_file): try: os.remove(db_file) print(f"\n>>> troggle.sqlite: {db_file} DELETED\n") except: print(f"troggle.sqlite: {db_file} NOT deleted") def main(): global folders print(f"base directory used: {base_dir}") try: get_directory_list() delete_pycache() delete_migrations() delete_sqlite3() print("All cleanup operations performed successfully.") except Exception: print("There was some error! Aaargh. \n") raise if __name__ == "__main__": main()