Update dependency timezonefinder to v8 #185

Merged
tyler merged 3 commits from renovate/timezonefinder-8.x into main 2026-02-17 21:50:04 -08:00
Collaborator

This PR contains the following updates:

Package Change Age Confidence
timezonefinder ~=6.6.3~=8.2.1 age confidence

Release Notes

jannikmi/timezonefinder (timezonefinder)

v8.2.1

Compare Source

  • updated the data to 2025c <https://github.com/evansiroky/timezone-boundary-builder/releases/tag/2025c>__
  • require numpy >=2 following the official NumPy Deprecation Policy <https://numpy.org/neps/nep-0029-deprecation_policy.html#drop-schedule>__
  • dropped official support for Python 3.9 and 3.10, due to NumPy dropping support for these versions.

Internal:

  • Introduced slow test marker for computationally expensive tests to improve CI performance and local development workflow. Updated CI configuration, tox environments, Makefile targets, and documentation accordingly. Thanks to Chase Horton <https://github.com/Chase-Horton>__ for the PR.
  • enabled Numba tests for Python 3.13 and 3.14.

v8.2.0

Compare Source

  • Reverted to the full timezone dataset: Starting from this release, timezonefinder uses the full original timezones-with-oceans dataset instead of the reduced timezones-now dataset. This restores access to all >440 original timezone names, providing full localization capabilities and historical timezone accuracy. The reduced dataset (with ~90 timezones) is still available via the parse_data.sh script for users who prefer the smaller memory footprint. Due to the discussion in GitHub Issue #&#8203;363 <https://github.com/jannikmi/timezonefinder/issues/363>__
  • Improved error handling for resource cleanup. Thanks to Dave Tapley <https://github.com/davetapley>__ for the PR #​375.
  • Bug fixed where on termination we may hit an exception attempting to close resources in FileCoordAccessor. Thanks to David Park <https://github.com/daphtdazz>__ for the PR #​377.
  • Made CFFI extension builds fallible, allowing the build process to continue even if C extension compilation fails. Thanks to theirix <https://github.com/theirix>__ for the PR #​369.
  • Added Python 3.14 to the supported test matrix (tox + GitHub Actions).

v8.1.0

Compare Source

  • add the support of using the TimeZonefinder class instances as context managers. added a basic usage examples
  • note that the performance of certain_timezone_at() degraded drastically, since now many more polygons will be checked with an expensive point-in-polygon algorithm. consider using timezone_at() or timezone_at_land() instead.
  • introduced hybrid shortcut index structure that combines the functionality of separate shortcuts and unique shortcuts into a single optimized data structure, improving performance and reducing memory usage
  • zone id storage now defaults to uint8 and can be overridden via --zone-id-dtype/TIMEZONEFINDER_ZONE_ID_DTYPE when recompiling binaries
  • relax cffi upper bound to allow the 2.x series so downstream packages pinning cffi>=2.0 resolve cleanly
  • scripts/reporting.py can now be executed as a standalone script to generate data reports from binary files independent from file_converter.py
  • the check_speed_*.py scripts now generates a detailed performance reports in reStructuredText format automatically included into documentation

Internal:

  • using abi3 (aka Python limited API) wheels to avoid a combinatory explosion with Python version. It allows the use of a single Python 3.9 base and building future-proof wheels. Thanks to theirix <https://github.com/theirix>__
  • using pydantic to validating and parsing the GeoJSON dataset. Thanks to ARYAN RAJ <https://github.com/nikkhilaaryan>__ for the PR.
  • refactored file_converter.py to improve code quality. Thanks to Pratyush Kumar <https://github.com/pratyushkumar211>__ for the PR.
  • consolidated shortcut data structures: replaced shortcuts.fbs file with hybrid_shortcuts_uint8.fbs (or hybrid_shortcuts_uint16.fbs) file that stores both polygon lists and direct zone IDs using the minimal dtype for zone IDs.

v8.0.0

