attrs `copy.replace()` support

未关闭
#18,304 1 条评论 3 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

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

调研方向

首先使用 mypy 1.13.0 运行报告中的 Python 3.13 复现示例,然后跟踪类型检查器如何对 copy.replace 和由 attrs 生成的 replace 进行建模。检查与这些类型检查或标准库交互相关的现有测试。完成的标准是示例在没有报告的 type-var 错误的情况下通过类型检查,同时现有测试仍然全部通过。

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

描述

feature topic-attrs topic-plugins

Bug Report

attrs 24.3.0 added support for __replace__ in https://github.com/python-attrs/attrs/pull/1383. mypy doesn't like it.

To Reproduce

import copy

from attrs import define


@define
class Foo:
    one: int


foo = Foo(1)
bar = copy.replace(foo, one=2)

Actual Behavior

a.py:12: error: Value of type variable "_SR" of "replace" cannot be "Foo"  [type-var]

Your Environment

  • Mypy version used: 1.13.0
  • Mypy command-line flags: mypy .
  • Mypy configuration options from mypy.ini (and other config files): N/A
  • Python version used: 3.13.1
Package           Version
----------------- -------
attrs             24.3.0
mypy              1.13.0
mypy-extensions   1.0.0
typing-extensions 4.12.2
主要语言
Python
星标
20.6k
派生
3.3k
平均合并
1 天 18 小时
30 天内合并 PR
54

贡献指南

打开贡献指南

从这里开始

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

python/mypy 的其他 Issue

查看 python/mypy 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

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