Skip to content

feat: replace method for Version#998

Closed
notatallshaw wants to merge 2 commits intopypa:mainfrom
notatallshaw:add-Version.replace
Closed

feat: replace method for Version#998
notatallshaw wants to merge 2 commits intopypa:mainfrom
notatallshaw:add-Version.replace

Conversation

@notatallshaw
Copy link
Copy Markdown
Member

@notatallshaw notatallshaw commented Nov 27, 2025

Fixes: #659
Supplants: #698

My goal with this replace API is to allow an easy way to efficiently strip parts of a Version to create a new Version object, as this is used at multiple points in Specifier which currently do it via stringifying and recreating a Version object.

As such I have kept the API strict and minimal, largely using integers instead of strings so it doesn't have to deal with unnormalized or invalid strings. It could be expanded in the future to allow strings or convenience parameters, like individual parts of the release (major, minor, patch) or individual parts of the pre-release (rc, beta, alpha).

@henryiii
Copy link
Copy Markdown
Contributor

henryiii commented Nov 27, 2025

Would it make sense to call this __replace__? We can’t use copy.replace unconditionally for a long time, but I think that’s close to what it’s doing?

@notatallshaw
Copy link
Copy Markdown
Member Author

I'll close this in favor of Henry's PR #1003 which completes the same goals as this PR but with a slightly different approach.

This was referenced Nov 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Modifying versions

2 participants