我们的代码是如此相互依赖!向项目添加依赖项就是代码的完成方式。
每次有人打喷嚏时,都会将新的依赖项添加到项目的某个位置。
我们站在版权辩论的这一边真是太好了,默认情况下是在其他人的工作之上构建东西,而不是向每个人开枪,谁敢看我的代码的方向。但是...谁会一直升级所有这些依赖项?
在完美的世界中,我们是一个社区,我们都将库升级到最新版本,对吧?
错了!开发人员需要被温柔地推动去做正确的事情。是的,轻柔地,这样他们就不会注意到自己被推了???。
我们使用的是 pytest,所以这一步对我们来说很简单。
从版本 3.1 开始,pytest 现在会在测试执行期间自动捕获警告并在会话结束时显示它们:
- Pytest:如何捕获警告
像这样:
============================= warnings summary ============================= test_bla_bla_bla.py::test_test .../some_file.py:65: PydanticDeprecatedSince20: `pydantic.config.Extra` is deprecated, use literal values instead (e.g. `extra='allow'`). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.9/migration/ extra=Extra.allow, .../marshmallow/fields.py:1186: RemovedInMarshammlow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead. super().__init__(**kwargs) ======================= 1 passed, 2 warnings in 0.12s =======================
我看到了棉花糖警告,查看了代码,发现这是一个简单的修复。
所以,我选择RemovedInMarshammlow4Warning。
同样,我们使用的是 pytest,所以这一步对我们来说也很简单。
只需将其添加到配置文件中:
[tool.pytest.ini_options] ... filterwarnings = [ "error::marshmallow.warnings.RemovedInMarshmallow4Warning" ]
- Pytest:控制警告
现在触发此弃用警告的每个测试都将失败。
不幸的是,你必须为这里的团队带一份。你必须去修复所有触发此警告的地方。
我知道..这不公平。
这是很多工作,这是乏味的工作,你甚至无法向你的老板吹嘘它,因为它太技术性,并且从他们的角度来看通常被认为是无关紧要的。
这所做的一切都是为了帮助下一个人(不是你),他将升级棉花糖,并且代码中的任何内容都不会被破坏。所以,他们也不会感谢你,因为他们甚至不会注意到你已经做了任何事情。
所以,...我想说的是:有时你需要做正确的事,但没有人会因此而感谢你。
但我会知道的。你会知道的。 ?
最终,应该会有一个消息让人困惑:他们写的代码和上次一样,但这一次测试失败了,这是怎么回事?
你可以说:“哦,很难说,但我确实看到这是一个已弃用的功能,这一定是原因”。 ?
以上是如何鼓励开发人员修复已弃用功能的 Python 警告的详细内容。更多信息请关注PHP中文网其他相关文章!