-
-
Notifications
You must be signed in to change notification settings - Fork 46.7k
[mypy] annotate compression
#5570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
3e2585d
to
4299195
Compare
self.bitstring = {} | ||
def __init__(self, letter: str, freq: int): | ||
self.letter: str = letter | ||
self.freq: int = freq |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are Python and mypy smart enough to know the data types being assigned on lines 8 and 9? Even without the type hint, won’t mypy still complain if I later try to assign 1 to self.letter or “A” to self.freq?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you are being rhetoric here 😅 but I thought I should add my two cents but tbh I would like to know the answer as well 😂 From my limited knowledge of using python, Mypy would still complain but I think the main use of type hints that I have found is when language servers used in IDE's help the programmer to look at the function signature/definition and not make any mistakes. For example, when you're writing something in VSCode and use a package it gives you an autocomplete suggestion which also contains the information for the type expected in a particular argument. This immediately makes the programmer aware that they are making a mistake because language servers raise a warning squiggly lines whereas the type hint inside the def doesn't (I think). If I'm wrong, let me know as well 😂 I would also like to know whether language servers would be able raise a flag when type hint is only provided in the definition and not the signature of the function.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You and I agree with each other. The most helpful use of type hints is in function parameters and return types.
@@ -75,10 +82,11 @@ def bwt_transform(s: str) -> dict: | |||
rotations = all_rotations(s) | |||
rotations.sort() # sort the list of rotations in alphabetically order | |||
# make a string composed of the last char of each rotation | |||
return { | |||
response: BWTTransformDict = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this change run counter to flake8 return
error R504? https://github.com/afonasev/flake8-return#errors
Describe your change:
Fixed missing type annotation for compression directory. It now passes
mypy --strict
.Related to #4052
Checklist:
Fixes: #{$ISSUE_NO}
.