Skip to content
cleder

cleder/pygeoif

LibraryLive in production

When you want to write your own geospatial library with support for this protocol you may use pygeoif as a starting point and build your functionality on top of

Basic implementation of the __geo_interface__ 🌐️

β˜…74β–² 3 since joiningβ‘‚ 30PythonPush 6d agoListed 2mo ago15 open issuesLGPL-2.1

pygeoif.readthedocs.io

geojsongeopythongeospatialgishacktoberfesthypothesiswkt
  • Python100.0%
View on GitHub

Report a problem

1 Review

PyGeoIf is a focused geospatial library with a clear reason to exist. It supplies lightweight, pure-Python geometry objects that follow geo_interface and provide familiar operations such as WKT conversion, bounds, orientation, centroids, and convex hulls. The geometry classes are immutable, typed, and packaged with a py.typed marker. Features, collections, multi-geometries, dimensional conversion, and Hypothesis strategies make the library useful beyond simple coordinate containers. The implementation is readable and keeps its geometry algorithms separate from factories and feature types. It is also backed by an extensive unit and property-based test suite that has caught documented edge cases involving empty geometries, nested collections, and convex hulls.
The engineering workflow is especially strong. CI tests several CPython versions plus PyPy and GraalPy, runs Hypothesis separately, checks coverage, performs strict typing and linting, measures complexity, inspects built distributions, and publishes through trusted PyPI credentials. The main opportunity is documentation consistency. The development branch now requires Python 3.10, while the README still says the library and development environment support older versions, including instructions to create a Python 3.8 environment. The published release currently reflects an earlier requirement, so these differences should be explained as unreleased changes. Some old external links and examples could also be refreshed, and dedicated contribution and security guidance would improve onboarding. These are maintenance issues rather than architectural weaknesses. The library itself shows careful long-term development and unusually thorough compatibility testing.