3 |
3 |
4 # Copyright (c) 2002 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
4 # Copyright (c) 2002 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
5 # |
5 # |
6 |
6 |
7 """ |
7 """ |
8 pipcleanup |
8 pipcleanup utility script. |
9 |
9 |
10 Script to delete all leftovers of upgrading packages currently in use. These |
10 Script to delete all leftovers of upgrading packages currently in use. These |
11 leftover directories are still located in the 'site-packages' directory and |
11 leftover directories are still located in the 'site-packages' directory and |
12 their names start with a '~' character. |
12 their names start with a '~' character. |
13 """ |
13 """ |
16 import os |
16 import os |
17 import shutil |
17 import shutil |
18 import sys |
18 import sys |
19 import sysconfig |
19 import sysconfig |
20 |
20 |
|
21 |
21 def main(): |
22 def main(): |
22 """ |
23 """ |
23 Function implementing the main logic. |
24 Function implementing the main logic. |
24 """ |
25 """ |
25 sitepackages = sysconfig.get_path("platlib") |
26 sitepackages = sysconfig.get_path("platlib") |
26 leftovers = glob.glob("~*",root_dir=sitepackages) |
27 leftovers = glob.glob("~*", root_dir=sitepackages) |
27 for leftover in leftovers: |
28 for leftover in leftovers: |
28 directory = os.path.join(sitepackages, leftover) |
29 directory = os.path.join(sitepackages, leftover) |
29 print(f"Removing '{directory}'.") |
30 print(f"Removing '{directory}'.") # noqa: M801 |
30 shutil.rmtree(directory, ignore_errors=True) |
31 shutil.rmtree(directory, ignore_errors=True) |
31 |
32 |
32 # check again for leftovers and report via exit code |
33 # check again for leftovers and report via exit code |
33 leftovers = glob.glob("~*",root_dir=sitepackages) |
34 leftovers = glob.glob("~*", root_dir=sitepackages) |
34 sys.exit(1 if bool(leftovers) else 0) |
35 sys.exit(1 if bool(leftovers) else 0) |
|
36 |
35 |
37 |
36 if __name__ == "__main__": |
38 if __name__ == "__main__": |
37 main() |
39 main() |