-
Notifications
You must be signed in to change notification settings - Fork 54
LoopStructural 1.7 #290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
lachlangrose
wants to merge
78
commits into
master
Choose a base branch
from
roadmap-v2
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
LoopStructural 1.7 #290
Changes from all commits
Commits
Show all changes
78 commits
Select commit
Hold shift + click to select a range
f7047ac
fix: correct P2 interpolator gradient constraint indexing and NaN check
lachlangrose 16c803c
fix: process disjoint chunks in tetra get_element_for_location
lachlangrose d16cc38
fix: reject nan/inf constraints and stop leaking solver_kwargs state
lachlangrose 4f1608f
fix: stop sharing BaseFeature.regions list across instances
lachlangrose fc8bb8b
fix: correct FaultTopology adjacency bookkeeping and dict round-trip
lachlangrose 38c4f8e
fix: don't drop single-point value constraints in P1/P2 interpolators
lachlangrose 8314164
fix: guard against divide-by-zero in constant norm constraint
lachlangrose 15e1f15
fix: raise ValueError instead of bare except + BaseException in data …
lachlangrose 3d9c1b7
fix: raise instead of silently no-op on unsupported OMF structured gr…
lachlangrose 2d17fef
fix: raise clear error for unimplemented GOCAD VSet point export
lachlangrose b7ce574
fix: sync __all__ with LoopStructural's actual public API
lachlangrose 496997c
test: add targeted regression tests for FaultTopology and P2Interpolator
lachlangrose 0c8133f
fix: build P2UnstructuredTetMesh from a bounding box, not just explic…
lachlangrose c9448bc
fix: use self.dimensions instead of hardcoded 3D column slicing in P1…
lachlangrose 52e0740
fix: correct barycentric coordinate columns and chunking bug in 2D un…
lachlangrose 758cc8e
fix: build P1Unstructured2d from a bounding box, not just explicit ar…
lachlangrose 2197255
fix: build P2Unstructured2d from a bounding box and add proper value/…
lachlangrose c8b67a0
test: add regression tests for 2D P1/P2 interpolation fixes
lachlangrose 8ca6b7b
fix: correct get_quadrature_points array shape in P2Unstructured2d
lachlangrose 9902b60
docs: add example comparing scipy RBFInterpolator to LoopStructural 2…
lachlangrose c9c8a8a
fix: implement P2Unstructured2d.evaluate_shape_d2 using self.hessian
lachlangrose 412503d
docs: reoganising and updating docs
lachlangrose b3a55f3
fix: update Python requirement to >=3.9 and refine optional dependencies
lachlangrose a0daa26
fix: update parameter name from 'group' to 'groupname' in add_surface…
lachlangrose ed02004
tests: add unit tests for export dispatch and interpolator core math
lachlangrose 17b58b1
tests: add unit tests for utils and fold/region feature modules
lachlangrose 2c47646
docs: fill placeholder docstrings, fix stale param names, wire utils …
lachlangrose e5bece7
fix: harden exception handling and unsafe model deserialization
lachlangrose 904797a
tests: add unit tests for StratigraphicColumn
lachlangrose 33099f2
perf: vectorize identified per-row Python loops in intrusion and svar…
lachlangrose 5025d9f
fix: update test_omf to match add_structured_grid_to_omf's real behav…
lachlangrose 50b207d
fix: resolve basement handling in StratigraphicColumn.clear() and imp…
lachlangrose 2b703ac
fix: ensure isovalues are correctly set for zero input in LoopIsosurf…
lachlangrose 86ec523
refactor: update stratigraphic column setup to use add_unit and add_u…
lachlangrose 228a0aa
feat: implement fault cycle detection in geological features
lachlangrose 0226b5c
fix: update unconformity handling in GeologicalModel and add performa…
lachlangrose b5eb474
refactor: imports to move BoundingBox, Surface, ValuePoints, and Vect…
lachlangrose 93d1ebc
refactor: rename nsteps to nsteps_cells for clarity in support classe…
lachlangrose cc7e4ec
refactor: update builder methods to use build instead of setup and im…
lachlangrose 508563f
tests: add QGIS plugin compatibility workflow for non-QGIS unit tests…
lachlangrose 719763a
fix: add datatypes deprecation
lachlangrose 847634f
feat: add api registry
lachlangrose adfe273
docs: initial roadmap and compat guide
lachlangrose ce14f91
docs: update guides
lachlangrose 1910670
refactor: upgrade logging infastructure
lachlangrose 01bcef5
fix(codestyle): enforcing/checking coding style
lachlangrose 72723a6
refactor: implement/extract loop_common and loop_interpolator as sepa…
lachlangrose 3939bb6
docs: update compatibility shims and roadmap for extracted package in…
lachlangrose 6a56793
feat: add recipe serialization methods to GeologicalModel and corresp…
lachlangrose ca9cab6
feat: implement JSON serialization for GeologicalModel with recipe me…
lachlangrose c999281
refactor: remove old interpolator code
lachlangrose b66b928
refactor: Add geometry and utility modules for structured and unstruc…
lachlangrose bd2e66a
refactor: observer pattern and logging infrastructure
lachlangrose c13d11b
feat: enhance API stability by registering external symbols and addin…
lachlangrose aca386b
refactor(geometry): Remove _surface and _unstructured_mesh files
lachlangrose 12f34f1
feat: upgrade bounding box to use origin/maximum and affine transform…
lachlangrose 6693cd0
ci: updating linter
lachlangrose e1b465c
Merge branch 'master' into roadmap-v2
lachlangrose 9dd1e2b
Potential fix for pull request finding 'CodeQL / Workflow does not co…
lachlangrose b631246
Potential fix for pull request finding 'CodeQL / Workflow does not co…
lachlangrose 2441f61
Potential fix for pull request finding 'CodeQL / Workflow does not co…
lachlangrose 601106a
ci: change from pip to uv sync
lachlangrose 038047f
ci: uv run pytest
lachlangrose 3fc11d2
ci: update qgis compat to use uv properly
lachlangrose 8dbe4d8
ci: allow python 3.9 for qgis compat
lachlangrose 04985ed
ci: add loop_coomon/interpolation to qgis compat checker
lachlangrose 44effa8
ci: fix path
lachlangrose af7385e
fix: cleaning up PR
lachlangrose 3a558dc
Fix Python 3.9 incompatible union type hint in _surface.py
Copilot a7765ed
fix: drop invalid vector data
lachlangrose 8fb9b89
Merge branch 'roadmap-v2' of https://github.com/Loop3D/LoopStructural…
lachlangrose 567adfc
ci: temp add pydantic
lachlangrose c0c642d
style: ruff fix FA
lachlangrose 9ef2488
style: ruff fixes
lachlangrose b9ff94d
fix: ruff error fixes
lachlangrose 27c0836
fix: updating imports for testing
lachlangrose d3aac52
fix: change TypeError to ValueError for fold_frame validation
lachlangrose ff85e40
fix: add type backport
lachlangrose File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,54 @@ | ||
| name: "📦 Workspace packages" | ||
|
|
||
| # Stage 2 of ROADMAP.md (outcome 2): loop_common/loop_interpolation live under | ||
| # packages/ as independent uv-workspace members so the interpolation code is | ||
| # usable outside the LoopStructural framework. This job installs and tests | ||
| # them on their own, separately from the root LoopStructural test suite in | ||
| # tester.yml, so each half can fail/soak independently. | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - master | ||
| paths: | ||
| - 'packages/**' | ||
| - .github/workflows/packages.yml | ||
| pull_request: | ||
| branches: | ||
| - master | ||
| paths: | ||
| - 'packages/**' | ||
| - .github/workflows/packages.yml | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| packages-test: | ||
| name: ${{ matrix.package }} (python ${{ matrix.python-version }}) | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| package: [loop_common, loop_interpolation] | ||
| os: ${{ fromJSON(vars.BUILD_OS)}} | ||
| python-version: ${{ fromJSON(vars.PYTHON_VERSIONS)}} | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Set up uv | ||
| uses: astral-sh/setup-uv@v3 | ||
| with: | ||
| version: "latest" | ||
|
|
||
| - name: Set up Python ${{ matrix.python-version }} | ||
| run: uv python install ${{ matrix.python-version }} | ||
|
|
||
| - name: Install package with test extras | ||
| run: | | ||
| uv sync --package ${{ matrix.package }} --extra tests --python ${{ matrix.python-version }} | ||
|
|
||
| - name: pytest | ||
| run: | | ||
| uv run pytest packages/${{ matrix.package }}/tests |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| name: "🔌 QGIS plugin compat" | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - master | ||
| paths: | ||
| - '**.py' | ||
| - .github/workflows/qgis-compat.yml | ||
| pull_request: | ||
| branches: | ||
| - master | ||
| paths: | ||
| - '**.py' | ||
| - .github/workflows/qgis-compat.yml | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| qgis-plugin-compat: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout LoopStructural | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| path: LoopStructural | ||
|
|
||
| - name: Checkout LoopStructural QGIS plugin | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| repository: Loop3D/plugin_loopstructural | ||
| path: plugin_loopstructural | ||
|
|
||
| - name: Set up uv and Python | ||
| uses: astral-sh/setup-uv@v5 | ||
| with: | ||
| python-version: "3.9" | ||
| enable-cache: true | ||
|
|
||
| - name: Install plugin's non-QGIS test requirements | ||
| run: | | ||
| uv pip install -r plugin_loopstructural/requirements/testing.txt | ||
| uv pip install pydantic eval-type-backport | ||
|
|
||
| - name: Install this branch's LoopStructural over the pinned version | ||
| run: | | ||
| uv pip install --no-deps -e ./LoopStructural/packages/loop_common | ||
| uv pip install --no-deps -e ./LoopStructural/packages/loop_interpolation | ||
| uv pip install --no-deps -e ./LoopStructural | ||
| uv pip install pytest | ||
|
|
||
| - name: Import/symbol smoke check on paths the plugin relies on | ||
| working-directory: LoopStructural | ||
| run: | | ||
| uv run pytest tests/unit/test_stable_api_surface.py -v | ||
|
|
||
| - name: Run plugin unit tests (non-QGIS) against this branch | ||
| working-directory: plugin_loopstructural | ||
| run: | | ||
| uv run pytest -p no:qgis tests/unit/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| repos: | ||
| - repo: https://github.com/psf/black | ||
| rev: 24.10.0 | ||
| hooks: | ||
| - id: black | ||
|
|
||
| - repo: https://github.com/astral-sh/ruff-pre-commit | ||
| rev: v0.15.22 | ||
| hooks: | ||
| - id: ruff | ||
| args: [--fix, --exit-non-zero-on-fix] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,6 @@ | ||
| { | ||
| "LoopStructural": "1.6.28" | ||
| "LoopStructural": "1.6.28", | ||
| "packages/loop_common": "0.1.0", | ||
| "packages/loop_interpolation": "0.1.0" | ||
|
|
||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.