Mon, 24 Feb 2025 15:43:49 +0100
Adjusted the code to the modified issue codes.
11091 | 1 | #!/usr/bin/env python3 |
2 | # -*- coding: utf-8 -*- | |
3 | ||
11120
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
4 | # Copyright (c) 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
11091 | 5 | # |
6 | ||
7 | """ | |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
8 | pipcleanup utility script. |
11091 | 9 | |
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 | |
12 | their names start with a '~' character. | |
13 | """ | |
14 | ||
15 | import glob | |
16 | import os | |
17 | import shutil | |
18 | import sys | |
19 | import sysconfig | |
20 | ||
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
21 | |
11091 | 22 | def main(): |
23 | """ | |
24 | Function implementing the main logic. | |
25 | """ | |
26 | sitepackages = sysconfig.get_path("platlib") | |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
27 | leftovers = glob.glob("~*", root_dir=sitepackages) |
11091 | 28 | for leftover in leftovers: |
29 | directory = os.path.join(sitepackages, leftover) | |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11120
diff
changeset
|
30 | print(f"Removing '{directory}'.") # noqa: M-801 |
11091 | 31 | shutil.rmtree(directory, ignore_errors=True) |
32 | ||
33 | # check again for leftovers and report via exit code | |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
34 | leftovers = glob.glob("~*", root_dir=sitepackages) |
11120
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
35 | |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
36 | # delete more uninstall directories on Windows machines |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
37 | if sys.platform.startswith("win"): |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
38 | tempDir = os.path.expanduser("~\\AppData\\Local\\Temp") |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
39 | win_leftovers = glob.glob("pip-uninstall-*", root_dir=tempDir) |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
40 | for leftover in win_leftovers: |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
41 | directory = os.path.join(tempDir, leftover) |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11120
diff
changeset
|
42 | print(f"Removing '{directory}'.") # noqa: M-801 |
11120
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
43 | shutil.rmtree(directory, ignore_errors=True) |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
44 | |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
45 | # check again for leftovers and report via exit code |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
46 | win_leftovers = glob.glob("pip-uninstall-*", root_dir=tempDir) |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
47 | else: |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
48 | win_leftovers = [] |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
49 | |
cdefc0469f4d
Extended the pip cleanup script to remove some additional temporary directories on Windows platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11105
diff
changeset
|
50 | sys.exit(1 if bool(leftovers) or bool(win_leftovers) else 0) |
11091 | 51 | |
11105
ec86fc991d28
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11091
diff
changeset
|
52 | |
11091 | 53 | if __name__ == "__main__": |
54 | main() |