{"library":"pygeoif","title":"PyGeoIf","description":"PyGeoIf is a Python library providing a basic, pure-Python implementation of the `__geo_interface__` protocol. It enables the creation and manipulation of standard geospatial vector data types like Point, LineString, and Polygon, along with collections, making it suitable as a lightweight alternative to libraries like Shapely or as a foundation for building custom geospatial tools. The current version is 1.6.0, with an active release cadence, often aligning with Python version support changes and feature enhancements.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pygeoif"],"cli":null},"imports":["from pygeoif import Point","from pygeoif import LineString","from pygeoif import Polygon","from pygeoif import Feature","from pygeoif import FeatureCollection","from pygeoif import from_wkt","from pygeoif import shape"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pygeoif import Point, LineString, Polygon, Feature, from_wkt\n\n# Create a Point\np = Point(1.0, -1.0)\nprint(f\"Point: {p}\")\nprint(f\"Point Geo Interface: {p.__geo_interface__}\")\n\n# Create a LineString\nl = LineString([(0, 0), (1, 1), (2, 0)])\nprint(f\"LineString: {l}\")\n\n# Create a Polygon with a hole\nexterior = [(0, 0), (0, 10), (10, 10), (10, 0), (0, 0)]\ninterior = [(2, 2), (2, 8), (8, 8), (8, 2), (2, 2)]\npoly = Polygon(exterior, [interior])\nprint(f\"Polygon: {poly.wkt}\")\n\n# Create a Feature with properties\nfeature_props = {'name': 'My Awesome Feature', 'id': 123}\nf = Feature(p, feature_props)\nprint(f\"Feature geometry type: {f.geometry.geom_type}\")\nprint(f\"Feature properties: {f.properties}\")\n\n# Create geometry from WKT\nwkt_point = from_wkt('POINT (5 10)')\nprint(f\"WKT Point: {wkt_point}\")","lang":"python","description":"This quickstart demonstrates how to create various geometry types (Point, LineString, Polygon), a Feature with properties, and how to import geometry from a Well-Known Text (WKT) string using `pygeoif`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"1.6.0","pypi_latest":"1.6.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.6,"avg_import_s":0.05,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.04,"mem_mb":2.1,"disk_size":"18.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.02,"mem_mb":2.1,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.08,"mem_mb":2.3,"disk_size":"20.3M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.07,"mem_mb":2.3,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.07,"mem_mb":2.3,"disk_size":"12.1M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.07,"mem_mb":2.3,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.06,"mem_mb":2.4,"disk_size":"11.8M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.06,"mem_mb":2.2,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":2.1,"disk_size":"17.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pygeoif","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.03,"mem_mb":2.1,"disk_size":"18M"}]}}