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.
Hi @JeffXiePL, this is an example of what you could do for including typing for a module. I have also included some extra small changes beyond indicating the types of arguments and function returns, but you don't really have to do that unless you spot something that you think needs changing.
Have a look at the files changed of this PR to see my changes.
Note the usage of
TypeVar
. This is useful when you want to use the same class method for a class and subclass, and the method returns that same class or subclass as output. Below is a silly minimal example that you can test in vscode:If you hold
cmd
and hover overparent2
andchild2
, you will see that the type displayed is the correct one. This is also the case if you omit the typing entirely, because vscode can infer it for this code, but it's not always the case depending on which functions are used in the body of the method, so we can be explicit and indicate it.