Skip to content

Feature/uijson - #217

Merged
domfournier merged 56 commits into
developfrom
feature/uijson
Aug 24, 2026
Merged

Feature/uijson#217
domfournier merged 56 commits into
developfrom
feature/uijson

Conversation

@domfournier

Copy link
Copy Markdown
Contributor

No description provided.

domfournier and others added 30 commits March 23, 2026 10:52
# Conflicts:
#	geoapps_utils/base.py
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GEOPY-2739: Accept BaseUIJson in the start of driver
domfournier and others added 22 commits July 14, 2026 08:54
# Conflicts:
#	environments/py-3.12-linux-64-dev.conda.lock.yml
#	environments/py-3.12-linux-64.conda.lock.yml
#	environments/py-3.12-win-64-dev.conda.lock.yml
#	environments/py-3.12-win-64.conda.lock.yml
#	environments/py-3.13-linux-64-dev.conda.lock.yml
#	environments/py-3.13-linux-64.conda.lock.yml
#	environments/py-3.13-win-64-dev.conda.lock.yml
#	environments/py-3.13-win-64.conda.lock.yml
#	environments/py-3.14-linux-64-dev.conda.lock.yml
#	environments/py-3.14-linux-64.conda.lock.yml
#	environments/py-3.14-win-64-dev.conda.lock.yml
#	environments/py-3.14-win-64.conda.lock.yml
#	geoapps_utils/driver/params.py
#	py-3.12.conda-lock.yml
#	py-3.13.conda-lock.yml
#	py-3.14.conda-lock.yml
#	pyproject.toml
#	tests/base_test.py
#	tests/dataclass_test.py
Co-authored-by: benk-mira <81254271+benk-mira@users.noreply.github.com>
# Conflicts:
#	environments/py-3.12-linux-64-dev.conda.lock.yml
#	environments/py-3.12-linux-64.conda.lock.yml
#	environments/py-3.12-win-64-dev.conda.lock.yml
#	environments/py-3.12-win-64.conda.lock.yml
#	environments/py-3.13-linux-64-dev.conda.lock.yml
#	environments/py-3.13-linux-64.conda.lock.yml
#	environments/py-3.13-win-64-dev.conda.lock.yml
#	environments/py-3.13-win-64.conda.lock.yml
#	environments/py-3.14-linux-64-dev.conda.lock.yml
#	environments/py-3.14-linux-64.conda.lock.yml
#	environments/py-3.14-win-64-dev.conda.lock.yml
#	environments/py-3.14-win-64.conda.lock.yml
#	geoapps_utils/driver/params.py
#	py-3.12.conda-lock.yml
#	py-3.13.conda-lock.yml
#	py-3.14.conda-lock.yml
#	pyproject.toml
#	tests/base_test.py
#	tests/dataclass_test.py
# Conflicts:
#	environments/py-3.12-linux-64-dev.conda.lock.yml
#	environments/py-3.12-linux-64.conda.lock.yml
#	environments/py-3.12-win-64-dev.conda.lock.yml
#	environments/py-3.12-win-64.conda.lock.yml
#	environments/py-3.13-linux-64-dev.conda.lock.yml
#	environments/py-3.13-linux-64.conda.lock.yml
#	environments/py-3.13-win-64-dev.conda.lock.yml
#	environments/py-3.13-win-64.conda.lock.yml
#	environments/py-3.14-linux-64-dev.conda.lock.yml
#	environments/py-3.14-linux-64.conda.lock.yml
#	environments/py-3.14-win-64-dev.conda.lock.yml
#	environments/py-3.14-win-64.conda.lock.yml
#	py-3.12.conda-lock.yml
#	py-3.13.conda-lock.yml
#	py-3.14.conda-lock.yml
#	pyproject.toml
Copilot AI lite review requested due to automatic review settings August 21, 2026 20:28
@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 86.89655% with 19 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.10%. Comparing base (7238a55) to head (6be47be).

Files with missing lines Patch % Lines
geoapps_utils/base.py 85.55% 7 Missing and 6 partials ⚠️
geoapps_utils/run.py 86.48% 2 Missing and 3 partials ⚠️
geoapps_utils/param_sweeps/generate.py 91.66% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #217      +/-   ##
===========================================
+ Coverage    85.70%   86.10%   +0.40%     
===========================================
  Files           19       18       -1     
  Lines         1196      950     -246     
  Branches       155      126      -29     
