---
type: JS Module
title: main.mjs
resource: npm/rules/python/ruff/main.mjs
docgen:
  crc: 00e5708a
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  score: 100
  issues: judge:inaccurate:0.98
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

Цей детектор працює у **read-only** режимі та здійснює перевірку форматування та синтаксису Python-коду в заданому робочому каталозі. Він використовує `ruff` (зокрема, `ruff check` та `ruff format --check`) через `uv run --frozen` для аналізу цільових файлів, гарантуючи відповідність коду правилам, визначеним у `pyproject.toml`. Детектор аналізує наданий набір файлів (`ctx.files`) або весь проєкт (`.`), використовуючи транзитивне підвантаження імпортованих модулів для коректної перевірки. Результат містить зареєстровані порушення, виявлені під час перевірки.

## Поведінка

1. Якщо у робочому каталозі відсутній файл `pyproject.toml`, обробка припиняється.
2. Визначаються цільові файли для аналізу: або наданий список файлів, або всі файли у робочому каталозі з розширенням `.py`.
3. Якщо цільових файлів немає, обробка припиняється.
4. Перевіряється доступність бінарника `uv` у системному шляху. Якщо його немає, реєстрація порушення про помилку з `uv` і обробка припиняється.
5. Перевіряється доступність інструменту `ruff` у середовищі `uv`. Якщо він недоступний, обробка припиняється.
6. Викликається `lint` для виконання перевірки синтаксису та логіки за допомогою `ruff check` для всіх цільових файлів.
7. Якщо `ruff check` завершується з помилкою, це фіксується як порушення.
8. Викликається `lint` для перевірки форматування коду за допомогою `ruff format --check` для всіх цільових файлів.
9. Результат аналізу повертається з зареєстрованими порушеннями.

## Публічний API

lint — виявляє проблеми у коді за допомогою парсера python/ruff (только читання).

## Гарантії поведінки

- Read-only: не виконує операцій запису (ФС/БД).
