mapsmith 0.2.2__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. mapsmith-0.3.0/.gitignore +63 -0
  2. {mapsmith-0.2.2 → mapsmith-0.3.0}/CHANGELOG.md +608 -336
  3. {mapsmith-0.2.2 → mapsmith-0.3.0}/CLAUDE.md +12 -7
  4. {mapsmith-0.2.2 → mapsmith-0.3.0}/CONTRIBUTING.md +1 -1
  5. {mapsmith-0.2.2 → mapsmith-0.3.0}/Dockerfile +43 -32
  6. mapsmith-0.3.0/PKG-INFO +830 -0
  7. mapsmith-0.3.0/README.md +788 -0
  8. {mapsmith-0.2.2 → mapsmith-0.3.0}/SECURITY.md +16 -4
  9. mapsmith-0.3.0/docs/argleton-run.json +11 -0
  10. {mapsmith-0.2.2 → mapsmith-0.3.0}/docs/benchmarks.md +97 -2
  11. mapsmith-0.3.0/docs/catalog-entry-spec.md +259 -0
  12. {mapsmith-0.2.2 → mapsmith-0.3.0}/examples/03_validated_plans.ipynb +23 -23
  13. {mapsmith-0.2.2 → mapsmith-0.3.0}/pyproject.toml +113 -87
  14. mapsmith-0.3.0/schema/operation.schema.json +198 -0
  15. {mapsmith-0.2.2 → mapsmith-0.3.0}/server.json +49 -49
  16. mapsmith-0.3.0/site/build.py +388 -0
  17. mapsmith-0.3.0/site/index.template.html +552 -0
  18. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/__init__.py +12 -12
  19. mapsmith-0.3.0/src/mapsmith/catalog.py +3798 -0
  20. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/engines/dispatch.py +168 -124
  21. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/engines/duckdb_engine.py +93 -2
  22. mapsmith-0.3.0/src/mapsmith/engines/geodesy.py +200 -0
  23. mapsmith-0.3.0/src/mapsmith/engines/raster.py +1172 -0
  24. mapsmith-0.3.0/src/mapsmith/engines/vector.py +2371 -0
  25. mapsmith-0.3.0/src/mapsmith/engines/whitebox_engine.py +1125 -0
  26. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/plans/executor.py +3 -3
  27. mapsmith-0.3.0/src/mapsmith/plans/registry.py +607 -0
  28. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/plans/validator.py +706 -689
  29. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/preview.py +266 -291
  30. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/provenance.py +354 -278
  31. mapsmith-0.3.0/src/mapsmith/readers.py +354 -0
  32. mapsmith-0.3.0/src/mapsmith/retrieval.py +163 -0
  33. mapsmith-0.3.0/src/mapsmith/server.py +903 -0
  34. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/verify.py +692 -702
  35. mapsmith-0.3.0/tests/data/discovery_queries.json +1536 -0
  36. mapsmith-0.3.0/tests/data/manifest-v1.schema.json +284 -0
  37. mapsmith-0.3.0/tests/data/manifest_spec_validator.py +248 -0
  38. mapsmith-0.3.0/tests/test_ambiguous_layer.py +68 -0
  39. mapsmith-0.3.0/tests/test_band_math.py +138 -0
  40. mapsmith-0.3.0/tests/test_catalog.py +166 -0
  41. mapsmith-0.3.0/tests/test_catalog_applicability.py +180 -0
  42. mapsmith-0.3.0/tests/test_catalog_entry_spec.py +109 -0
  43. mapsmith-0.3.0/tests/test_centroid_convert.py +141 -0
  44. mapsmith-0.3.0/tests/test_clip_reclassify_raster.py +179 -0
  45. mapsmith-0.3.0/tests/test_describe_raster.py +75 -0
  46. mapsmith-0.3.0/tests/test_discovery_contract.py +259 -0
  47. mapsmith-0.3.0/tests/test_discovery_report.py +102 -0
  48. mapsmith-0.3.0/tests/test_geodesy.py +148 -0
  49. mapsmith-0.3.0/tests/test_geoparquet2.py +444 -0
  50. mapsmith-0.3.0/tests/test_measure_area.py +184 -0
  51. mapsmith-0.3.0/tests/test_merge_simplify.py +188 -0
  52. mapsmith-0.3.0/tests/test_nearest_explode.py +97 -0
  53. mapsmith-0.3.0/tests/test_overlay_dissolve.py +136 -0
  54. mapsmith-0.3.0/tests/test_path_containment.py +249 -0
  55. mapsmith-0.3.0/tests/test_raster_reproject_bands.py +353 -0
  56. mapsmith-0.3.0/tests/test_resample_raster.py +149 -0
  57. mapsmith-0.3.0/tests/test_retrieval.py +109 -0
  58. mapsmith-0.3.0/tests/test_retrieval_at_scale.py +219 -0
  59. mapsmith-0.3.0/tests/test_retrieval_degradation.py +212 -0
  60. mapsmith-0.3.0/tests/test_showcase.py +868 -0
  61. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_smoke.py +92 -90
  62. mapsmith-0.3.0/tests/test_sql_axis_order.py +111 -0
  63. mapsmith-0.3.0/tests/test_terrain_derivatives.py +101 -0
  64. mapsmith-0.3.0/tests/test_tier_a_operations.py +307 -0
  65. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_verification_status.py +135 -135
  66. mapsmith-0.3.0/tests/test_verify.py +511 -0
  67. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_verify_repair.py +2 -2
  68. mapsmith-0.3.0/tests/test_voronoi.py +182 -0
  69. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_whitebox.py +201 -201
  70. mapsmith-0.3.0/tests/test_whitebox_derivatives.py +245 -0
  71. mapsmith-0.3.0/tests/test_whitebox_geographic_refusal.py +167 -0
  72. mapsmith-0.3.0/tests/test_worked_example.py +186 -0
  73. mapsmith-0.2.2/.gitignore +0 -44
  74. mapsmith-0.2.2/PKG-INFO +0 -466
  75. mapsmith-0.2.2/README.md +0 -430
  76. mapsmith-0.2.2/src/mapsmith/catalog.py +0 -975
  77. mapsmith-0.2.2/src/mapsmith/engines/raster.py +0 -134
  78. mapsmith-0.2.2/src/mapsmith/engines/vector.py +0 -292
  79. mapsmith-0.2.2/src/mapsmith/engines/whitebox_engine.py +0 -444
  80. mapsmith-0.2.2/src/mapsmith/plans/registry.py +0 -161
  81. mapsmith-0.2.2/src/mapsmith/server.py +0 -465
  82. mapsmith-0.2.2/tests/test_catalog.py +0 -85
  83. mapsmith-0.2.2/tests/test_geoparquet2.py +0 -177
  84. mapsmith-0.2.2/tests/test_showcase.py +0 -378
  85. mapsmith-0.2.2/tests/test_verify.py +0 -69
  86. {mapsmith-0.2.2 → mapsmith-0.3.0}/.dockerignore +0 -0
  87. {mapsmith-0.2.2 → mapsmith-0.3.0}/LICENSE +0 -0
  88. {mapsmith-0.2.2 → mapsmith-0.3.0}/MANIFESTO.md +0 -0
  89. {mapsmith-0.2.2 → mapsmith-0.3.0}/TRADEMARKS.md +0 -0
  90. {mapsmith-0.2.2 → mapsmith-0.3.0}/docker-compose.yml +0 -0
  91. {mapsmith-0.2.2 → mapsmith-0.3.0}/examples/01_verified_geoprocessing.ipynb +0 -0
  92. {mapsmith-0.2.2 → mapsmith-0.3.0}/examples/02_terrain_hydrology.ipynb +0 -0
  93. {mapsmith-0.2.2 → mapsmith-0.3.0}/examples/README.md +0 -0
  94. {mapsmith-0.2.2 → mapsmith-0.3.0}/examples/fixtures/mount_st_helens_dem.tif +0 -0
  95. {mapsmith-0.2.2 → mapsmith-0.3.0}/funding.json +0 -0
  96. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/engines/__init__.py +0 -0
  97. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/engines/sedona_engine.py +0 -0
  98. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/gdal_policy.py +0 -0
  99. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/jobs.py +0 -0
  100. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/plans/__init__.py +0 -0
  101. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/plans/models.py +0 -0
  102. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/sql_policy.py +0 -0
  103. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/ui.py +0 -0
  104. {mapsmith-0.2.2 → mapsmith-0.3.0}/src/mapsmith/workspace.py +0 -0
  105. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_catalog_retrieval.py +0 -0
  106. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_duckdb_sandbox.py +0 -0
  107. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_engines.py +0 -0
  108. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_gdal_policy.py +0 -0
  109. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_plans.py +0 -0
  110. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_preview.py +0 -0
  111. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_raster.py +0 -0
  112. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_redaction.py +0 -0
  113. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_sql_credentials.py +0 -0
  114. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_ui.py +0 -0
  115. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_whitebox_encoding.py +0 -0
  116. {mapsmith-0.2.2 → mapsmith-0.3.0}/tests/test_workspace.py +0 -0