Compare Source

  • starting from this release, timezonefinder uses the reduced timezones-now dataset version (cf. GitHub Discussion <https://github.com/jannikmi/timezonefinder/discussions/323>__ )
  • in this dataset version, all timezones which agree on timekeeping methods as of the release date of the dataset, are merged into one zone (cf. Dataset Documentation <https://github.com/evansiroky/timezone-boundary-builder?tab=readme-ov-file#same-since-now>__ ). This results in a reduced set of ~90 timezones instead of >440 timezones and a reduced memory footprint of the package.
  • If you used timezonefinder for localisation beyond the timezone behavior, it might become necessary for you to individually parse the full original dataset version using the parse_data.sh script.
  • extended the parse_data.sh script to support downloading the timezones-now Dataset
  • adapted tests to the reduced dataset version

v7.0.2

Compare Source

  • exclude tests package closing issue #​330

v7.0.1

Compare Source

  • hit PyPI project size limit. triggering re-upload to fix missing sdist in 7.0.0 release.
  • deleted all PyPI releases up to version 3.4.2 (last version supporting python 2.7) to free up project space

v7.0.0

Compare Source

  • Simplified API for end-users, reducing redundant code

  • Added global functions that use a shared TimezoneFinder instance:

    • timezone_at
    • timezone_at_land
    • unique_timezone_at
    • certain_timezone_at
    • get_geometry
  • Documented usage and warned about thread safety considerations for global functions

  • Updated command line interface to use global functions where appropriate

  • breaking API Changes: clarified naming. renamed "boundary" to "bbox". renamed "polygon" to "boundary". boundaries (the outer polygon defining part of a timezone) and holes are both polygons so hence the name "polygon" is ambiguous.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [timezonefinder](https://github.com/jannikmi/timezonefinder) | `~=6.6.3` → `~=8.2.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/timezonefinder/8.2.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/timezonefinder/6.6.3/8.2.1?slim=true) | --- ### Release Notes <details> <summary>jannikmi/timezonefinder (timezonefinder)</summary> ### [`v8.2.1`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#821-2026-01-10) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/8.2.0...8.2.1) - updated the data to `2025c <https://github.com/evansiroky/timezone-boundary-builder/releases/tag/2025c>`\_\_ - require `numpy >=2` following the official `NumPy Deprecation Policy <https://numpy.org/neps/nep-0029-deprecation_policy.html#drop-schedule>`\_\_ - dropped official support for Python 3.9 and 3.10, due to NumPy dropping support for these versions. Internal: - Introduced `slow` test marker for computationally expensive tests to improve CI performance and local development workflow. Updated CI configuration, tox environments, Makefile targets, and documentation accordingly. Thanks to `Chase Horton <https://github.com/Chase-Horton>`\_\_ for the PR. - enabled `Numba` tests for Python 3.13 and 3.14. ### [`v8.2.0`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#820-2025-12-23) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/8.1.0...8.2.0) - **Reverted to the full timezone dataset**: Starting from this release, `timezonefinder` uses the full original `timezones-with-oceans` dataset instead of the reduced `timezones-now` dataset. This restores access to all >440 original timezone names, providing full localization capabilities and historical timezone accuracy. The reduced dataset (with \~90 timezones) is still available via the `parse_data.sh` script for users who prefer the smaller memory footprint. Due to the discussion in `GitHub Issue #&#8203;363 <https://github.com/jannikmi/timezonefinder/issues/363>`\_\_ - Improved error handling for resource cleanup. Thanks to `Dave Tapley <https://github.com/davetapley>`\_\_ for the PR [#&#8203;375](https://github.com/jannikmi/timezonefinder/issues/375). - Bug fixed where on termination we may hit an exception attempting to close resources in `FileCoordAccessor`. Thanks to `David Park <https://github.com/daphtdazz>`\_\_ for the PR [#&#8203;377](https://github.com/jannikmi/timezonefinder/issues/377). - Made CFFI extension builds fallible, allowing the build process to continue even if C extension compilation fails. Thanks to `theirix <https://github.com/theirix>`\_\_ for the PR [#&#8203;369](https://github.com/jannikmi/timezonefinder/issues/369). - Added Python 3.14 to the supported test matrix (tox + GitHub Actions). ### [`v8.1.0`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#810-2025-09-22) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/8.0.0...8.1.0) - add the support of using the TimeZonefinder class instances as context managers. added a basic usage examples - note that the performance of certain\_timezone\_at() degraded drastically, since now many more polygons will be checked with an expensive point-in-polygon algorithm. consider using timezone\_at() or timezone\_at\_land() instead. - introduced hybrid shortcut index structure that combines the functionality of separate shortcuts and unique shortcuts into a single optimized data structure, improving performance and reducing memory usage - zone id storage now defaults to `uint8` and can be overridden via `--zone-id-dtype`/`TIMEZONEFINDER_ZONE_ID_DTYPE` when recompiling binaries - relax `cffi` upper bound to allow the 2.x series so downstream packages pinning `cffi>=2.0` resolve cleanly - `scripts/reporting.py` can now be executed as a standalone script to generate data reports from binary files independent from `file_converter.py` - the `check_speed_*.py` scripts now generates a detailed performance reports in reStructuredText format automatically included into documentation Internal: - using abi3 (aka Python limited API) wheels to avoid a combinatory explosion with Python version. It allows the use of a single Python 3.9 base and building future-proof wheels. Thanks to `theirix <https://github.com/theirix>`\_\_ - using pydantic to validating and parsing the GeoJSON dataset. Thanks to `ARYAN RAJ <https://github.com/nikkhilaaryan>`\_\_ for the PR. - refactored file\_converter.py to improve code quality. Thanks to `Pratyush Kumar <https://github.com/pratyushkumar211>`\_\_ for the PR. - consolidated shortcut data structures: replaced `shortcuts.fbs` file with `hybrid_shortcuts_uint8.fbs` (or `hybrid_shortcuts_uint16.fbs`) file that stores both polygon lists and direct zone IDs using the minimal dtype for zone IDs. ### [`v8.0.0`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#800-2025-08-11) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/7.0.2...8.0.0) - starting from this release, `timezonefinder` uses the reduced `timezones-now` dataset version (cf. `GitHub Discussion <https://github.com/jannikmi/timezonefinder/discussions/323>`\_\_ ) - in this dataset version, all timezones which agree on timekeeping methods as of the release date of the dataset, are merged into one zone (cf. `Dataset Documentation <https://github.com/evansiroky/timezone-boundary-builder?tab=readme-ov-file#same-since-now>`\_\_ ). This results in a reduced set of \~90 timezones instead of >440 timezones and a reduced memory footprint of the package. - If you used `timezonefinder` for localisation beyond the timezone behavior, it might become necessary for you to individually parse the full original dataset version using the `parse_data.sh` script. - extended the `parse_data.sh` script to support downloading the `timezones-now` Dataset - adapted tests to the reduced dataset version ### [`v7.0.2`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#702-2025-08-06) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/7.0.1...7.0.2) - exclude `tests` package closing issue [#&#8203;330](https://github.com/jannikmi/timezonefinder/issues/330) ### [`v7.0.1`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#701-2025-07-24) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/7.0.0...7.0.1) - hit PyPI project size limit. triggering re-upload to fix missing sdist in `7.0.0` release. - deleted all PyPI releases up to version `3.4.2` (last version supporting python 2.7) to free up project space ### [`v7.0.0`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#700-2025-07-21) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.6.3...7.0.0) - Simplified API for end-users, reducing redundant code - Added global functions that use a shared `TimezoneFinder` instance: - `timezone_at` - `timezone_at_land` - `unique_timezone_at` - `certain_timezone_at` - `get_geometry` - Documented usage and warned about thread safety considerations for global functions - Updated command line interface to use global functions where appropriate - breaking API Changes: clarified naming. renamed "boundary" to "bbox". renamed "polygon" to "boundary". boundaries (the outer polygon defining part of a timezone) and holes are both polygons so hence the name "polygon" is ambiguous. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNC4yIiwidXBkYXRlZEluVmVyIjoiNDMuMjQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
tyler approved these changes 2026-02-17 21:05:06 -08:00
renovate-bot force-pushed renovate/timezonefinder-8.x from 0af2cebbcc to 05fa7e6753 2026-02-17 21:09:41 -08:00 Compare
tyler merged commit 9cdff71e6a into main 2026-02-17 21:50:04 -08:00
tyler deleted branch renovate/timezonefinder-8.x 2026-02-17 21:50:06 -08:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tyler/dailySummaryEmail!185
No description provided.