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

__terminal__ output reappears after clearing the element

Abierto Apto para principiantes
#913 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
84/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript, python
Área
frontend, web-dev

Línea de trabajo

Comienza en transcrypt/modules/org/transcrypt/runtime.py, en la implementación de Terminal y los bindings de print/input a nivel de módulo vinculados en el issue. Comprueba cómo init establece el elemento y cómo output lo vuelve a escribir a partir de self.buffer. Se considera terminado cuando un método clear() restablece tanto buffer como el contenido mostrado, de modo que las salidas posteriores no restauren texto obsoleto.

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

Descripción

Problem

Output written to __terminal__ cannot be cleared. Clearing the target element from application code removes the rendered text only. The next print puts everything back.

Cause

__Terminal__ keeps the output history in self.buffer and rewrites the whole element from that buffer on every call:

https://github.com/TranscryptOrg/Transcrypt/blob/32b216bcd3cb08c81645528c1a108a78be0b2325/transcrypt/modules/org/transcrypt/__runtime__.py#L284-L288

The class offers no method to reset self.buffer. Replacing the module-level instance does not help either, because print and input are bound to the original instance when the runtime module is loaded:

https://github.com/TranscryptOrg/Transcrypt/blob/32b216bcd3cb08c81645528c1a108a78be0b2325/transcrypt/modules/org/transcrypt/__runtime__.py#L301-L304

Proposed fix

Add a clear() method that resets buffer and element together, so the buffer cannot restore stale output:

    def clear (self):
        self.buffer = ''

        if self.element:
            self.element.innerHTML = '_'

'_' is the initial content written by __init__, so clear() returns the terminal to its start state.

Workaround

Reset both parts by hand:

__terminal__.buffer = ''
__terminal__.element.innerHTML = ''

Version

Transcrypt 3.9.5

Contribution

I am happy to write the pull request for this change if the proposed approach is acceptable.

Lenguaje dominante
Python
Estrellas
2.9k
Forks
218
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 TranscryptOrg/Transcrypt

Todos los issues de TranscryptOrg/Transcrypt

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.