@@ -0,0 +1,63 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ dist/
6
+ build/
7
+ .venv/
8
+ venv/
9
+ .pytest_cache/
10
+ .ruff_cache/
11
+
12
+ # Data & outputs (never commit datasets)
13
+ *.gpkg
14
+ *.gpkg-journal
15
+ *.shp
16
+ *.shx
17
+ *.dbf
18
+ *.prj
19
+ *.tif
20
+ *.tiff
21
+ *.parquet
22
+ *.provenance.json
23
+ data/
24
+ # ...except the vendored spec artefacts: test dependencies, not datasets. This
25
+ # has now bitten twice in the same way -- the validator was silently ignored
26
+ # once, and on 2026-08-26 the schema next to it went the same way, because the
27
+ # exception was a filename rather than a rule. Both times the conformance test
28
+ # passed locally and CI could not find the file. The comment did not prevent the
29
+ # second one, so `test_showcase.py` now checks that everything under
30
+ # `tests/data/` is tracked: a rule that asserts a property without checking it
31
+ # is worse than no rule.
32
+ !tests/data/
33
+ tests/data/*
34
+ !tests/data/manifest_spec_validator.py
35
+ !tests/data/manifest-v1.schema.json
36
+ # The discovery benchmark: 95 queries written by a second model from work
37
+ # scenarios, never from this catalog. It is tracked BECAUSE it is a dataset — an
38
+ # evaluation set nobody can inspect is a claim, not a measurement.
39
+ !tests/data/discovery_queries.json
40
+
41
+ # Scratch databases: probing the DuckDB sandbox (ATTACH, COPY) drops these in
42
+ # the repo root, and one of them reached a public commit before we noticed.
43
+ *.db
44
+ *.duckdb
45
+ *.wal
46
+
47
+ # OS / editors
48
+ .DS_Store
49
+ Thumbs.db
50
+ .vscode/
51
+ .idea/
52
+
53
+ # Notebook gallery runtime data
54
+ examples/data/
55
+
56
+ # ...but the gallery's one real-world input is versioned on purpose: a
57
+ # showcase built on synthetic terrain does not show what the tools do.
58
+ !examples/fixtures/
59
+ !examples/fixtures/*.tif
60
+ uv.lock
61
+
62
+ # The site is generated: `python site/build.py dist` rebuilds it from a real run.
63
+ site/generated/