Proto commits in nipunn1313/mypy-protobuf

These 52 commits are when the Protocol Buffers files have changed:

Commit:3424b22
Author:Nipunn Koorapati
Committer:Nipunn Koorapati

Bump to 4.21.6 - in progress

Commit:f4a28eb
Author:Nipunn Koorapati
Committer:GitHub

Switch to use reserved mypy-protobuf extension option numbers (#403) Fixes #396

The documentation is generated from this commit.

Commit:1989920
Author:Nipunn Koorapati
Committer:GitHub

Use a single extension message for all the mypy_protobuf field extension types (#398) This allows us to only expend a single extension number

Commit:7a0286b
Author:Nipunn Koorapati
Committer:GitHub

Convert extensions.proto to proto3 (#397)

Commit:9f21fec
Author:Alphadelta14
Committer:GitHub

Save module docstring to top of pyi files (#385) * Save module docstring to top of pyi files * Ideas from CR * Update readme/changelog Co-authored-by: Nipunn Koorapati <nipunn1313@gmail.com>

Commit:41b5cd4
Author:Nipunn Koorapati
Committer:GitHub

Reorder enum helper classes to make pycharm happy (#314) Move circular references into typing context and move down the main class to the bottom so that pycharm is able to figure out the dependencies without errors. Fixes #312

Commit:d70d6a3
Author:Nipunn Koorapati
Committer:GitHub

Fix special chars further (#298) * Use raw strings for comments * Fix special characters in comments further * Use raw string and add test cases from code review

Commit:01a574b
Author:Jared Khan
Committer:GitHub

Add some basic testing of docstring escaping (#297) Co-authored-by: Jared Khan <jared.khan@five.ai>

Commit:2a5b81a
Author:Nipunn Koorapati
Committer:GitHub

Use docstring style comments instead of # comments (#281) Fixes #280

Commit:eb1defa
Author:Nipunn Koorapati
Committer:GitHub

Rudimentary support for comments in proto files (#254) - Messages - Fields in messages - Enums - Enum variants - Extensions - Services - Service methods - Grpc Services - Grpc Service Methods Fixes #166

Commit:0d1da08
Author:Nipunn Koorapati
Committer:GitHub

Add support for messages/enums with python reserved keyword names (#250)

Commit:f6d8aca
Author:Nipunn Koorapati
Committer:GitHub

Support repeated extensions (#248) Generate RepeatedScalarFieldContainer and RepeatedCompositeFieldContainer for those fields.

Commit:a7c4e8a
Author:Nipunn Koorapati
Committer:GitHub

Fix generated code for enums with name conflict with EnumTypeWrapper fields (#246) For example, the following has a field which conflicts with a method on the EnumTypeWrapper class. ``` enum { Name = 1; } ``` Fixes #238

Commit:5eee8e7
Author:Nipunn Koorapati
Committer:GitHub

Fix module level extensions (#245) Update types-protobuf pin from typeshed Depends on https://github.com/python/typeshed/pull/5774 Fixes #244

Commit:a6d11ed
Author:Nipunn Koorapati
Committer:GitHub

Support reserved names for message types (#226) Unfortunately, our tests missed this, because all our tests with reserved names for message types also had reserved names for the identifiers. Added a couple tests for the new scenario, reproed, and fixed by replacing such instances with `Any` (best we can do) Fixes #221

Commit:5d49fc9
Author:Nipunn Koorapati
Committer:GitHub

Fix import public reexport crash (#203) Fix crash when a import public reexport when dependent proto file is not listed on command line for generation

Commit:8f649f6
Author:Nipunn Koorapati
Committer:GitHub

Add public import reexport feature (#186) Support for proto syntax import public "path/to/other.proto";

Commit:883188c
Author:Nipunn Koorapati
Committer:GitHub

Support for mypy_protobuf.casttype, keytype, and valuetype (#178)

Commit:611d31b
Author:Nipunn Koorapati
Committer:GitHub

Rename self to self_ in cases where msg field is named self (#179)

Commit:9d593e5
Author:Nipunn Koorapati
Committer:GitHub

Rename proto/mypy/mypy.proto to proto/mypy_protobuf/extensions.proto (#177)

Commit:0b8c464
Author:Nipunn Koorapati
Committer:GitHub

Add support for well_known_types (#163) Some google.protobuf types are hard coded within the protobuf compiler to have additional base classes. Add those base classes here and confirm that things work in typeshed.

Commit:95e71c7
Author:Nipunn Koorapati
Committer:GitHub

Add support for grpc services generation (#176) Co-authored-by: Eugene Chernyshov <eugene@thefloorcyber.com>

Commit:b24a447
Author:henribru
Committer:GitHub

Add support for optional proto3 fields (#157) * Add support for optional proto3 fields * Expand contributor list * Update changelog * Ignore mypy errors * Add new test output * Add additional new test output

Commit:26ab89b
Author:Nipunn Koorapati
Committer:GitHub

Remove the google .proto files in the repo (#155) They come shipped with protoc - so it's not necessary to have them here. They go stale w/ protoc upgrades if we keep them here.

Commit:6229558
Author:Nipunn Koorapati
Committer:GitHub

Add map support (#140) Depends on https://github.com/python/typeshed/pull/4265 Will need to wait for a new mypy release to pick this up.

Commit:b1228c1
Author:Ethan Pronovost
Committer:GitHub

Minimal implementation of message extensions (#149)

Commit:81228ee
Author:Nipunn Koorapati
Committer:GitHub

Reorganize tests to generate into generated/ directory (#142)

Commit:57c9a33
Author:Nipunn Koorapati
Committer:GitHub

Add test for map case (#139)

Commit:db43f1b
Author:Nipunn Koorapati
Committer:GitHub

Add testing for inner enums in proto3 (#122)

Commit:22a8ad8
Author:Nipunn Koorapati
Committer:GitHub

Fix message/field name aliasing (#112) Fixes #108

Commit:02a7fed
Author:Xiao Meng
Committer:Nipunn Koorapati

Alias builtin types (#92) * alias builtin types to prevent such case: message Foo { google.protobuf.BoolValue bool = 1; } in the generated pyi file, the Foo class will look like: class Foo: @property def bool(self) -> google.protobuf.BoolValue: ... def HasField(self, field_name) -> bool: ... but the bool in HasField definition has been rewritten as property method bool, which will result in mypy error as: error: Invalid type "foo_pb2.Foo.bool" this commit add alias assignments for all builtin types that are used in the pyi, the generated results is like: builtin___bool = bool builtin___bytes = bytes builtin___float = float builtin___int = int and the relevant type hints is like: def HasField(self, field_name) -> builtin___bool: ... thus the built-in variable collision could be prevented * enhance code style - use set literal - rename shadow variable name in sub function - two empty lines between classes * add field name is built-in python var example

Commit:d65a72a
Author:Nipunn Koorapati
Committer:GitHub

Add class to the set of python keywords (#91)

Commit:ae6dc9c
Author:Nipunn Koorapati
Committer:GitHub

update filepath generation to match protoc --python-out (#88) Credit to @arussellsaw for implementing this initially in #72

Commit:0d9ade6
Author:Nipunn Koorapati
Committer:GitHub

Remove emission of python keywords. (#78) Added testing for this behavior. Fixes #73. See #73 for details.

Commit:b0a97c4
Author:Nipunn Koorapati
Committer:GitHub

Upgrade to python-protobuf 3.7 (#77)

Commit:bf6ea19
Author:Nipunn Koorapati
Committer:GitHub

Add literal return values via overload to WhichOneof (#70)

Commit:ce725b1
Author:Nipunn Koorapati
Committer:GitHub

Add oneofs to HasField and ClearField w testing (#68)

Commit:e50978a
Author:Nipunn Koorapati
Committer:GitHub

Type HasField as literal types. Start work on ClearField (#64)

Commit:992b210
Author:Nipunn Koorapati
Committer:GitHub

Support capitalized packages and lowercased messages (#61) Fixes #60

Commit:987d05b
Author:Abhishek Radhakrishnan
Committer:Nipunn Koorapati

Support for nested imports (#57) * Add IDEA and DS_STORE files to .gitignore * Nested import one liner change * Add test protos for nested imports (enums and messages) and matching expectations * Add comment for remains per review comment

Commit:8cedf04
Author:Pascal Corpet
Committer:Nipunn Koorapati

Stub extensions. (#54)

Commit:d6d426d
Author:Pascal Corpet
Committer:Nipunn Koorapati

Import message/enum types from other files even if they are not in a package. (#52) Fixes #51.

Commit:5086192
Author:Nipunn Koorapati
Committer:GitHub

Gate generic service generation behind the file-descriptor option (#49)

Commit:b452a0c
Author:Nipunn Koorapati
Committer:GitHub

Added testing around nested packages (#39) * Added testing around nested packages * Add __init__.py

Commit:ab22ee1
Author:Nipunn Koorapati
Committer:GitHub

Add support for repeated entries in files without a package (#35)

Commit:7b89cf6
Author:Nipunn Koorapati
Committer:GitHub

Fix repeated inner enums codgen (#34)

Commit:88be292
Author:Nipunn Koorapati
Committer:GitHub

Test/fix nested imports inward and outward (#31) Fixes #24

Commit:50d987f
Author:Nipunn Koorapati
Committer:GitHub

Use fully qualified names (#30) Fixes #29

Commit:8988e66
Author:Nipunn Koorapati
Committer:GitHub

Add positive and negative tests for output from mypy (#28) * Add a test which serializes/deserializes with types * Add negative test

Commit:0df796b
Author:Nipunn Koorapati
Committer:GitHub

Replace service with Any while waiting for #25 (#26)

Commit:b134864
Author:Nipunn Koorapati
Committer:Nipunn Koorapati

Add a basic output-matches-expected test I still want additional testing to run mypy and verify the output is reasonable, but this is a good start.

Commit:1b08742
Author:Dave Zbarsky
Committer:Dave Zbarsky

Add go implementation of protoc plugin that generates mypy stubs