Skip to content

v1.3.3

Choose a tag to compare

@github-actions github-actions released this 10 Aug 13:28
· 21 commits to main since this release
Immutable release. Only release title and notes can be modified.
60b2f0d

v1.3.3

Bug Fixes

  • Queries exactly on a timezone border no longer return an empty result. Via tzf-rs 1.3.7 (tzf-rs#208): the geometry library treated a point lying on a shared polygon edge as outside both neighbouring polygons. This was easiest to hit with nautical zones, whose borders sit on whole meridians (7.5, 22.5, ...), exactly the kind of coordinate people type by hand. The finder now uses Polygon::contains_point_allow_on_edge (geometry-rs 0.5.1), so a border point belongs to both adjacent zones: get_tzs() returns both names and get_tz() returns the first grid-indexed match. On a global 1° grid, 2,753 previously empty queries now resolve; non-border lookups are unaffected in both result and speed.
  • Fixed wrong results for America/Argentina/Ushuaia, via the boundary dataset refresh in tzf-rs 1.3.6.

Dependencies

  • tzf-rs 1.3.5 → 1.3.7. The dataset is still 2026c, so data_version() is unchanged, but the underlying boundaries carry the Ushuaia fix.

Packaging

  • New Emscripten / Pyodide wheels (*-pyemscripten_*_wasm32.whl, CPython 3.14) are built in CI and attached to the GitHub Release. They are deliberately not uploaded to PyPI.
  • The release job now creates the GitHub Release as a draft and publishes it only after every asset is attached, so the release never appears half-filled.
  • CI/test workflows moved to actions/setup-python@v7; uv.lock now triggers the CI build workflow.

Typing

  • tzfpy.pyi modernised: List[str] → list[str], dropped the typing import and the redundant ... bodies. No runtime change, but type checkers now see builtin generics.

Docs & Tooling

  • README gained an Accuracy section with measured border-error numbers instead of the vague "not so accurate around borders" note: the Douglas-Peucker epsilon of 0.001° caps boundary displacement at ~111 m (certified 111.2 m), 0.41% of border length is displaced more than 100 m, none beyond 500 m, and total mis-assigned area is 16,828 km² (~0.003% of Earth), 92.8% of it within 100 m of the true border. Full evaluation lives in tzf's BORDER_CHANGE.md.
  • make bench now runs scripts/benchmark_index_modes.py, which compares the default YStripes index against _TZFPY_DISABLE_Y_STRIPES=1 and prints one Markdown table (latency, throughput, memory) instead of two raw pytest runs.
  • New make measure-memory target; scripts/measure_memory_tzfpy.py gained CLI args and JSON output.
  • Dev dependency bumps (ruff 0.16.0, FastAPI/uvicorn in examples/) and a new pyodide dependency group for the Emscripten build.

Full Changelog: v1.3.2...v1.3.3