上回 说到在 Go 里弄出了一个 tzf 的库,可以非常快速得到经纬度所在的时区信息。

当时的想法是用 Rust 实现出来然后用 maturin 制作 Python 扩展。

经过一段时间的摸索发现 Rust 的坑有点大,于是 2022-07-23 转换了方向,在 Python 里调用 Go 编译出来的 .so 文件。 验证 demo 还算简单 ringsaturn/tzf#11

2022-07-31 经过一天的折腾,终于在 PyPI 发布了 macOS&Linux 平台的 wheel 文件。

安装:

pip install tzfpy

使用:

>>> from tzfpy import get_tz
>>> print(get_tz(121.4737, 31.2305))
Asia/Shanghai

性能上比和 Numba 加速的 timezonefinder 基本持平,但是相对于 timezonefinder,在多边形边缘性能没有什么明显变化。 具体可以见 Continuous Benchmark