Prhub

#1962 lint

原始 PR 作者 ryang-max 合并时间 2026-05-27 16:05 文件变更 1 提交数 1 评论 0 代码增减 +5 / -5

执行摘要

修复 forge_load.py 的 lint 风格问题

PR 标题为 'lint',表明纯为代码风格清洗。修复了 docstring 与 import 之间缺少空行、以及多行表达式缩进不一致等违反 PEP8 的风格问题。

可直接合入。对仓库贡献者有一定参考价值在于展示了该仓库期望的代码风格规范。

讨论亮点

无 review 讨论记录。

实现拆解

  1. 修复 docstring 后空行:在文件顶部的多行 docstring 后增加一个空行,满足 PEP8 对模块级 docstring 之后需有空行的要求。
  2. 简化 list comprehension:将 rewards 列表推导式从多行格式合并为单行,减少不必要的换行。
  3. 调整日志参数换行:将 logger.info 的参数各单独一行,使长行参数排列更清晰。
文件 模块 状态 重要度
slime/rollout/forge_load.py rollout modified 4.49

关键符号

generate_rollout

关键源码片段

slime/rollout/forge_load.py core-logic

唯一变更文件:调整 import 顺序、简化 list comprehension 表达式、改进日志参数换行。

def generate_rollout(args, rollout_id, data_source, evaluation: bool = False):
    path = _resolve_path(args, rollout_id, evaluation)
​
    if evaluation:
        # ...
        # 合并后的 list comprehension(单行)
        rewards = [s.reward if (not reward_key or s.reward is None) else s.reward[reward_key] for s in samples]
        return RolloutFnEvalOutput(
            data={
                "forge_eval": {
                    "rewards": [r if r is not None else 0.0 for r in rewards],
                    "truncated": [s.status == Sample.Status.TRUNCATED for s in samples],
                    "samples": samples,
                }
            }
        )
    # ...
    # 参数拆开到多行
    logger.info(
        "forge_load: loaded %d samples for rollout_id=%d from %s",
        len(samples),
        rollout_id,
        Path(path).name,
    )
    return RolloutFnTrainOutput(samples=samples)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。仅涉及空白符和缩进调整,不改变任何执行逻辑。唯一的微小风险是如果后续有自动化 lint 检查工具(如 flake8/black)对行长度有更严格限制,当前单行约 100 字符可能仍略超标准(PEP8 建议 79 字符),但仓库本身可能未严格要求。

仅影响 slime/rollout/forge_load.py 一个文件,无功能或性能影响,对用户透明。团队内可保持代码风格一致性,减少 lint 告警。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论