Подавление
Правила также можно отключать в конкретных местах кода (вместо полного отключения правила), чтобы скрывать ложные срабатывания или допустимые нарушения.
Note
Чтобы отключить правило полностью, установите для него уровень ignore, как описано в разделе уровни правил.
Комментарии подавления ty
Чтобы подавить нарушение правила в строке, добавьте в её конец комментарий # ty: ignore[]:
a = 10 + "test" # ty: ignore[unsupported-operator]
Нарушения, занимающие несколько строк, можно подавить, добавив комментарий в конец первой или последней строки нарушения:
def sum_three_numbers(a: int, b: int, c: int) -> int: ...
# в первой строке
sum_three_numbers( # ty: ignore[missing-argument]
3,
2
)
# или в последней строке
sum_three_numbers(
3,
2
) # ty: ignore[missing-argument]
Чтобы подавить несколько нарушений в одной строке, перечислите правила через запятую:
sum_three_numbers("one", 5) # ty: ignore[missing-argument, invalid-argument-type]
Note
Указание имён правил (например, [rule1, rule2]) необязательно. Тем не менее мы настоятельно рекомендуем указывать конкретные правила, чтобы случайно не подавить другие ошибки.
Стандартные комментарии подавления
ty поддерживает стандартный формат комментария type: ignore, введённый в PEP 484.
ty обрабатывает их аналогично комментариям ty: ignore, но подавляет все нарушения в этой строке, даже при использовании type: ignore[code].
# Игнорировать все ошибки типизации в следующей строке
sum_three_numbers("one", 5) # type: ignore
Несколько комментариев подавления
Чтобы подавить ошибку типизации в строке, где уже есть комментарий подавления от другого инструмента, добавьте комментарий # ty: ignore в ту же строку.
Например, чтобы подавить ошибку типов и отключить форматирование для конкретной строки:
result = calculate() # ty: ignore[invalid-argument-type] # fmt: skip
# или
result = calculate() # fmt: off # ty: ignore[invalid-argument-type]
Неиспользуемые комментарии подавления
Если включено правило unused-ignore-comment, ty будет сообщать о неиспользуемых комментариях ty: ignore и type: ignore.
Нарушения unused-ignore-comment можно подавить только с помощью # ty: ignore[unused-ignore-comment]. Их нельзя подавить с помощью # ty: ignore без кода правила или # type: ignore.
Директива @no_type_check
ty поддерживает декоратор @no_type_check для подавления всех нарушений внутри функции.
from typing import no_type_check
def sum_three_numbers(a: int, b: int, c: int) -> int:
return a + b + c
@no_type_check
def main():
sum_three_numbers(1, 2) # ошибки из-за отсутствующего аргумента не будет
Использование декоратора @no_type_check для класса не поддерживается.