Skip to content

Commit eed0949

Browse files
authored
Generate black-compatible formatted code (#382)
Update pyproject.toml so that we test for it in CI
1 parent e4d73e5 commit eed0949

23 files changed

+405
-481
lines changed

mypy_protobuf/extensions_pb2.pyi

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ KEYTYPE_FIELD_NUMBER: builtins.int
1414
VALUETYPE_FIELD_NUMBER: builtins.int
1515
casttype: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str]
1616
"""Tells mypy to use a specific newtype rather than the normal type for this field."""
17-
1817
keytype: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str]
1918
"""Tells mypy to use a specific type for keys; only makes sense on map fields"""
20-
2119
valuetype: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str]
2220
"""Tells mypy to use a specific type for values; only makes sense on map fields"""

mypy_protobuf/main.py

Lines changed: 105 additions & 208 deletions
Large diffs are not rendered by default.

pyproject.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ requires = [
66
build-backend = "setuptools.build_meta"
77

88
[tool.black]
9-
extend-exclude = "(_pb2.pyi?$|_pb2_grpc.pyi?$)"
9+
extend-exclude = "(_pb2.py$|_pb2_grpc.py$)"
10+
# We don't care about line length for generated code
11+
line-length = 10000
1012

1113
[tool.mypy]
1214
strict = true

test/generated/google/protobuf/duration_pb2.pyi

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,16 @@ class Duration(google.protobuf.message.Message, google.protobuf.internal.well_kn
7070
be expressed in JSON format as "3.000000001s", and 3 seconds and 1
7171
microsecond should be expressed in JSON format as "3.000001s".
7272
"""
73+
7374
DESCRIPTOR: google.protobuf.descriptor.Descriptor
75+
7476
SECONDS_FIELD_NUMBER: builtins.int
7577
NANOS_FIELD_NUMBER: builtins.int
7678
seconds: builtins.int
7779
"""Signed seconds of the span of time. Must be from -315,576,000,000
7880
to +315,576,000,000 inclusive. Note: these bounds are computed from:
7981
60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
8082
"""
81-
8283
nanos: builtins.int
8384
"""Signed fractions of a second at nanosecond resolution of the span
8485
of time. Durations less than one second are represented with a 0
@@ -87,11 +88,12 @@ class Duration(google.protobuf.message.Message, google.protobuf.internal.well_kn
8788
of the same sign as the `seconds` field. Must be from -999,999,999
8889
to +999,999,999 inclusive.
8990
"""
90-
91-
def __init__(self,
91+
def __init__(
92+
self,
9293
*,
9394
seconds: builtins.int = ...,
9495
nanos: builtins.int = ...,
95-
) -> None: ...
96-
def ClearField(self, field_name: typing_extensions.Literal["nanos",b"nanos","seconds",b"seconds"]) -> None: ...
96+
) -> None: ...
97+
def ClearField(self, field_name: typing_extensions.Literal["nanos", b"nanos", "seconds", b"seconds"]) -> None: ...
98+
9799
global___Duration = Duration

test/generated/mypy_protobuf/extensions_pb2.pyi

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ KEYTYPE_FIELD_NUMBER: builtins.int
1414
VALUETYPE_FIELD_NUMBER: builtins.int
1515
casttype: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str]
1616
"""Tells mypy to use a specific newtype rather than the normal type for this field."""
17-
1817
keytype: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str]
1918
"""Tells mypy to use a specific type for keys; only makes sense on map fields"""
20-
2119
valuetype: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str]
2220
"""Tells mypy to use a specific type for values; only makes sense on map fields"""

test/generated/testproto/Capitalized/Capitalized_pb2.pyi

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,37 +11,46 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
1111

1212
class lower(google.protobuf.message.Message):
1313
DESCRIPTOR: google.protobuf.descriptor.Descriptor
14+
1415
A_FIELD_NUMBER: builtins.int
1516
a: builtins.int
16-
def __init__(self,
17+
def __init__(
18+
self,
1719
*,
1820
a: builtins.int = ...,
19-
) -> None: ...
20-
def ClearField(self, field_name: typing_extensions.Literal["a",b"a"]) -> None: ...
21+
) -> None: ...
22+
def ClearField(self, field_name: typing_extensions.Literal["a", b"a"]) -> None: ...
23+
2124
global___lower = lower
2225

2326
class Upper(google.protobuf.message.Message):
2427
DESCRIPTOR: google.protobuf.descriptor.Descriptor
28+
2529
LOWER_FIELD_NUMBER: builtins.int
2630
@property
2731
def Lower(self) -> global___lower: ...
28-
def __init__(self,
32+
def __init__(
33+
self,
2934
*,
3035
Lower: global___lower | None = ...,
31-
) -> None: ...
32-
def HasField(self, field_name: typing_extensions.Literal["Lower",b"Lower"]) -> builtins.bool: ...
33-
def ClearField(self, field_name: typing_extensions.Literal["Lower",b"Lower"]) -> None: ...
36+
) -> None: ...
37+
def HasField(self, field_name: typing_extensions.Literal["Lower", b"Lower"]) -> builtins.bool: ...
38+
def ClearField(self, field_name: typing_extensions.Literal["Lower", b"Lower"]) -> None: ...
39+
3440
global___Upper = Upper
3541

3642
class lower2(google.protobuf.message.Message):
3743
DESCRIPTOR: google.protobuf.descriptor.Descriptor
44+
3845
UPPER_FIELD_NUMBER: builtins.int
3946
@property
4047
def upper(self) -> global___Upper: ...
41-
def __init__(self,
48+
def __init__(
49+
self,
4250
*,
4351
upper: global___Upper | None = ...,
44-
) -> None: ...
45-
def HasField(self, field_name: typing_extensions.Literal["upper",b"upper"]) -> builtins.bool: ...
46-
def ClearField(self, field_name: typing_extensions.Literal["upper",b"upper"]) -> None: ...
52+
) -> None: ...
53+
def HasField(self, field_name: typing_extensions.Literal["upper", b"upper"]) -> builtins.bool: ...
54+
def ClearField(self, field_name: typing_extensions.Literal["upper", b"upper"]) -> None: ...
55+
4756
global___lower2 = lower2

test/generated/testproto/comment_special_chars_pb2.pyi

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
1111

1212
class Test(google.protobuf.message.Message):
1313
DESCRIPTOR: google.protobuf.descriptor.Descriptor
14+
1415
A_FIELD_NUMBER: builtins.int
1516
B_FIELD_NUMBER: builtins.int
1617
C_FIELD_NUMBER: builtins.int
@@ -24,36 +25,26 @@ class Test(google.protobuf.message.Message):
2425
K_FIELD_NUMBER: builtins.int
2526
a: builtins.str
2627
"""Ending with " """
27-
2828
b: builtins.str
2929
"""Ending with "" """
30-
3130
c: builtins.str
3231
"""Ending with \"\"\" """
33-
3432
d: builtins.str
3533
"""Ending with \\ """
36-
3734
e: builtins.str
3835
"""Containing bad escape: \\x"""
39-
4036
f: builtins.str
4137
"""Containing \"\"\"" quadruple"""
42-
4338
g: builtins.str
4439
"""Containing \"\"\""" quintuple"""
45-
4640
h: builtins.str
4741
"""Containing \"\"\"\"\"\" sextuple"""
48-
4942
i: builtins.str
5043
"""\"\"\" Multiple \"\"\" triples \"\"\" """
51-
5244
j: builtins.str
5345
""""quotes" can be a problem in comments.
5446
\"\"\"Triple quotes\"\"\" just as well
5547
"""
56-
5748
k: builtins.str
5849
"""\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
5950
" "
@@ -63,8 +54,8 @@ class Test(google.protobuf.message.Message):
6354
" "
6455
\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"
6556
"""
66-
67-
def __init__(self,
57+
def __init__(
58+
self,
6859
*,
6960
a: builtins.str = ...,
7061
b: builtins.str = ...,
@@ -77,6 +68,7 @@ class Test(google.protobuf.message.Message):
7768
i: builtins.str = ...,
7869
j: builtins.str = ...,
7970
k: builtins.str = ...,
80-
) -> None: ...
81-
def ClearField(self, field_name: typing_extensions.Literal["a",b"a","b",b"b","c",b"c","d",b"d","e",b"e","f",b"f","g",b"g","h",b"h","i",b"i","j",b"j","k",b"k"]) -> None: ...
71+
) -> None: ...
72+
def ClearField(self, field_name: typing_extensions.Literal["a", b"a", "b", b"b", "c", b"c", "d", b"d", "e", b"e", "f", b"f", "g", b"g", "h", b"h", "i", b"i", "j", b"j", "k", b"k"]) -> None: ...
73+
8274
global___Test = Test

test/generated/testproto/dot/com/test_pb2.pyi

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
1111

1212
class TestMessage(google.protobuf.message.Message):
1313
DESCRIPTOR: google.protobuf.descriptor.Descriptor
14+
1415
FOO_FIELD_NUMBER: builtins.int
1516
foo: builtins.str
16-
def __init__(self,
17+
def __init__(
18+
self,
1719
*,
1820
foo: builtins.str = ...,
19-
) -> None: ...
20-
def ClearField(self, field_name: typing_extensions.Literal["foo",b"foo"]) -> None: ...
21+
) -> None: ...
22+
def ClearField(self, field_name: typing_extensions.Literal["foo", b"foo"]) -> None: ...
23+
2124
global___TestMessage = TestMessage

test/generated/testproto/grpc/dummy_pb2.pyi

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,28 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
1111

1212
class DummyRequest(google.protobuf.message.Message):
1313
DESCRIPTOR: google.protobuf.descriptor.Descriptor
14+
1415
VALUE_FIELD_NUMBER: builtins.int
1516
value: builtins.str
16-
def __init__(self,
17+
def __init__(
18+
self,
1719
*,
1820
value: builtins.str = ...,
19-
) -> None: ...
20-
def ClearField(self, field_name: typing_extensions.Literal["value",b"value"]) -> None: ...
21+
) -> None: ...
22+
def ClearField(self, field_name: typing_extensions.Literal["value", b"value"]) -> None: ...
23+
2124
global___DummyRequest = DummyRequest
2225

2326
class DummyReply(google.protobuf.message.Message):
2427
DESCRIPTOR: google.protobuf.descriptor.Descriptor
28+
2529
VALUE_FIELD_NUMBER: builtins.int
2630
value: builtins.str
27-
def __init__(self,
31+
def __init__(
32+
self,
2833
*,
2934
value: builtins.str = ...,
30-
) -> None: ...
31-
def ClearField(self, field_name: typing_extensions.Literal["value",b"value"]) -> None: ...
35+
) -> None: ...
36+
def ClearField(self, field_name: typing_extensions.Literal["value", b"value"]) -> None: ...
37+
3238
global___DummyReply = DummyReply

test/generated/testproto/grpc/dummy_pb2_grpc.pyi

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,61 +9,63 @@ import typing
99

1010
class DummyServiceStub:
1111
"""DummyService"""
12+
1213
def __init__(self, channel: grpc.Channel) -> None: ...
1314
UnaryUnary: grpc.UnaryUnaryMultiCallable[
1415
testproto.grpc.dummy_pb2.DummyRequest,
15-
testproto.grpc.dummy_pb2.DummyReply]
16+
testproto.grpc.dummy_pb2.DummyReply,
17+
]
1618
"""UnaryUnary"""
17-
1819
UnaryStream: grpc.UnaryStreamMultiCallable[
1920
testproto.grpc.dummy_pb2.DummyRequest,
20-
testproto.grpc.dummy_pb2.DummyReply]
21+
testproto.grpc.dummy_pb2.DummyReply,
22+
]
2123
"""UnaryStream"""
22-
2324
StreamUnary: grpc.StreamUnaryMultiCallable[
2425
testproto.grpc.dummy_pb2.DummyRequest,
25-
testproto.grpc.dummy_pb2.DummyReply]
26+
testproto.grpc.dummy_pb2.DummyReply,
27+
]
2628
"""StreamUnary"""
27-
2829
StreamStream: grpc.StreamStreamMultiCallable[
2930
testproto.grpc.dummy_pb2.DummyRequest,
30-
testproto.grpc.dummy_pb2.DummyReply]
31+
testproto.grpc.dummy_pb2.DummyReply,
32+
]
3133
"""StreamStream"""
3234

