Add typing, remove deprecated RelatedLinkColumn #974
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.
Writing union types as
X | Y
is first added in python 3.10, if we keep supporting it until the end of life of python 3.9, that would mean we can only merge this after 2025-10.Alternatively, we can use the
Union[X, Y]
syntax which is already supported by python 3.9.Another issue is
Unpack
which is available from python 3.11. It is part of typing_extensions, so we can still use it.The final few errors in the current state of this PR is this list (in which the tests are not yet included in the type checking):
Ideally, users of django-tables2 should still be able to use
def render(self, record)
ordef render(self, value)
without complaints of the type checker. I think this might be hard to achieve, so we should document that usingdef render(self, **kwargs: Unpack[CellArguments])
and unpacking kwargs in the body of the method is the way to achieve type safety.