Исключение файлов
ty автоматически обнаруживает все файлы Python в вашем проекте. Вы можете настроить, где именно ty выполняет поиск, с помощью параметров src.include и src.exclude.
Например, в следующей конфигурации ty проверяет все файлы Python в каталогах src и tests, за исключением файлов в каталоге src/generated:
pyproject.toml
[tool.ty.src]
include = ["src", "tests"]
exclude = ["src/generated"]
Исключения по умолчанию
По умолчанию ty исключает ряд часто игнорируемых директорий. Если вы хотите включить одну из таких директорий, можно сделать это, добавив отрицательное правило exclude с ведущим !:
pyproject.toml
[tool.ty.src]
# Убрать `build` из списка исключённых директорий.
exclude = ["!**/build/"]
По умолчанию ty игнорирует файлы, перечисленные в .ignore или .gitignore. Чтобы отключить эту функциональность, установите параметр respect-ignore-files в значение false.
Явные цели
Вы можете явно передавать пути, которые ty должен проверить, например:
ty check src scripts/benchmark.py
Пути, переданные как позиционные аргументы в ty check, будут включены в проверку даже в том случае, если они в противном случае были бы проигнорированы через фильтры exclude или файл игнорирования.
Синтаксис include и exclude
И include, и exclude поддерживают glob‑шаблоны в стиле gitignore:
[abc]— совпадает с любым символом из скобок. Последовательности символов также могут задавать диапазоны символов в порядке Unicode, например,[0-9]задаёт любой символ между0и9включительно. Незакрытая скобка считается недопустимой.?— совпадает с любым одиночным символом, кроме/.**— совпадает с нулём или более компонентов пути. Эта последовательность должна образовывать один компонент пути, поэтому./**aи./b**/недопустимы и приведут к ошибке. Последовательность из более чем двух подряд идущих символов*также недопустима.*— совпадает с любой (возможно, пустой) последовательностью символов (кроме/).src— совпадает с файлом или директорией (включая её содержимое) с именемsrc.src/— совпадает с директорией (включая её содержимое) с именемsrc.
Все шаблоны «якорятся» к корню: шаблон src включает только /src, но не, например, /test/src. Чтобы включить любую директорию с именем src, используйте префиксный шаблон **/src. То же самое относится и к шаблонам исключения: src исключает только /src, но не /test/src.
Warning
Префиксный шаблон include вроде **/src может заметно замедлить обнаружение файлов Python.
Все поля, принимающие шаблоны, используют урезанный переносимый синтаксис glob из PEP 639 с добавлением того, что символы можно экранировать обратным слешем.
Исключение файлов виртуальных окружений
В Python 3.13+ модуль venv добавляет файл .gitignore в корень виртуального окружения, и ty не будет выводить диагностику для его файлов. Однако при использовании более старой версии Python ty может включать диагностику для файлов внутри виртуального окружения.
Вы можете исправить это, добавив .gitignore в окружение, например, для виртуального окружения с именем .venv:
echo "*" > .venv/.gitignore
Либо добавьте ваше виртуальное окружение в .gitignore или .ignore.