`minidom` `renameNode()` drops an attribute renamed to a prefixed name
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
El issue identifica xml.dom.minidom.Document.renameNode() y proporciona un reproductor. Empieza leyendo su implementación y las pruebas cercanas para renameNode(). Reproduce el error de espacio de nombres y verifica que el atributo permanezca en el elemento después de renombrarlo; añade o actualiza una prueba de regresión para el nombre esperado p:a y el espacio de nombres.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug description:
Since gh-156665, Document.renameNode() raises NamespaceErr when it renames an attribute with no namespace to a prefixed name in a namespace, and the attribute has already been removed from its element when the error is raised.
from xml.dom.minidom import parseString
doc = parseString('<r a="1" b="2"/>')
attr = doc.documentElement.getAttributeNode('a')
try:
doc.renameNode(attr, 'http://example.com/ns', 'p:a')
except Exception as e:
print(type(e).__name__, e)
print(doc.documentElement.toxml())
NamespaceErr cannot use the prefix 'p' with an empty namespace
<r b="2"/>
Expected: the attribute is renamed to p:a in http://example.com/ns and stays on the element, as on 3.15.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
- gh-159638
- Lenguaje dominante
- Python
- Estrellas
- 77.7k
- Forks
- 38.3k
- Merge medio
- 20 h 19 min
- PR fusionados (30 d)
- 624
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una 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 python/cpython
-
Remove unused FVS_* macrosAbiertointerpreter-core type-feature
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
extension-modules type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
python/cpython#160001 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Docs: problem with page "msvcrt — Useful routines from the MS VC runtime"Quizá libre de nuevo @jikekei la tomó hace 12 días y no hay ningún pull request abierto. Abiertodocs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
python/cpython#159072 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
-
Document unpacking in generator expressions (PEP 798)Posiblemente ocupada @Marwan-verse la tomó hace 10 días. Abiertodocs
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
python/cpython#159061 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
`http.client.HTTPSConnection._tunnel` raises `AttributeError: 'NoneType' object has no attribute 'encode'` when header value is `None`Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto3.14 3.15 3.16 stdlib type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
python/cpython#159044 · 17 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de python/cpython
Issues similares
-
[Resource]: glyphcss-diagramsAbiertoresource-submission validation-passed
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
hesreallyhim/awesome-claude-code#3214 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
room-commons replace accepts an empty old string and silently prepends the new text to the pageAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
doobidoo/mcp-memory-service#1650 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ml-explore/mlx-lm#2002 ·
Los mantenedores suelen responder en 2 días