Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Create a demo viewer app

Abierto
#24 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
python
Área
desktop

Línea de trabajo

Comienza comparando traitsui.extras.demo con TraitsUI examples/tutor.py y revisando cómo están estructurados Envisage Tasks y la integración existente con IPython. Divide el visor solicitado en partes con alcance independiente antes de proponer una arquitectura. Se considera completado cuando estén implementados y probados el descubrimiento de demos, la edición, la ejecución, la sincronización, los puntos de extensión y el comportamiento opcional de búsqueda enumerados en la issue.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

This is a large issue that should take some time to complete, and have multiple sub-parts. The goal is to create a comprehensive demo application that is an improved version of traitsui.extras.demo and TraitsUI examples/tutor.py that has the following features:

  • is an Envisage + Tasks application
  • the Task has a basic layout of:
    • a dockpane tree view of examples/demos
    • a dockpane showing an HTML description of the selected item in the tree view
    • a dockpane showing the source code of the selected item in the tree view (if any). This should be user editable, and changes applied to the example/demo when it is next run.
    • a dockpane with an IPython prompt (this can be more-or-less taken from Envisage)
    • a central pane with editors that show the content of running demos (if they are embeddable).
    • dockpanes with stdout, stderr and logging information for the active editor
  • if an item is activated in the tree view (usually double-click on it) or if a run action is fired while an item is selected, the example/demo is executed:
    • some items may be descriptive only, in which case the run action should be disabled
    • some items may not have any UI component (especially Traits examples) and so may make sense to just run in the IPython kernel
    • some items may run an external script in a sub-process (eg. a more complex application)
    • some items may pop up a modal or non-modal dialog
    • but many will create an object that can be displayed in an editor in the central pane.
    • appropriate values from the example/demo's namespace will be populated into the IPython kernel so users can inspect/interact with them
  • if the active editor is changed, the selection should track that (so the description and code dockpanes are synchronized with the active editor).
  • the examples/demos are contributed via extension points so new libraries can make their own demos available to the application
  • plugins should be able to contribute new example/demo types (eg. the Kiva example plugin should be able to contribute a new example/demo type for displaying a graphics context that the example code draws into).

If done well, this application should be useable without Envisage, so we can use a basic Tasks-only version of the application for Pyface/TraitsUI demos/examples, and then have better extensions for Enable and Chaco examples. This may mean that significant parts of the code live in TraitsUI, Enable and Chaco.

Icing on the cake would be to add example search via something like Whoosh.

Lenguaje dominante
Python
Estrellas
5
Forks
3
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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 enthought/ets-examples

Todos los issues de enthought/ets-examples

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.