Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
5a10644
started general repr of UI fields
forman Mar 11, 2026
5b06fa2
in development
forman Mar 12, 2026
e71883a
basic impl of UIFieldInfo done
forman Mar 12, 2026
1ef4240
Merge branch 'main' into forman/74-predicatable_gui
forman Mar 12, 2026
826f418
allow for extensions
forman Mar 12, 2026
07a970d
added schema to UIFieldInfo
forman Mar 13, 2026
e68bd61
Merge branch 'main' into forman/74-predicatable_gui
forman Mar 13, 2026
bf2724c
recognizing min/maxOccurs in UIFieldInfo
forman Mar 13, 2026
f550867
dealing with arrays / objects
forman Mar 13, 2026
817deaf
Merge branch 'main' into forman/74-predicatable_gui
forman Mar 13, 2026
fd4f8fe
dealing with arrays / objects
forman Mar 13, 2026
357d802
mypy
forman Mar 13, 2026
039af0f
100% coverage
forman Mar 14, 2026
1a9d5d2
simpler impl
forman Mar 14, 2026
9d29c84
Merge branch 'main' into forman/74-predicatable_gui
forman Mar 15, 2026
7d3cb38
Merge branch 'main' into forman/74-predicatable_gui
forman Mar 16, 2026
65b8a18
added layout property to field metadata
forman Mar 16, 2026
c145798
Started node model
forman Mar 16, 2026
877a414
node impl
forman Mar 17, 2026
dc39dba
viewmodel etc
forman Mar 17, 2026
511dbc4
vm impl
forman Mar 18, 2026
8a6fedf
Saving dev state
forman Mar 18, 2026
af6afdb
dev state
forman Mar 18, 2026
789120f
factory impl
forman Mar 19, 2026
aac98df
new builder algo
forman Mar 20, 2026
a179ce4
no longer dealing with null implicily in vms
forman Mar 20, 2026
ea62e36
simulating an external ui-lib
forman Mar 20, 2026
b235d16
fixing impl. bugs
forman Mar 21, 2026
7922754
fixed test
forman Mar 21, 2026
e59f056
introduced writable ViewModel.value property; added CM ViewModel.reco…
forman Mar 21, 2026
9731727
fixing impl. bugs
forman Mar 22, 2026
3abd2de
moved ui one level up
forman Mar 22, 2026
fcae3ef
view models now have 100% coverage
forman Mar 22, 2026
0745ee6
Refactorings: field simplifications and split into submodules
forman Mar 22, 2026
1dd9bfe
moved test module
forman Mar 23, 2026
770abc2
added factory test
forman Mar 23, 2026
a1db773
added builder failing test
forman Mar 23, 2026
68c22fc
Group -> UIFieldGroup, new tests
forman Mar 23, 2026
b5bec39
save impl. state
forman Mar 23, 2026
3391102
field_meta -> meta
forman Mar 23, 2026
e1b866b
update
forman Mar 23, 2026
8095fce
field_meta -> meta
forman Mar 23, 2026
9fb191e
implementing nested panels
forman Mar 23, 2026
58549ec
fixed test
forman Mar 23, 2026
a418f62
got layout prop right
forman Mar 24, 2026
3e15234
mock uilib now renders for visual testing
forman Mar 24, 2026
a46f49b
implementing panel factories
forman Mar 25, 2026
5708b58
panel factories implementation, part 2
forman Mar 25, 2026
fa78ece
mypy fixes
forman Mar 26, 2026
8d0b1cb
"UIField" --> "Field"
forman Mar 26, 2026
13ab4bc
added registry test
forman Mar 26, 2026
350efb4
added field builder for panel
forman Mar 26, 2026
3545863
added new test
forman Mar 26, 2026
c2ce1e0
integrating
forman Mar 27, 2026
ad55c23
FieldBuilder --> FormFactory
forman Mar 27, 2026
b01c77a
moved json util module into gavicore.util
forman Mar 27, 2026
d169e3a
Merge remote-tracking branch 'origin/forman/74-predicatable_gui' into…
forman Mar 27, 2026
2989e83
UNDEFINED -> Undefined.value
forman Mar 27, 2026
b9cb34a
better docstring
forman Mar 27, 2026
66efa1b
new panel-form-tester utility
forman Mar 27, 2026
ef5af9a
new panel-form-tester is starting to work
forman Mar 27, 2026
8a0f941
testing and fixing new panel extra components
forman Mar 27, 2026
881049c
primitive arrays now work too
forman Mar 27, 2026
a5465af
added pixi tool "schema2ui"
forman Mar 28, 2026
bdc400e
Merge remote-tracking branch 'origin/forman/74-predicatable_gui' into…
forman Mar 28, 2026
5453597
added test that converts all schemas
forman Mar 28, 2026
88b5227
path matters
forman Mar 30, 2026
087b032
start support for Panel objects
forman Mar 30, 2026
e319b98
cont. impl. of Panel objects
forman Mar 30, 2026
38e7a9e
all Panel objects working
forman Mar 30, 2026
d26b046
start working on object layouts
forman Mar 30, 2026
f5f0b35
object layouts also work for Panels
forman Mar 30, 2026
554b78f
refactorings
forman Mar 30, 2026
2eec5fe
removed TODO
forman Mar 31, 2026
d8e64cd
integrating complex arrays
forman Mar 31, 2026
4158231
more on array support
forman Mar 31, 2026
be80110
moved cuiman.ui to gavicore.ui
forman Mar 31, 2026
607d3bb
skipped support for AdditionalParameters in process descriptions; get…
forman Mar 31, 2026
9eb6251
debugging the main UI
forman Apr 1, 2026
7c3c1d9
debugging done
forman Apr 1, 2026
c48950d
fix: preserve extra metadata
forman Apr 1, 2026
a391b7a
new debug panel component
forman Apr 1, 2026
350e31a
rearranging modules, part 1
forman Apr 1, 2026
251bc28
rearranging modules, part 2
forman Apr 1, 2026
115c7ba
oops, forgot the schemas
forman Apr 1, 2026
fe234cc
rearranging modules, part 3
forman Apr 1, 2026
a040210
rearranging modules, part 4
forman Apr 1, 2026
aa75ce6
Dropped subpackage `cuiman.gui.component`
forman Apr 1, 2026
1122bf4
All changed code in gavicore back at 100% cov
forman Apr 1, 2026
e9a40a7
format + typecheck
forman Apr 1, 2026
e7abed0
Merge branch 'main' into forman/74-predicatable_gui
forman Apr 1, 2026
e901be6
added missing test
forman Apr 1, 2026
f893e6a
fix + test
forman Apr 2, 2026
bdc9124
updated mermaid diagrams
forman Apr 2, 2026
8094ebb
updated mermaid diagrams
forman Apr 2, 2026
43dd29f
Merge branch 'main' into forman/74-predicatable_gui
forman Apr 7, 2026
9f712bf
Merge branch 'main' into forman/74-predicatable_gui
forman Apr 7, 2026
ee7e6ae
updated changes
forman Apr 7, 2026
8f34a26
Update docs/architecture.md
forman Apr 8, 2026
3ead9e1
Apply suggestions from code review
forman Apr 8, 2026
c496a57
Fixes after PR review
forman Apr 8, 2026
4b1f5f9
Fixes after fixes of PR review
forman Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,20 @@

