# PR #27390 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[SPEC] fix: import copy module for eagle sampling info clone
- 合并时间：2026-06-06 20:12
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/27390

---

# 执行摘要

- 一句话：修复 Eagle 采样信息 deepcopy 导入错误
- 推荐动作：此 PR 改动较小，但修复了一个运行时异常，建议尽快合并。开发者可了解 import 方式对命名空间的影响。

# 功能与动机

eagle_info.py 中 `from copy import copy` 使得 `copy` 成为函数而非模块，后续 `copy.deepcopy` 调用会抛出 AttributeError。此问题在 speculative Eagle verification 过滤 batch 时触发，需要修复。

# 实现拆解

1. **修改导入语句**：在 `python/sglang/srt/speculative/eagle_info.py` 中，将 `from copy import copy` 替换为 `import copy`，使得 `copy` 指向模块而非函数，确保 `copy.deepcopy` 可用。
2. **调整导入顺序**：由于 `copy` 是标准库模块，将其移到 `logging` 之后，符合 PEP8 导入顺序约定（标准库在前）。整体仅涉及 1 行增删。

关键文件：
- `python/sglang/srt/speculative/eagle_info.py`（模块 推测解码；类别 source；类型 dependency-wiring）: 修改了 import 语句，修复了 `copy.deepcopy` 调用错误。

关键符号：未识别

## 关键源码片段

### `python/sglang/srt/speculative/eagle_info.py`

修改了 import 语句，修复了 `copy.deepcopy` 调用错误。

```python
import copy  # 替换为模块级导入，以确保 copy.deepcopy 可用
import logging
from dataclasses import dataclass
from typing import List, Optional, Tuple

import torch
import torch.nn.functional as F
# ... 后续导入保持不变

```

# 评论区精华

无实质讨论，仅有一条 bot 自动 review 确认无反馈，以及 Qiaolin-Yu 的批准。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险极低：仅修改一行 import 语句，不影响其他导入依赖。原代码中 `copy` 函数（即 `copy` 模块的 `copy` 函数）未被显式调用，因此移除 `from copy import copy` 不会导致其他地方报错。
- 影响：影响范围：修复 speculative Eagle verification 过滤 batch 时 `copy.deepcopy` 调用失败的 bug，确保功能正确性。用户无需配置变更。
- 风险标记：暂无

# 关联脉络

- PR #27360 [Spec] Fix fa3 EAGLE draft-decode expand page_table scatter OOB for topk>1 + page_size>1: 同属 speculative decoding 修复系列，且都涉及 eagle 相关逻辑。
- PR #27428 [debug] Register #27338 EAGLE draft kv_indices revert in pr_fix_toggle: 与 eagle 相关，都涉及 revert/ 修复。