===========================================
- Hits          1025      818     -207     
+ Misses         129       97      -32     
+ Partials        42       35       -7     
Files with missing lines Coverage Δ
geoapps_utils/param_sweeps/driver.py 81.60% <100.00%> (-0.21%) ⬇️
geoapps_utils/param_sweeps/generate.py 78.94% <91.66%> (+4.58%) ⬆️
geoapps_utils/run.py 88.34% <86.48%> (-4.25%) ⬇️
geoapps_utils/base.py 85.10% <85.55%> (-6.92%) ⬇️

... and 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates geoapps_utils to use geoh5py’s newer UIJson API instead of InputFile/legacy params, and refactors the run + param-sweep utilities and tests to align with that shift.

Changes:

  • Refactor geoapps_utils.base.Driver and geoapps_utils.run to accept/operate on UIJson (including BytesIO) and update result persistence behavior.
  • Update param sweep generation/driver logic to read/write UIJson and adjust tests to use a shared uijson_path fixture.
  • Update the base UI template (base.ui.json) and dependency pin/lockfiles for the geoh5py UIJson feature branch.

Reviewed changes

Copilot reviewed 29 out of 29 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/uijson_run_test.py Reworks UIJson execution tests to use UIJson + a shared fixture and validates output file expectations.
tests/param_sweeps/generate_test.py Updates sweep generation test to use an Options subclass with a default UIJson template.
tests/param_sweeps/driver_test.py Updates sweep driver tests to serialize from options.ui_json and use a nested model template.
tests/driver_test.py Removes legacy driver/options tests superseded by the new base/UIJson testing approach.
tests/dataclass_test.py Updates dataclass tests for UIJson-backed build/flatten behavior and nested model defaults.
tests/conftest.py Adds a uijson_path fixture that materializes a UIJson file for integration-style tests.
tests/base_test.py Adds new base-level tests around UIJson serialization, driver start, warnings, and error cases.
pyproject.toml Pins geoh5py to the feature/uijson git rev.
geoapps_utils/run.py Migrates run helpers to UIJson and adds support for BytesIO ui.json references.
geoapps_utils/param_sweeps/generate.py Updates sweep file generation to read/write via UIJson.
geoapps_utils/param_sweeps/driver.py Updates sweep trial file writing to use UIJson.set_values() + UIJson.write().
geoapps_utils/driver/params.py Removes the legacy BaseParams implementation.
geoapps_utils/base.py Refactors Driver.start() and Options to build from UIJson, adds deprecation plumbing for InputFile, and updates serialization/flattening.
geoapps_utils-assets/uijson/base.ui.json Updates out_group from a primitive to a structured UIJson group object.
environments/py-3.14-win-64.conda.lock.yml Lockfile refresh for updated dependency graph (incl. geoh5py revision).
environments/py-3.14-win-64-dev.conda.lock.yml Dev lockfile refresh for updated dependency graph.
environments/py-3.14-linux-64.conda.lock.yml Lockfile refresh for updated dependency graph.
environments/py-3.14-linux-64-dev.conda.lock.yml Dev lockfile refresh for updated dependency graph.
environments/py-3.13-win-64.conda.lock.yml Lockfile refresh for updated dependency graph.
environments/py-3.13-win-64-dev.conda.lock.yml Dev lockfile refresh for updated dependency graph.
environments/py-3.13-linux-64.conda.lock.yml Lockfile refresh for updated dependency graph.
environments/py-3.13-linux-64-dev.conda.lock.yml Dev lockfile refresh for updated dependency graph.
environments/py-3.12-win-64.conda.lock.yml Lockfile refresh for updated dependency graph.
environments/py-3.12-win-64-dev.conda.lock.yml Dev lockfile refresh for updated dependency graph.
environments/py-3.12-linux-64.conda.lock.yml Lockfile refresh for updated dependency graph.
environments/py-3.12-linux-64-dev.conda.lock.yml Dev lockfile refresh for updated dependency graph.
Suppressed comments (2)

geoapps_utils/base.py:136

  • isinstance(results, tuple | list) will raise TypeError at runtime for the same reason (union types are not allowed in isinstance). Use (tuple, list) or a sequence ABC instead.
                elif isinstance(results, tuple | list):

geoapps_utils/base.py:215

  • isinstance(out_group, self._out_group_class | None) is invalid (| None cannot be used inside isinstance). Check None explicitly or include type(None) in a tuple of types.
        if not isinstance(out_group, self._out_group_class | None):

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread geoapps_utils/base.py
Comment thread geoapps_utils/run.py
@domfournier
domfournier merged commit 2e758b9 into develop Aug 24, 2026
32 of 33 checks passed
@sebhmg
sebhmg deleted the feature/uijson branch August 24, 2026 18:34
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