为什么 pydantic V2 版本改动这么大?

最新 pydantic 升级到了 2.0.x 版本

发现了好多修改:

  • BaseSettings 没了,从 pydantic 移动到了 pydantic-settings
  • datetime_parse 里面的东西也没了,全部被移动到了 pydantic/v1/datetime_parse.py

为什么要这种改动呢?遇到版权问题了?不太理解这种破坏性的减法

阅读 3.9k
1 个回答

为了保证回答的严谨性,我们以官方解释为准吧
图片.png

官方的文档其实已经解释了你的疑惑,
第一,改动确实存在,不过不会进行大面积甚至是“破坏性”的改动。甚至这种改变是积极有效的。
第二,这次的改动和错误修复可能会破坏一些用户的代码习惯。这是难以避免的情况,因为在软件开发中,为了提高代码质量和可维护性,有时需要进行结构上的重组。所以,将aseSettings 移动到了 pydantic-settings,这种移动可能是为了更好地组织和分离功能。将 BaseSettings 移动到独立的模块中,可以使 Pydantic 的主要功能更加专注和清晰,同时允许用户可选地导入 pydantic-settings 模块获取与设置相关的功能。datetime_parse 中的东西被移动到了 pydantic/v1/datetime_parse.py。这种变动可能是为了对 Pydantic 进行版本控制和模块的更好组织。将特定版本相关的功能放在独立文件夹中可以更好地管理和维护代码。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题