Skip to content

Simplify Priority 1 APIs around functions - #10

Merged
ericlindsey merged 17 commits into
mainfrom
codex/priority-1
Jul 15, 2026
Merged

ericlindsey merged 17 commits into
mainfrom
codex/priority-1

Conversation

@ericlindsey

Copy link
Copy Markdown
Owner

Summary

  • reframe the roadmap around concise, function-oriented module APIs
  • replace draft slip, displacement, and geometry wrappers with functions and existing durable domain objects
  • make geodef.invert the module, expose geodef.invert.solve and geodef.solve, and name Green's helpers matrix, project, and laplacian
  • update reference docs, tutorials, examples, and tests to teach the final API directly without a deprecation shim

Validation

  • uv run ruff check .
  • uv run mypy src/geodef
  • uv run pytest (1317 passed, 2 skipped, 13 deselected)

Introduce immutable LocalFrame, PlanarGeometry, and TriGeometry types with explicit WGS84 ENU projection provenance, validated named parameters, geographic/local conversions, and expert array views.
Let Fault.planar consume PlanarGeometry, let triangular factories consume TriGeometry, and retain LocalFrame provenance across Fault, Mesh, and medium copies while preserving legacy scalar and reference-origin calls.
Accept PlanarGeometry in geometry search and rectangular Bayesian inference, return named geometry results, accept TriGeometry in TriWarp, and propagate LocalFrame through triangular kernels, caches, plotting, exports, and explicit frame transforms.
Add the geometry reference, replace beginner-facing theta examples with named geometry, document explicit projection and frame transforms, close Priority 1.1, and record plate-rake/Euler-pole slip coordinates for Priority 1.2.
Keep classes for durable state and prepared computations while replacing transient wrappers and planned configuration facades with module functions.
Use array packing and basis-conversion functions, restore the three-array displacement return, and expose physical slip directly on inversion results.
Keep LocalFrame for coordinate identity, move parameter and triangle conversions to functions, and return Fault from geometry inference.
Use specific module functions and a two-release invert-to-solve transition without a callable module proxy.
Make geodef.invert the module, expose solve as the inversion entry point, and give Green's matrix operations concise public names. Add regression coverage for the final namespace shape without a compatibility shim.
Update the roadmap, reference docs, tutorials, and examples to use invert.solve and greens.matrix directly. Record Priority 1.2 as complete without a deprecation cycle.
@ericlindsey
ericlindsey merged commit 3d88391 into main Jul 15, 2026
7 checks passed
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.

1 participant