diff -r f5f5f5803935 -r 3a1ba42ac50a src/eric7/PipInterface/pipcleanup.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/PipInterface/pipcleanup.py Wed Dec 11 18:12:50 2024 +0100 @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (c) 2002 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +pipcleanup + +Script to delete all leftovers of upgrading packages currently in use. These +leftover directories are still located in the 'site-packages' directory and +their names start with a '~' character. +""" + +import glob +import os +import shutil +import sys +import sysconfig + +def main(): + """ + Function implementing the main logic. + """ + sitepackages = sysconfig.get_path("platlib") + leftovers = glob.glob("~*",root_dir=sitepackages) + for leftover in leftovers: + directory = os.path.join(sitepackages, leftover) + print(f"Removing '{directory}'.") + shutil.rmtree(directory, ignore_errors=True) + + # check again for leftovers and report via exit code + leftovers = glob.glob("~*",root_dir=sitepackages) + sys.exit(1 if bool(leftovers) else 0) + +if __name__ == "__main__": + main()