separate Input
trait 'a
and 'py
lifetimes
#1227
Merged
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
This is in advance of supporting https://github.com/pydantic/jiter/pull/63/files
The main complication which I face there is that the
Input<'data>
lifetime is a bit mixed up in what lifetime should be'py
for the Python interpreter and which should be'a
for the data borrowed from theInput
. When we start throwing the cow lifetime into the mix (which is equivalent to'a
) things get really mixed up if we don't try to untangle concepts first.This PR separates out those two concepts more cleanly. In general this means that code which previously took
&'data impl Input<'data>
now just takes&impl Input<'py>
in most places.I looked at more extreme alternatives like removing the
'py
lifetime from the trait entirely. That might still be still on the cards, but it would require some more extensive refactoring and this would be a precursor anyway.Related issue number
N/A
Checklist
pydantic-core
(except for expected changes)