主要观点:
- Astral的工具如Ruff和uv改善了日常开发体验,其中Red Knot正处于开发中,旨在替代mypy。
- 作者通过克隆ruff仓库并在Claude的帮助下,成功构建并运行了Red Knot,介绍了其编译、基本用法、与mypy的比较、局限性以及运行速度等方面。
关键信息:
- Red Knot尚未发布,需从ruff代码库中构建运行,主要用rust编写。
- 编译命令为
cargo build --bin red_knot --release
,运行命令为./target/release/red_knot
,可进行检查、设置配置等操作。 - 与mypy相比,Red Knot在一些小型代码库上速度约为mypy的100倍,但在大型项目如SQLAlchemy和mypy代码基上存在问题,且不进行缓存。
重要细节:
- 在MCPunk代码库中运行Red Knot时出现了一些问题,如对
from collections.abc import Generator
的错误处理、对短电路or
的处理以及不尊重typing.assert_never
的 exhaustiveness 检查等。 - 在不同项目中运行Red Knot的时间不同,如Pydantic为0.73s,FastAPI为0.44s,mypy为4.38s(冷启动)和0.2s(后续运行)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。