refactor Input
trait to have single as_python
cast for python inputs
#1241
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Change Summary
Looking at performance of new pydantic-core in pydantic's north star benchmark, I noticed that an easy perf win is to avoid copying
Url
andMultiHostUrl
objects when unnecessary.At the same time, I refactored the
Input
trait just a little bit so that all the python-specific methods could be replaced by a single.as_python()
call which validators with targeted optimizations could then use.Related issue number
N/A
Checklist
pydantic-core
(except for expected changes)