「exclude-newer」选项不以持续时间为准

编程语言 2026-07-09

我有一个使用uv的 Python项目,我想设置exclude-newer策略,但它忽略了持续时间。在我的 pyproject.toml 中,我有

[tool.uv]
exclude-newer = "7 days"

不过当我运行例如 uv add [some_package] 时,它给我一个警告:

warning: Failed to parse `pyproject.toml` during settings discovery:
  TOML parse error at line 43, column 17
     |
  43 | exclude-newer = "7 days"
     |                 ^^^^^^^^
  failed to parse year in date "7 days": failed to parse "7 da" as year (a four digit integer): invalid digit, expected 0-9 but got

uv 文档

接受RFC 3339时间戳(例如 2006-12-02T02:07:43Z),一种“友好”的持续时间(例如 24 hours1 week30 days),或ISO 8601持续时间(例如 PT24HP7DP30D)。

我尝试将其设置为ISO持续时间,结果仍然有同样的警告。当我把它设置为一个具体的日期时间时,它能工作。如何将它设置成像若干天这样的持续时间来工作?

我使用uv 0.9.2和 Python 3.11.14。

解决方案

根据 0.9.x更新日志,直到v0.9.17才新增对 relative exclude-newer 的支持:

0.9.17

发布时间为2025-12-09。

增强功能

  • ...
  • exclude-newer 中增加对相对持续时间的支持(也称为依赖冷却时间) (#16814)

因此你将需要至少升级到这个版本(撰写本文时文档中反映的版本是v0.11.10)。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章