python / python/cpython

configparser.write() loses UNNAMED_SECTION items to DEFAULT on round-trip

Abierto
#154,596 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

stdlib type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Bug description

ConfigParser.write() outputs UNNAMED_SECTION items after the [DEFAULT] header. When the output is read back, the headerless items appear under [DEFAULT] and are lost from UNNAMED_SECTION.

import configparser, io

US = configparser.UNNAMED_SECTION
cfg = configparser.ConfigParser(allow_unnamed_section=True)
cfg.read_string('key1 = val1\n[DEFAULT]\ndkey = dval\n[sect1]\nkey2 = val2\n')

out = io.StringIO()
cfg.write(out)

cfg2 = configparser.ConfigParser(allow_unnamed_section=True)
cfg2.read_string(out.getvalue())
print('key1' in cfg2[US])       # False -- lost
print('key1' in cfg2.defaults())  # True -- migrated to DEFAULT
CPython versions tested on

3.14, main

Operating systems tested on

macOS

Linked PRs
  • gh-154597

Guía de contribución

Abrir la guía de contribución

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.

Línea de trabajo

Reproduce el round-trip mostrado en el issue y, después, inspecciona ConfigParser.write() y read_string() para rastrear cómo se emiten y analizan los elementos de UNNAMED_SECTION. Se considera terminado cuando la clave sin encabezado permanece en cfg2[UNNAMED_SECTION] después de escribir y leer la configuración; el PR vinculado gh-154597 indica que el trabajo ya está en curso.

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

Evaluación

Stack tecnológico
python
Área
tooling
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.