WIP: Implement Managers with generic QuerySets #1270
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 have made things!
I'm creating this pull request now primarily because I need some help implementing this. I am updating the Manager class to hold the QuerySet class for the manager as a generic type parameter, as per the issue.
I have gotten some parts to work, and the types should work for type checkers without plugin support. Figuring out how to get the mypy plugin to work however is absolutely maddening. There are several hooks where a manager is changed in one place, and then again in a totally different place, and then maybe again in another, and I am having difficulty figuring out exactly how to change the Manager types so they have the right type parameters in the plugin code.
If I can fix the plugin and test cases, this patch will improve type information for mypy and other type checkers that don't have plugin support like Pyright.
Related issues
Closes #863