Application components that do not depend on the widget library

Aperta
#150 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@SimonHeybrock ci sta già lavorando.

Dal 5/11/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

Panel is what the prototype uses, and applications may end up on another widget library. Every GUI needs the same things, such as a list of the outputs computed so far, so those parts should not depend on the widget library, and the Panel layer should be thin.

Component Where it is today What does not need a widget library
What a request may name, record and output labels panel/listing.py all of it; it imports no Panel, but lives in the Panel package
List of outputs Outputs.refresh the rows; they are built next to the table
Details of an output Outputs._describe, records.describe the text and what it reads
Form from a spec panel/form.py, 843 lines the tree of fields, collecting values, and placing errors; _Scalar, _Group, _Record, and the rest hold these in one class with their widgets
Provenance graph panel/graph.py the nodes, edges, and layout
Outcome of a submission App.submit, App.poll the messages, and what happens when a record finishes (#148)
Approach

Extract these as the SANS application (#24) needs them, not ahead of it. That application and the generic App are the two users that show what is generic. Parts of Listing stand in for client calls that are still undecided (#95), so they may move into the client rather than into this layer.

Done when

The tests of the extracted components run without importing Panel, and what remains in ess.apps.panel only places widgets and connects their events.

Related

What a plot function returns, so that plots do not bind an application to one library, is in #149.

Lingua principale
Python
Stelle
0
Fork
1
Merge medio
9h 40m
PR unite (30g)
60

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di scipp/essapps

Tutte le issue di scipp/essapps

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.