Skip to content

Generate a predictable and customizable GUI in cuiman #75

Merged
forman merged 102 commits intomainfrom
forman/74-predicatable_gui
Apr 8, 2026
Merged

Generate a predictable and customizable GUI in cuiman #75
forman merged 102 commits intomainfrom
forman/74-predicatable_gui

Conversation

@forman
Copy link
Copy Markdown
Collaborator

@forman forman commented Mar 12, 2026

The Gavicore package has been enhanced by a new UI generator which converts OGC API - Process descriptions (or OpenAPI Schema) into user interfaces for editing input parameters:

  • Added a new extendable UI generation framework in gavicore.ui.
  • The framework itself does not enforce a dedicated widget library, but it can be configured to output UIs for any Python widget library.
  • Support for UI generated with the Panel library is inbuilt as it is used in the Cuiman GUI.
  • Dropped subpackage cuiman.gui.component.
  • Added a pixi tool to demonstrate and debug generated UIs from OpenAPI Schema: pixi run schema2ui.

Addresses #74
Closes #55
Closes #37
Closes #38

Note that many points described in #74 are not addressed in this PR but will be addressed in follow-up PRs:

  • Fully support OpenAPI Schemas. We lack discriminator, oneOf, anyOf, allOf, $ref, and some more
  • Adjust ClientConfig.is_advanced_input() to the new solution (see TODO).
  • Document capabilities and limitations. Add guide for OGC processes server developers.
  • See the numerous TODOs in gavicore.ui code and create an umbrella issue

The best way to start reviewing this PR is running the new schema2ui tool understand the tool's code and debug into the UI generation process:

pixi run schema2ui

Checklist (strike out non-applicable):

  • Changes documented in CHANGES.md
  • Related issue exists and is referred to in the PR description and CHANGES.md
  • Added docstrings and API docs for any new/modified user-facing classes and functions
  • Changes/features documented in docs/* (just architecture diagrams, docs still needed, see Document the client GUI #42)
  • Unit-tests adapted/added for changes/features
  • Test coverage remains or increases (target 100%)

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@forman forman mentioned this pull request Mar 12, 2026
6 tasks
@forman forman marked this pull request as ready for review April 2, 2026 06:16
@forman forman requested review from TejasMorbagal, b-yogesh and pont-us and removed request for b-yogesh April 2, 2026 06:17
Copy link
Copy Markdown
Collaborator

@pont-us pont-us left a comment

Choose a reason for hiding this comment

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

Quite a few comments and suggestions, but approving since I don't need to review again.

Copy link
Copy Markdown
Collaborator

@clarasb clarasb left a comment

Choose a reason for hiding this comment

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

Really nice!

I have some small suggestions and I made some observations while running pixi run schema2ui. For the observations see the comments in gavicore/tests/ui/schemas/.

Co-authored-by: Pontus Lurcock <pontus.lurcock@brockmann-consult.de>
@forman forman removed the request for review from TejasMorbagal April 8, 2026 09:26
Co-authored-by: Pontus Lurcock <pont@talvi.net>
Co-authored-by: Clara Backens <64074334+clarasb@users.noreply.github.com>
@forman
Copy link
Copy Markdown
Collaborator Author

forman commented Apr 8, 2026

@clarasb I'd like to not fix the individual editor issues you discovered in this PR and instead create new ones, because they are cleanly isolated. They are

  • various issues with the bbox map-editor
  • control step-size for integer/float sliders
  • issue with partly hidden date ticker in array editor

@forman forman requested a review from clarasb April 8, 2026 11:04
@forman forman merged commit d52a85b into main Apr 8, 2026
2 checks passed
@forman forman deleted the forman/74-predicatable_gui branch April 8, 2026 11:32
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.

Allow cuiman GUI to detect actual type of process inputs Add GUI for process inputs of type "object" Add GUI for process inputs of type "array"

3 participants