Skip to content

Add deliverable packaging and QGIS interoperability#65

Open
chrislyonsKY wants to merge 4 commits intomainfrom
feature/packaging-qgis-v2
Open

Add deliverable packaging and QGIS interoperability#65
chrislyonsKY wants to merge 4 commits intomainfrom
feature/packaging-qgis-v2

Conversation

@chrislyonsKY
Copy link
Copy Markdown
Owner

Summary

  • Add SearchResult.package() for turnkey deliverable packaging (search → download → package in one call)
  • New abovepy package CLI command with full pipeline support
  • QGIS project generation (PyQGIS when available, XML template fallback)
  • Package output includes: data tiles, footprints.gpkg, manifest.json, provenance.json, preview.png, DISCLAIMER.txt, .qgs project, .qml styles
  • SHA-256 checksums for all data files (parallel computation)
  • Preview image generation (TiTiler first, matplotlib fallback)
  • New PackageError exception and Package dataclass

New modules

  • package.py — packaging pipeline, checksums, manifest, preview, DISCLAIMER
  • qgis.py — QGIS project generation, footprints GeoPackage builder
  • templates/ — QGIS XML skeleton, QML styles, DISCLAIMER template

Test plan

  • 27 new unit tests (20 in test_package.py, 7 in test_qgis.py)
  • Full suite: 481 passed, 80% coverage
  • Lint clean (ruff check + format)
  • Integration test with live STAC API (next scheduled CI run)

🤖 Generated with Claude Code

Add SearchResult.package() and CLI 'abovepy package' for turnkey
deliverable packaging. Includes footprints GeoPackage, SHA-256
checksums, manifest.json, provenance, preview image, DISCLAIMER,
and optional QGIS project with pre-configured layers and styles.
@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented Apr 15, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 59 complexity · 2 duplication

Metric Results
Complexity 59
Duplication 2

View in Codacy

TIP This summary will be updated as you push new changes. Give us feedback

- Annotate files list in _build_manifest to unblock sum() overload
- Ignore rio_cogeo.cog_validate re-export (not listed in __all__)
- Drop --strict from CI (pyproject already sets strict=true and
  disables select error codes for package/qgis modules)
Py3.11-3.13 argparse rejects negative-number arguments when they
look like options. Collapse flag and value with =.
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 66.79537% with 86 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/abovepy/package.py 75.00% 30 Missing and 5 partials ⚠️
src/abovepy/qgis.py 60.24% 33 Missing ⚠️
src/abovepy/cli.py 40.00% 18 Missing ⚠️

📢 Thoughts on this report? Let us know!

Bandit assert-in-tests (B101) is noise for pytest; Codacy was
blocking the PR with 66 false positives.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants