python / python/mypy

attrs `copy.replace()` support

Aperta
#18,304 1 commento 3 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

feature topic-attrs topic-plugins
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia eseguendo la riproduzione segnalata con Python 3.13 e mypy 1.13.0, quindi segui il modo in cui il type checker modella copy.replace e replace generato da attrs. Controlla i test esistenti relativi a queste interazioni tra il tipaggio e la libreria standard. Il lavoro è completo quando l’esempio supera il controllo dei tipi senza l’errore type-var segnalato e i test esistenti continuano a passare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
devtools
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.