Implement story 2.2: coordinate projection and base map loading

Add MapBounds dataclass and equirectangular project() function in
projection.py, basemap.load() forcing pixels into memory via .copy(),
and full test coverage for both modules (4 new tests). All quality
gates pass: 67 tests, ruff clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Matt Edholm
2026-04-22 23:10:38 -04:00
parent f8e763d734
commit 037ce3e193
6 changed files with 107 additions and 37 deletions
+9 -1
View File
@@ -1 +1,9 @@
# stub
from __future__ import annotations
from PIL import Image
from planemapper.constants import BACKGROUND_PATH
def load() -> Image.Image:
return Image.open(BACKGROUND_PATH).copy()