为 SQLAlchemy Model 添加 type hint 和 type check
原文中文,约2800字,阅读约需7分钟。
📝
内容提要
本文介绍了一种解决SQLAlchemy Model/ORM的typing问题的解决方案。通过使用Python的PEP 681中的dataclass_transform装饰器,可以将第三方类标注为类似于dataclass的功能。这个装饰器提供了大部分所需的功能,但是会导致类型检查器认为字段是可选的。可以通过编写一个dummy __init__方法来解决这个问题。可以直接在SQLAlchemy的Base类上使用这个装饰器,以避免重复编写Model类。
🏷️