Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Max Line Length in style guide ignored with python 3.14 when checking multiple files

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

还没有人认领这个 Issue。

评估

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

调研方向

从 style_guide.check_files 使用的 legacy API 路径开始,在 Python 3.14 下重现检查单个文件与多个文件之间的差异。跟踪 max_line_length 在多文件检查期间的应用方式,然后验证在所报告的示例中,两个文件都遵循了配置的值。

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

描述

how did you install flake8?
Installed on demand from TOML requirements as part of uv run command launch
unmodified output of flake8 --bug-report
{
  "platform": {
    "python_implementation": "CPython",
    "python_version": "3.14.2",
    "system": "Linux"
  },
  "plugins": [
    {
      "plugin": "mccabe",
      "version": "0.7.0"
    },
    {
      "plugin": "pep8-naming",
      "version": "0.15.1"
    },
    {
      "plugin": "pycodestyle",
      "version": "2.14.0"
    },
    {
      "plugin": "pyflakes",
      "version": "3.4.0"
    }
  ],
  "version": "7.3.0"
}
describe the problem
what I expected to happen

when using flake8 programmatically it should be possible to check multiple files with the configured style guide. This works correctly with python3.12 but seems to be ignored when using python 3.14

set up style guide
Python 3.14.2 (main, Jan  9 2026, 09:06:43) [GCC 8.5.0 20210514 (Red Hat 8.5.0-28.0.1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
Ctrl click to launch VS Code Native REPL
>>> from flake8.api import legacy as flake8
>>> ignore_list = []
>>> line_length = 88
>>> style_guide = flake8.get_style_guide(extend_ignore=ignore_list, max_line_length=line_length, color="never")
>>> style_guide.options
Namespace(verbose=0, output_file=None, append_config=[], config=None, isolated=False, enable_extensions=None, require_plugins=None, filenames=[], quiet=0, color='never', count=False, exclude=['.svn', 'CVS', '.bzr', '.hg', '.git', '__pycache__', '.tox', '.nox', '.eggs', '*.egg'], extend_exclude=[], filename=['*.py'], stdin_display_name='stdin', format='default', hang_closing=False, ignore=None, extend_ignore=[], per_file_ignores='', max_line_length=88, max_doc_length=None, indent_size=4, select=None, extend_select=None, disable_noqa=False, show_source=False, statistics=False, exit_zero=False, jobs=JobsArgument('auto'), tee=False, benchmark=False, bug_report=False, max_complexity=-1, ignore_names=['setUp', 'tearDown', 'setUpClass', 'tearDownClass', 'setUpModule', 'tearDownModule', 'asyncSetUp', 'asyncTearDown', 'setUpTestData', 'failureException', 'longMessage', 'maxDiff'], classmethod_decorators=['classmethod'], staticmethod_decorators=['staticmethod'], builtins=None, doctests=False, extended_default_ignore=['N818'], extended_default_select=['C90', 'N8', 'F', 'E', 'W'])
Check files ignores the set max_line_length when running with multiple files
>>> style_guide.check_files(['file1.py', 'file2.py'])
file1.py:65:80: E501 line too long (88 > 79 characters)
file1.py:66:80: E501 line too long (85 > 79 characters)
file2.py:17:80: E501 line too long (81 > 79 characters)
file2.py:18:80: E501 line too long (87 > 79 characters)
file2.py:19:80: E501 line too long (88 > 79 characters)
<flake8.api.legacy.Report object at 0x7f070003b4d0>
However running the files individually works ok, and then it is possible to run the two files in the same check correctly
>>> style_guide.check_files(['file1.py'])
<flake8.api.legacy.Report object at 0x7f06ffc50690>
>>> style_guide.check_files(['file2.py'])
<flake8.api.legacy.Report object at 0x7f06ffc507d0>
>>> 
>>> 
>>> style_guide.check_files(['file1.py', 'file2.py'])
<flake8.api.legacy.Report object at 0x7f07001223f0>


主要语言
Python
星标
3.8k
派生
356
平均合并
3 小时 25 分钟
30 天内合并 PR
5

环境准备

从这里开始

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

PyCQA/flake8 的其他 Issue

查看 PyCQA/flake8 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

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