{"library":"plpygis","title":"plpygis: Python tools for PostGIS","description":"plpygis provides Python tools for working with PostGIS geometries, enabling easy conversion between common formats like WKT, EWKT, WKB, EWKB, and GeoJSON. It focuses on parsing and generating these formats directly in Python, making it suitable for applications interacting with PostGIS. The current version is 0.6.1, and the library maintains an active release cadence with minor updates and bug fixes.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install plpygis"],"cli":null},"imports":["from plpygis.geometry import Geometry","from plpygis.geometry import Point","from plpygis.geometry import LineString","from plpygis.geometry import Polygon","from plpygis.wkt import from_wkt","from plpygis.wkb import from_wkb"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from plpygis import Point, LineString\nfrom plpygis.wkt import from_wkt\n\n# Create a Point geometry with an SRID\npoint = Point(10, 20, srid=4326)\nprint(f\"Point WKT: {point.wkt}\")\nprint(f\"Point EWKT: {point.ewkt}\")\nprint(f\"Point WKB (hex): {point.wkb.hex()}\")\n\n# Create a LineString from EWKT, specifying SRID during parsing\nline_ewkt = \"SRID=4326;LINESTRING (30 10, 40 20)\"\nline = from_wkt(line_ewkt, srid=4326) # srid is optional if present in EWKT, but good practice\nprint(f\"LineString GeoJSON: {line.geojson}\")\nprint(f\"LineString length: {len(line)}\")\n\n# Access properties\nprint(f\"First coordinate of line: {line.geometries[0]}\")","lang":"python","description":"This quickstart demonstrates creating Point and LineString geometries, converting them to WKT, EWKT, and GeoJSON, and parsing a geometry from an EWKT string using `from_wkt`. It also shows how to access basic geometry properties.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.6.1","pypi_latest":"0.6.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.5,"avg_import_s":0.01,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.4,"disk_size":"17.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.01,"mem_mb":0.4,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":0.5,"disk_size":"19.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"11.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.4,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"11.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.4,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.4,"disk_size":"17.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"plpygis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.01,"mem_mb":0.4,"disk_size":"18M"}]}}