Application components that do not depend on the widget library

Abierto
#150 1 comentario 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@SimonHeybrock ya está trabajando en esto.

Desde el 5/11/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

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.

Lenguaje dominante
Python
Estrellas
0
Forks
1
Merge medio
9 h 40 min
PR fusionados (30 d)
60

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de scipp/essapps

Todos los issues de scipp/essapps

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.