33-
3435
class DummyServiceServicer(metaclass=abc.ABCMeta):
3536
"""DummyService"""
37+
3638
@abc.abstractmethod
37-
def UnaryUnary(self,
39+
def UnaryUnary(
40+
self,
3841
request: testproto.grpc.dummy_pb2.DummyRequest,
3942
context: grpc.ServicerContext,
4043
) -> testproto.grpc.dummy_pb2.DummyReply:
4144
"""UnaryUnary"""
4245
...
43-
4446
@abc.abstractmethod
45-
def UnaryStream(self,
47+
def UnaryStream(
48+
self,
4649
request: testproto.grpc.dummy_pb2.DummyRequest,
4750
context: grpc.ServicerContext,
4851
) -> typing.Iterator[testproto.grpc.dummy_pb2.DummyReply]:
4952
"""UnaryStream"""
5053
...
51-
5254
@abc.abstractmethod
53-
def StreamUnary(self,
55+
def StreamUnary(
56+
self,
5457
request_iterator: typing.Iterator[testproto.grpc.dummy_pb2.DummyRequest],
5558
context: grpc.ServicerContext,
5659
) -> testproto.grpc.dummy_pb2.DummyReply:
5760
"""StreamUnary"""
5861
...
59-
6062
@abc.abstractmethod
61-
def StreamStream(self,
63+
def StreamStream(
64+
self,
6265
request_iterator: typing.Iterator[testproto.grpc.dummy_pb2.DummyRequest],
6366
context: grpc.ServicerContext,
6467
) -> typing.Iterator[testproto.grpc.dummy_pb2.DummyReply]:
6568
"""StreamStream"""
6669
...
6770

68-
6971
def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: grpc.Server) -> None: ...

test/generated/testproto/grpc/import_pb2_grpc.pyi

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,45 +9,47 @@ import testproto.test_pb2
99

1010
class SimpleServiceStub:
1111
"""SimpleService"""
12+
1213
def __init__(self, channel: grpc.Channel) -> None: ...
1314
UnaryUnary: grpc.UnaryUnaryMultiCallable[
1415
google.protobuf.empty_pb2.Empty,
15-
testproto.test_pb2.Simple1]
16+
testproto.test_pb2.Simple1,
17+
]
1618
"""UnaryUnary"""
17-
1819
UnaryStream: grpc.UnaryUnaryMultiCallable[
1920
testproto.test_pb2.Simple1,
20-
google.protobuf.empty_pb2.Empty]
21+
google.protobuf.empty_pb2.Empty,
22+
]
2123
"""UnaryStream"""
22-
2324
NoComment: grpc.UnaryUnaryMultiCallable[
2425
testproto.test_pb2.Simple1,
25-
google.protobuf.empty_pb2.Empty]
26-
26+
google.protobuf.empty_pb2.Empty,
27+
]
2728

2829
class SimpleServiceServicer(metaclass=abc.ABCMeta):
2930
"""SimpleService"""
31+
3032
@abc.abstractmethod
31-
def UnaryUnary(self,
33+
def UnaryUnary(
34+
self,
3235
request: google.protobuf.empty_pb2.Empty,
3336
context: grpc.ServicerContext,
3437
) -> testproto.test_pb2.Simple1:
3538
"""UnaryUnary"""
3639
...
37-
3840
@abc.abstractmethod
39-
def UnaryStream(self,
41+
def UnaryStream(
42+
self,
4043
request: testproto.test_pb2.Simple1,
4144
context: grpc.ServicerContext,
4245
) -> google.protobuf.empty_pb2.Empty:
4346
"""UnaryStream"""
4447
...
45-
4648
@abc.abstractmethod
47-
def NoComment(self,
49+
def NoComment(
50+
self,
4851
request: testproto.test_pb2.Simple1,
4952
context: grpc.ServicerContext,
5053
) -> google.protobuf.empty_pb2.Empty: ...
5154

52-
5355
def add_SimpleServiceServicer_to_server(servicer: SimpleServiceServicer, server: grpc.Server) -> None: ...

0 commit comments

Comments
 (0)