diff --git a/.gitea/workflows/main.yml b/.gitea/workflows/main.yml index 2bd16cc5..68197ac6 100644 --- a/.gitea/workflows/main.yml +++ b/.gitea/workflows/main.yml @@ -35,7 +35,7 @@ jobs: - - name: Run linting and type checking + - name: Run linting run: | echo "🔍 Запускаем проверки качества кода..." @@ -46,10 +46,21 @@ jobs: # Ruff formatting check echo "🎨 Проверяем форматирование с помощью Ruff..." uv run ruff format . --line-length 120 - - # MyPy type checking + + - name: Run type checking + run: | echo "🏷️ Проверяем типы с помощью MyPy..." - uv run mypy . --ignore-missing-imports -v + echo "📊 Доступная память:" + free -h + + # Пробуем dmypy сначала, если не работает - fallback на обычный mypy + if command -v dmypy >/dev/null 2>&1 && uv run dmypy run -- auth/ cache/ orm/ resolvers/ services/ storage/ utils/ --ignore-missing-imports; then + echo "✅ dmypy выполнен успешно" + else + echo "⚠️ dmypy недоступен, используем обычный mypy" + # Запускаем mypy только на основных модулях для экономии памяти + uv run mypy auth/ cache/ orm/ resolvers/ services/ storage/ utils/ --ignore-missing-imports + fi - name: Install Node.js Dependencies run: | diff --git a/mypy.ini b/mypy.ini index 388bba33..8f35ad51 100644 --- a/mypy.ini +++ b/mypy.ini @@ -13,8 +13,14 @@ plugins = sqlalchemy.ext.mypy.plugin # Игнорируем missing imports для внешних библиотек ignore_missing_imports = True -# Временно исключаем только тесты и алембик -exclude = ^(tests/.*)$ +# Оптимизации производительности +cache_dir = .mypy_cache +sqlite_cache = True +incremental = False +show_error_codes = True + +# Исключаем тесты и тяжелые зависимости +exclude = ^(tests/.*|.*transformers.*|.*torch.*|.*huggingface.*|.*safetensors.*|.*PIL.*|.*google.*|.*sentence_transformers.*|.*dump/.*|.*node_modules/.*|.*dist/.*)$ # Настройки для конкретных модулей [mypy-graphql.*]