是否可以忽略一行的 pyright 检查?

Is it possible to ignore pyright checking for one line?

我需要忽略一行的 pyright 检查。有什么特别的评论吗?

def create_slog(group: SLogGroup, data: Optional[dict] = None):
    SLog.insert_one(SLog(group=group, data=data))  # pyright: disable

# pyright: disable -- 无效

是的,它带有“#type:ignore”,例如:

try:
    return int(maybe_digits_string)    # type: ignore
except Exception:
    return None

如上面的评论所述,使用# type: ignore是有效的,但它与其他类型检查器(例如mypy)冲突。

Pyright 现在支持 # pyright: ignore 评论。这已记录在案 here

foo: int = "123"  # pyright: ignore

此评论后可以跟以逗号分隔的应该忽略的 pyright 规则列表:

foo: int = "123"  # pyright: ignore [reportPrivateUsage, reportGeneralTypeIssues]

以下将禁用对整个文件的给定规则的检查:

# pyright: reportUndefinedVariable=false, reportGeneralTypeIssues=false

参见pyright docs on comments