Application components that do not depend on the widget library
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
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de scipp/essapps
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
A number that is not finite is stored as None at a field that accepts NonePosiblemente ocupada @jeevanabhi-r la tomó hace 2 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
scipp/essapps#140 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
scipp/essapps#152 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
Todos los issues de scipp/essapps
Issues similares
-
binding:python bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
The Browser tab fails with a Wayland error when Open Terminal runs from a Wayland desktop sessionAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
open-webui/open-terminal#210 ·
-
triage/confirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
agentscope-ai/agentscope#3807 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
NousResearch/hermes-agent#150542 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
triton-inference-server/server#9069 ·
Los mantenedores suelen responder en 1 día