添加清理 pycache 和编译扩展的功能
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
def clean_pycache(root_dir):
|
||||
"""
|
||||
Recursively deletes all __pycache__ directories and .pyc files.
|
||||
"""
|
||||
print(f"Cleaning __pycache__ in: {root_dir}")
|
||||
for root, dirs, files in os.walk(root_dir):
|
||||
# Delete __pycache__ directories
|
||||
if "__pycache__" in dirs:
|
||||
pycache_path = os.path.join(root, "__pycache__")
|
||||
print(f"Removing directory: {pycache_path}")
|
||||
shutil.rmtree(pycache_path)
|
||||
dirs.remove("__pycache__") # Don't visit the deleted directory
|
||||
|
||||
# Delete orphan .pyc files
|
||||
for file in files:
|
||||
if file.endswith(".pyc"):
|
||||
pyc_path = os.path.join(root, file)
|
||||
print(f"Removing file: {pyc_path}")
|
||||
os.remove(pyc_path)
|
||||
|
||||
def clean_extensions(root_dir):
|
||||
"""
|
||||
Recursively deletes all compiled .so and .pyd files.
|
||||
"""
|
||||
print(f"Cleaning compiled extensions in: {root_dir}")
|
||||
for root, dirs, files in os.walk(root_dir):
|
||||
for file in files:
|
||||
if file.endswith(".so") or file.endswith(".pyd"):
|
||||
ext_path = os.path.join(root, file)
|
||||
print(f"Removing extension: {ext_path}")
|
||||
os.remove(ext_path)
|
||||
|
||||
if __name__ == "__main__":
|
||||
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||
|
||||
# Clean pycache
|
||||
clean_pycache(project_root)
|
||||
|
||||
# Optionally clean extensions if requested via argument
|
||||
if len(sys.argv) > 1 and sys.argv[1] == "--all":
|
||||
clean_extensions(project_root)
|
||||
|
||||
print("Cleanup complete.")
|
||||
Reference in New Issue
Block a user