Add googleapis as test fodder #716
Open
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.
Pulling in the whole googleapis subtree, generating stubs, and running mypy on them.
Found a few things.
Fields named
propertyandcollectionscaused conflicts with@propertyandcollections.abc.Iterable. In theory this means that fields calledbuiltins,typing, or other built in names could cause issues.To work around this I did 2 things.
property->builtins.property, and all the import names aliased.This is similar to how the first party
.pyigenerator does it (from collections.abc import Mapping as _Mapping), but matching that exactly would have required more architectural changes.During this switch, I found out that
flake8does ast parsing on string names, so_typingdoes not get parsed astyping, this caused a few issues, but I added somenoqa's to handle those. I figure most people aren't running flake8 on their generated stubs.Overall the change seems large, but conceptually it's a very minor change. And we're now testing on over 13000 proto files!!!
It also turns out that even though
mypy-protobufreserves field numbers 1151-1154, google itself appears to not respect it. 😬