Fix how PreTrainedModel checks annotations on Python 3.14+#44165
Closed
alexmalyshev wants to merge 1 commit intohuggingface:mainfrom
Closed
Fix how PreTrainedModel checks annotations on Python 3.14+#44165alexmalyshev wants to merge 1 commit intohuggingface:mainfrom
alexmalyshev wants to merge 1 commit intohuggingface:mainfrom
Conversation
With Python 3.14 and PEP 649, you can no longer expect `cls.__dict__["__annotations__"]` to contain annotations for the exact class, it will be loaded lazily and can make it seem like the class doesn't have any annotations. The recommended tools all load annotations for the entire class hierarchy. What we can do is to compute the annotation for a class and for its parent, then compare them. If they're different, then we know we have a dedicated annotation on the child class.
Member
|
This one touches some very core code so cc maintainers @ArthurZucker @Cyrilvallez @vasqu |
Contributor
Author
|
@ArthurZucker @Cyrilvallez @vasqu -- Gentle nudge to take a look at this, thanks! |
5 tasks
Member
|
I see it has been superseded by #44672 which provided a simpler fix! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
With Python 3.14 and PEP 649, you can no longer expect
cls.__dict__["__annotations__"]to contain annotations for the exact class, it will be loaded lazily and can make it seem like the class doesn't have any annotations.The recommended tools all load annotations for the entire class hierarchy. What we can do is to compute the annotation for a class and for its parent, then compare them. If they're different, then we know we have a dedicated annotation on the child class.