Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6d6250f

Browse files
authored
Supported repeated field containers for extensions (#5788)
See nipunn1313/mypy-protobuf#244 for the inspiration for this. Repeated extensions are allowed by protobuf, and they generate to extension values with repeated fields. Notably map fields (ScalarMap and MessageMap) are NOT allowed to be extension values - producing errors as such - so those are omitted. testproto/test_extensions3.proto:19:6: Map fields are not allowed to be extensions.
1 parent 5199ed5 commit 6d6250f

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

stubs/protobuf/google/protobuf/internal/extension_dict.pyi

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
from typing import Any, Generic, Iterator, Text, TypeVar, Union
22

33
from google.protobuf.descriptor import FieldDescriptor
4+
from google.protobuf.internal.containers import RepeatedCompositeFieldContainer, RepeatedScalarFieldContainer
45
from google.protobuf.message import Message
56

67
_ContainerMessageT = TypeVar("_ContainerMessageT", bound=Message)
7-
_ExtenderMessageT = TypeVar("_ExtenderMessageT", bound=Union[Message, bool, int, float, Text, bytes])
8+
_ExtenderMessageT = TypeVar(
9+
"_ExtenderMessageT",
10+
bound=Union[Message, RepeatedScalarFieldContainer[Any], RepeatedCompositeFieldContainer[Any], bool, int, float, Text, bytes],
11+
)
812

913
class _ExtensionFieldDescriptor(FieldDescriptor, Generic[_ContainerMessageT, _ExtenderMessageT]): ...
1014

0 commit comments

Comments
 (0)