python / python/cpython

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

未关闭
#155,436 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

stdlib type-bug
主要语言
Python
星标
77.2k
派生
35.9k
PR 合并指标
PR 指标待抓取

描述

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

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

从 ConfigParser.getboolean() 入口开始,重现 issue 中无值选项的情况。检查现有的 configparser 布尔转换测试,并添加覆盖范围以显示对 None 的文档化 ValueError;当此情况不再引发 AttributeError 时,工作就完成了。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
backend
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
停滞
描述清晰度
描述清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。