### Enhancements

- Enhanced the Appligator package with Dockerfile generation and improved
Airflow DAG generation:
- 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](https://panel.holoviz.org/)
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`.

- Enhanced the **Appligator** package with Dockerfile generation and
improved Airflow integration:
- Added `appligator.airflow.gen_dockerfile.generate` for Jinja2-template-based
Dockerfile generation. Produces a two-stage pixi build with support for
non-editable local package installs. The runtime base image is configurable
Expand All @@ -28,7 +40,7 @@
resource fields, `pvc_mounts`, `config_map_mounts`). CLI flags take
precedence over file values.

- The Cuiman client package has been enhanced by _job result openers_,
- The **Cuiman** client package has been enhanced by _job result openers_,
which ease working with the results of a process job (#65):
- Client classes now have a method
`open_job_result(job_id, **options)` that is used to open the results
Expand Down Expand Up @@ -59,6 +71,12 @@
- Replaced one-element enums `JobType`, `MaxOccurs` by string literals.
- Replaced `Union[]` by `|` operator.

### Other changes

- Dropped utility function `additional_parameters()` in `procodile`
as usage of `additionalParameters` in input descriptions
is and was discouraged.

- Lifted some mypy restrictions and enabled mypy pydantic plugin.

## Changes in version 0.0.9
Expand Down
10 changes: 9 additions & 1 deletion cuiman/src/cuiman/api/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from pydantic_settings import BaseSettings, SettingsConfigDict

from gavicore.models import InputDescription, ProcessDescription, ProcessSummary
from gavicore.ui import FieldMeta

from .auth import AuthConfig
from .defaults import DEFAULT_API_URL
Expand Down Expand Up @@ -254,14 +255,21 @@ def is_advanced_input(
`True` if the input is advanced
(e.g. for advanced process users only).
"""
# The following approach uses additionalParameters but its use
# is discouraged. (We receive such metadata currently from
# the TAO Process API).
additional_parameters = input_description.additionalParameters
if additional_parameters:
parameters = additional_parameters.parameters
if parameters:
for p in parameters:
if p.name == "level" and p.value == ["advanced"]:
return True
return False
# The way it should be done is using "x-ui" properties.
# Ideally, we should pass an already parsed FieldMeta into the
# is_advanced_input() method.
field_meta = FieldMeta.from_input_description(input_name, input_description)
return field_meta.advanced or field_meta.level == "advanced"

def register_job_result_opener(
self, opener_type: type[JobResultOpener]
Expand Down
31 changes: 0 additions & 31 deletions cuiman/src/cuiman/gui/component/__init__.py

This file was deleted.

63 changes: 0 additions & 63 deletions cuiman/src/cuiman/gui/component/bbox.py

This file was deleted.

67 changes: 0 additions & 67 deletions cuiman/src/cuiman/gui/component/component.py

This file was deleted.

138 changes: 0 additions & 138 deletions cuiman/src/cuiman/gui/component/container.py

This file was deleted.

Loading
Loading