Repository navigation
Conversation
This branch has not been deployed
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.
I'm adding in an implementation for encoding and decoding objects at the class level as a last resort this is so that famous libraries like yarl can be supported but it hands over that responsibility to yarl to configure unless a hook is provided already. This will also allow other users to do the same with their own libraries allowing msgspec to remain in competition with pydantic which supports yarl already.
I'm also looking at
__msgspec_decode__but I have no idea where to inject it's code yet so It's still ongoing work. But feel free to review my current code for improvement or places to inject__msgspec_decode__(should be a@classmethodwrapper) for decoding support as last resort. I'll be adding these hooks toyarl.URLif this PR is accepted as I am apart of aio-libs's triage and having supported pydantic already and users wanting to try yarl with msgspec without going through the process of needing to add a callback hook seems to be the laziest approach that should be welcomed by many.Fixes #707 but with a different approach.
To demonstrate the approch I'm using a different class name to show how exactly I plan for this newly added feature to work, I have not figured out built-ins yet but json and msgspack (encoding only) are supported now.