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)
|