NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2719 most downloaded on PyPI
Python module for interacting with geohashes
Last release 28 days ago
06 Sep 2026
Ships unpredictably
gaps range from 8 days to 8.9 years
Most releases are documented
notes for 16 of 19 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
19 releases · first in 2016
chore: drop Python 3.9 support, bump to 3.5.1 (fixes cp39 wheel build failure) by @wdm0006 in #152
Full Changelog: v3.5.0...v3.5.1
ci: efficiency + hygiene tuning by @wdm0006 in #76
Full Changelog: v3.3.1...v3.3.2
One column per quarter.
BoundingBox with min_lat > max_lat or min_lon > max_lon now raises a ValueError naming the offending pair and the interleaved (min_lat, min_lon, max_lat, max_lon) field order. The grouped-argument mistake BoundingBox(min_lat, max_lat, min_lon, max_lon) previously produced an inverted box that silently degraded everywhere - geohashes_in_box returned [], is_point_in_box returned False, and a box did not intersect itself. Boxes written to span the antimeridian, which the library does not support, are rejected by the same check. Degenerate boxes where a minimum equals its maximum remain valid, and no box get_bounding_box produces is affected.geohash_approximate_distance now accept uppercase and mixed-case geohashes, and cardinal selectors preserve the caller's original geohash string.viz installations.pygeohash.pygeohash.* logger names.docs/source/benchmarks.rst, generated by scripts/run_comparison_benchmark.py.Validate precision in C encode functions to prevent stack buffer overflow by @wdm0006 in #65
Full Changelog: v3.3.0...v3.3.1
encode/encode_strictly in the C extension now reject a precision outside 1-12 with a ValueError. Calling pygeohash.cgeohash.geohash_module.encode directly with a larger precision previously overran a fixed-size buffer.geohash_approximate_distance now returns 0.0 for two identical geohashes instead of the precision-table value for their shared prefix.geohashes_in_box now clamps its sampling range to latitude +/-90 and longitude +/-180, so boxes touching the world limits enumerate correctly.plot_geohashes works again with matplotlib >= 3.9, which removed matplotlib.cm.get_cmap.py.typed marker is now shipped in the wheel and sdist, so type checkers finally see pygeohash's inline type hints. The "Typing :: Typed" classifier is now accurate.encode_strictly no longer claims to perform extra validation. It is identical to encode and is kept only as a back-compatible alias.Add QEMU to linux runners when building wheels by @MatiasFrank in #55
Full Changelog: v3.2.2...v3.3.0
Build wheels for ARM64 on Linux as well by @MatiasFrank in #53
Full Changelog: v3.2.1...v3.2.2
Fix invalid escape sequence '*' by @MatiasFrank in #49
Full Changelog: v3.2.0...v3.2.1
lat long checks by @wdm0006 in #48
Full Changelog: v3.1.3...v3.2.0
email update by @wdm0006 in #45
bugfix for optional dependencies in types by @wdm0006 in #44
Full Changelog: v3.1.1...v3.1.2
Added input validation to raise on invliad precisions and geohashes before sending to c lib
Nothing published for this version
[meta] rewrote core logic from scratch in cpython for performance and to remove geohash.py dependency
[bounding_box] added bounding box module
[meta] restructured as pyproject.toml based project
Nothing published for this version
[stats] added standard deviation
* Added stats module * [stats] added mean geohash * [stats] added northernmost * [stats] added southernmost * [stats] added westernmost * [stats] adde
Nothing published for this version
New repository created, based off of geohash
Your coding agent can read these notes before it upgrades. Set up the MCP server →