48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
|
#!/usr/bin/env python3
|
|||
|
"""
|
|||
|
Простая проверка основных модулей на ошибки mypy
|
|||
|
"""
|
|||
|
|
|||
|
import subprocess
|
|||
|
import sys
|
|||
|
|
|||
|
|
|||
|
def check_mypy():
|
|||
|
"""Запускает mypy и возвращает количество ошибок"""
|
|||
|
try:
|
|||
|
result = subprocess.run(["mypy", ".", "--explicit-package-bases"], capture_output=True, text=True, check=False)
|
|||
|
|
|||
|
lines = result.stdout.split("\n")
|
|||
|
error_lines = [line for line in lines if "error:" in line]
|
|||
|
|
|||
|
print("MyPy проверка завершена")
|
|||
|
print(f"Найдено ошибок: {len(error_lines)}")
|
|||
|
|
|||
|
if error_lines:
|
|||
|
print("\nОсновные ошибки:")
|
|||
|
for i, error in enumerate(error_lines[:10]): # Показываем первые 10
|
|||
|
print(f"{i + 1}. {error}")
|
|||
|
|
|||
|
if len(error_lines) > 10:
|
|||
|
print(f"... и ещё {len(error_lines) - 10} ошибок")
|
|||
|
|
|||
|
return len(error_lines)
|
|||
|
|
|||
|
except Exception as e:
|
|||
|
print(f"Ошибка при запуске mypy: {e}")
|
|||
|
return -1
|
|||
|
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
errors = check_mypy()
|
|||
|
|
|||
|
if errors == 0:
|
|||
|
print("✅ Все проверки mypy пройдены!")
|
|||
|
sys.exit(0)
|
|||
|
elif errors > 0:
|
|||
|
print(f"⚠️ Найдено {errors} ошибок типизации")
|
|||
|
sys.exit(1)
|
|||
|
else:
|
|||
|
print("❌ Ошибка при выполнении проверки")
|
|||
|
sys.exit(2)
|