#chrono #pyo3 #date-time #python #api-bindings #wrapper

pyo3-chrono

通过 newtypes 为 Chrono 结构体添加 PyO3 支持

8 个版本 (4 个破坏性更新)

0.5.1 2023年1月18日
0.5.0 2022年8月24日
0.4.0 2022年3月1日
0.3.0 2021年11月4日
0.1.0 2021年1月21日

#287日期和时间

Download history 203/week @ 2024-03-14 207/week @ 2024-03-21 236/week @ 2024-03-28 363/week @ 2024-04-04 271/week @ 2024-04-11 111/week @ 2024-04-18 55/week @ 2024-04-25 64/week @ 2024-05-02 41/week @ 2024-05-09 84/week @ 2024-05-16 53/week @ 2024-05-23 414/week @ 2024-05-30 44/week @ 2024-06-06 53/week @ 2024-06-13 56/week @ 2024-06-20 24/week @ 2024-06-27

每月下载量 189
puff-rs 中使用

MIT 许可证

18KB
318

此 Crate 已弃用

PyO3 0.17.2 在 https://github.com/PyO3/pyo3/pull/2612 中通过 chrono 功能标志添加了对 chrono 的原生支持。您不应再使用此 Crate。

pyo3-chrono

此 Crate 提供了围绕 chrono 的 NaiveDateTimeNaiveDateNaiveTimeDuration 结构体的 newtype 包装器,可以在 PyO3 应用程序中使用。

闰秒处理正确,但不受时区支持,因为 Python 本身不支持其日期时间中的时区。

可以通过 serde 功能标志启用 serde::Serializeserde::Deserialize 特性的实现。

截断

Python 可以以微秒精度存储从负一百亿天到正一百亿天的持续时间。然而,Chrono 只接受 i64 的微秒

Python's max duration: 84599999999999999999 microseconds
Chrono's max duration: 9223372036854775807 microseconds

Python's min duration: -84599999915400000000 microseconds
Chrono's min duration: -9223372036854775808 microseconds

如你所见,Chrono 不支持 Python 支持的整个持续时间范围。当遇到 Chrono 中无法表示的持续时间时,此库将持续时间截断为最接近的受支持的持续时间。

依赖关系

~3.5–9MB
~76K SLoC