-
Notifications
You must be signed in to change notification settings - Fork 555
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
Type hints napalm.base and napalm.nxos #1412
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…e checking for nxapi_plumbing
mirceaulinic
approved these changes
Apr 1, 2021
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.
Nice work. I think I like the approach.
Any thoughts on this @ktbyers?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 now gone ahead and put type hints in for
napalm.base
andnapalm.nxos
. I am aware that this is a lot of change for a single pull request, as a good amount of code to be executed at runtime has been added as well (lots ofassert isinstance(...)
). I wanted to make sure that all of the typing errors are gone before I submitted the PR because only then I can know that the whole type hint construct is more or less well defined. If I was still missing bits, other - already annotated - bits might not type check correctly. While I have made an effort as to not cause any regressions through these runtime behavior changes I still think that this PR needs a rather thorough review due to this. I'm more than happy to have a discussion here.I have also added Mypy to the GitHub Actions workflow file.
There is a final discussio point about a type error which I have currently silenced (mypy ran without the
# type: ignore
in this snippet).I have put generic type variables in for the
convert
function as follows:Mypy complains about this because
""
is not of type R. I held off on changing this due to the ~200 occurences of this function within the various drivers as I did not want to change anything in any drivers but the NXOS and the base one. My proposed solution would be to go through and make sure a default is passed for every call.