You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
3.13 Better Document __replace__ on Dataclasses and Named Tuples #121371
With named tuples and dataclasses now implementing __replace__, it would be good to have some clearer documentation on this somewhere. Type-checkers will likely have to implement support as a specific implementation detail, which MyPy is already starting to do (see here, for example), so having more formal documentation of this fact would helpful.
The __replace__ method itself is an implementation detail. Only the support of copy.replace() should be documented. In future we may add other ways to specify this.
Special methods like __iter__ or __reduce__ are rarely documented. Instead the fact that objects are iterable or pickleable are documented.
The __replace__ method itself is an implementation detail. Only the support of copy.replace() should be documented. In future we may add other ways to specify this.
Special methods like __iter__ or __reduce__ are rarely documented. Instead the fact that objects are iterable or pickleable are documented.
Makes sense, I will just say it just being documented in copy, while it needing to be special-cased I think makes it harder to realize that type-checkers should likely implement support - so I do wonder if there's a better way to indicate things like that long-term.
Activity
serhiy-storchaka commentedon Jul 4, 2024
The
__replace__method itself is an implementation detail. Only the support ofcopy.replace()should be documented. In future we may add other ways to specify this.Special methods like
__iter__or__reduce__are rarely documented. Instead the fact that objects are iterable or pickleable are documented.max-muoto commentedon Jul 5, 2024
Makes sense, I will just say it just being documented in
copy, while it needing to be special-cased I think makes it harder to realize that type-checkers should likely implement support - so I do wonder if there's a better way to indicate things like that long-term.randolf-scholz commentedon Jul 1, 2025
@max-muoto Regarding
copy.replacein conjunction with generic types, is the following considered legal?Or, should
copy.replaceonly allow integer values forvaluein this case? This would be useful to add to the documentation as well.context: https://discuss.python.org/t/make-replace-stop-interfering-with-variance-inference/96092/16