Closed manulera closed 2 months ago
@BjornFJohansson this is mostly typing for #176, but also a few refactors of dseq for better clarity or practice (e.g. checking the length of arrays instead of using try / raise).
Attention: Patch coverage is 95.18072%
with 4 lines
in your changes missing coverage. Please review.
Project coverage is 93.57%. Comparing base (
f156549
) to head (787d00c
). Report is 1 commits behind head on dev_bjorn.
Files with missing lines | Patch % | Lines |
---|---|---|
src/pydna/dseq.py | 94.36% | 2 Missing and 2 partials :warning: |
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.