python / python/cpython

`configparser.getboolean()` raises `AttributeError` for a value-less option

Aberta
#155,436 5 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

stdlib type-bug
Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Merge médio
1d 9h
PRs com merge (30d)
558

Descrição

Bug description

When ConfigParser uses allow_no_value=True, calling getboolean() on a value-less option raises AttributeError instead of the documented ValueError.

Documentation:
https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.getboolean

Reproducer

import configparser

config = configparser.ConfigParser(allow_no_value=True)
config.read_string("""
[section]
enabled
""")

assert config.get("section", "enabled") is None
config.getboolean("section", "enabled")

Current result:

AttributeError: 'NoneType' object has no attribute 'lower'

Expected result:

ValueError: Not a boolean: None
CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Linked PRs
  • gh-155437

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelo ponto de entrada ConfigParser.getboolean() e reproduza o caso de opção sem valor descrito na issue. Verifique os testes existentes de configparser para conversão booleana e adicione cobertura mostrando o ValueError documentado para None; o trabalho estará concluído quando esse caso não gerar mais AttributeError.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
backend
Tipo de issue
Bug
Dificuldade
2/5
Tempo estimado
1-3 horas
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.