From a7de60fd39ebf552db34df846ee6802691bc6fe2 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 26 Nov 2025 14:55:52 +0000 Subject: [PATCH 01/23] Add flags to generate only sync or only async stubs --- mypy_protobuf/main.py | 226 ++++++--- run_test.sh | 15 +- test/generated-async-only/__init__.py | 0 .../testproto/Capitalized/Capitalized_pb2.py | 40 ++ .../testproto/Capitalized/Capitalized_pb2.pyi | 66 +++ .../testproto/Capitalized/__init__.py | 0 .../testproto/__init__.py | 0 .../testproto/comment_special_chars_pb2.py | 36 ++ .../testproto/comment_special_chars_pb2.pyi | 82 ++++ .../testproto/dot/__init__.py | 0 .../testproto/dot/com/__init__.py | 0 .../testproto/dot/com/test_pb2.py | 36 ++ .../testproto/dot/com/test_pb2.pyi | 32 ++ .../testproto/edition2024_pb2.py | 47 ++ .../testproto/edition2024_pb2.pyi | 68 +++ .../testproto/grpc/__init__.py | 0 .../testproto/grpc/dummy_pb2.py | 54 +++ .../testproto/grpc/dummy_pb2.pyi | 68 +++ .../testproto/grpc/dummy_pb2_grpc.py | 353 ++++++++++++++ .../testproto/grpc/dummy_pb2_grpc.pyi | 133 ++++++ .../testproto/grpc/import_pb2.py | 38 ++ .../testproto/grpc/import_pb2.pyi | 8 + .../testproto/grpc/import_pb2_grpc.py | 189 ++++++++ .../testproto/grpc/import_pb2_grpc.pyi | 71 +++ .../testproto/inner/__init__.py | 0 .../testproto/inner/inner_pb2.py | 37 ++ .../testproto/inner/inner_pb2.pyi | 33 ++ .../testproto/nested/__init__.py | 0 .../testproto/nested/nested_pb2.py | 45 ++ .../testproto/nested/nested_pb2.pyi | 96 ++++ .../testproto/nopackage_pb2.py | 38 ++ .../testproto/nopackage_pb2.pyi | 52 +++ .../testproto/readme_enum_pb2.py | 36 ++ .../testproto/readme_enum_pb2.pyi | 32 ++ .../testproto/reexport_pb2.py | 39 ++ .../testproto/reexport_pb2.pyi | 19 + .../testproto/test3_pb2.py | 61 +++ .../testproto/test3_pb2.pyi | 209 +++++++++ .../testproto/test_extensions2_pb2.py | 37 ++ .../testproto/test_extensions2_pb2.pyi | 37 ++ .../testproto/test_extensions3_pb2.py | 40 ++ .../testproto/test_extensions3_pb2.pyi | 46 ++ .../testproto/test_no_generic_services_pb2.py | 38 ++ .../test_no_generic_services_pb2.pyi | 33 ++ .../testproto/test_pb2.py | 91 ++++ .../testproto/test_pb2.pyi | 439 ++++++++++++++++++ test/generated-sync-only/__init__.py | 0 .../testproto/Capitalized/Capitalized_pb2.py | 40 ++ .../testproto/Capitalized/Capitalized_pb2.pyi | 66 +++ .../testproto/Capitalized/__init__.py | 0 .../generated-sync-only/testproto/__init__.py | 0 .../testproto/comment_special_chars_pb2.py | 36 ++ .../testproto/comment_special_chars_pb2.pyi | 82 ++++ .../testproto/dot/__init__.py | 0 .../testproto/dot/com/__init__.py | 0 .../testproto/dot/com/test_pb2.py | 36 ++ .../testproto/dot/com/test_pb2.pyi | 32 ++ .../testproto/edition2024_pb2.py | 47 ++ .../testproto/edition2024_pb2.pyi | 68 +++ .../testproto/grpc/__init__.py | 0 .../testproto/grpc/dummy_pb2.py | 54 +++ .../testproto/grpc/dummy_pb2.pyi | 68 +++ .../testproto/grpc/dummy_pb2_grpc.py | 353 ++++++++++++++ .../testproto/grpc/dummy_pb2_grpc.pyi | 133 ++++++ .../testproto/grpc/import_pb2.py | 38 ++ .../testproto/grpc/import_pb2.pyi | 8 + .../testproto/grpc/import_pb2_grpc.py | 189 ++++++++ .../testproto/grpc/import_pb2_grpc.pyi | 71 +++ .../testproto/inner/__init__.py | 0 .../testproto/inner/inner_pb2.py | 37 ++ .../testproto/inner/inner_pb2.pyi | 33 ++ .../testproto/nested/__init__.py | 0 .../testproto/nested/nested_pb2.py | 45 ++ .../testproto/nested/nested_pb2.pyi | 96 ++++ .../testproto/nopackage_pb2.py | 38 ++ .../testproto/nopackage_pb2.pyi | 52 +++ .../testproto/readme_enum_pb2.py | 36 ++ .../testproto/readme_enum_pb2.pyi | 32 ++ .../testproto/reexport_pb2.py | 39 ++ .../testproto/reexport_pb2.pyi | 19 + .../testproto/test3_pb2.py | 61 +++ .../testproto/test3_pb2.pyi | 209 +++++++++ .../testproto/test_extensions2_pb2.py | 37 ++ .../testproto/test_extensions2_pb2.pyi | 37 ++ .../testproto/test_extensions3_pb2.py | 40 ++ .../testproto/test_extensions3_pb2.pyi | 46 ++ .../testproto/test_no_generic_services_pb2.py | 38 ++ .../test_no_generic_services_pb2.pyi | 33 ++ .../generated-sync-only/testproto/test_pb2.py | 91 ++++ .../testproto/test_pb2.pyi | 439 ++++++++++++++++++ test/test_async_only.py | 18 + test/test_sync_only.py | 17 + 92 files changed, 5769 insertions(+), 65 deletions(-) create mode 100644 test/generated-async-only/__init__.py create mode 100644 test/generated-async-only/testproto/Capitalized/Capitalized_pb2.py create mode 100644 test/generated-async-only/testproto/Capitalized/Capitalized_pb2.pyi create mode 100644 test/generated-async-only/testproto/Capitalized/__init__.py create mode 100644 test/generated-async-only/testproto/__init__.py create mode 100644 test/generated-async-only/testproto/comment_special_chars_pb2.py create mode 100644 test/generated-async-only/testproto/comment_special_chars_pb2.pyi create mode 100644 test/generated-async-only/testproto/dot/__init__.py create mode 100644 test/generated-async-only/testproto/dot/com/__init__.py create mode 100644 test/generated-async-only/testproto/dot/com/test_pb2.py create mode 100644 test/generated-async-only/testproto/dot/com/test_pb2.pyi create mode 100644 test/generated-async-only/testproto/edition2024_pb2.py create mode 100644 test/generated-async-only/testproto/edition2024_pb2.pyi create mode 100644 test/generated-async-only/testproto/grpc/__init__.py create mode 100644 test/generated-async-only/testproto/grpc/dummy_pb2.py create mode 100644 test/generated-async-only/testproto/grpc/dummy_pb2.pyi create mode 100644 test/generated-async-only/testproto/grpc/dummy_pb2_grpc.py create mode 100644 test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi create mode 100644 test/generated-async-only/testproto/grpc/import_pb2.py create mode 100644 test/generated-async-only/testproto/grpc/import_pb2.pyi create mode 100644 test/generated-async-only/testproto/grpc/import_pb2_grpc.py create mode 100644 test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi create mode 100644 test/generated-async-only/testproto/inner/__init__.py create mode 100644 test/generated-async-only/testproto/inner/inner_pb2.py create mode 100644 test/generated-async-only/testproto/inner/inner_pb2.pyi create mode 100644 test/generated-async-only/testproto/nested/__init__.py create mode 100644 test/generated-async-only/testproto/nested/nested_pb2.py create mode 100644 test/generated-async-only/testproto/nested/nested_pb2.pyi create mode 100644 test/generated-async-only/testproto/nopackage_pb2.py create mode 100644 test/generated-async-only/testproto/nopackage_pb2.pyi create mode 100644 test/generated-async-only/testproto/readme_enum_pb2.py create mode 100644 test/generated-async-only/testproto/readme_enum_pb2.pyi create mode 100644 test/generated-async-only/testproto/reexport_pb2.py create mode 100644 test/generated-async-only/testproto/reexport_pb2.pyi create mode 100644 test/generated-async-only/testproto/test3_pb2.py create mode 100644 test/generated-async-only/testproto/test3_pb2.pyi create mode 100644 test/generated-async-only/testproto/test_extensions2_pb2.py create mode 100644 test/generated-async-only/testproto/test_extensions2_pb2.pyi create mode 100644 test/generated-async-only/testproto/test_extensions3_pb2.py create mode 100644 test/generated-async-only/testproto/test_extensions3_pb2.pyi create mode 100644 test/generated-async-only/testproto/test_no_generic_services_pb2.py create mode 100644 test/generated-async-only/testproto/test_no_generic_services_pb2.pyi create mode 100644 test/generated-async-only/testproto/test_pb2.py create mode 100644 test/generated-async-only/testproto/test_pb2.pyi create mode 100644 test/generated-sync-only/__init__.py create mode 100644 test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.py create mode 100644 test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.pyi create mode 100644 test/generated-sync-only/testproto/Capitalized/__init__.py create mode 100644 test/generated-sync-only/testproto/__init__.py create mode 100644 test/generated-sync-only/testproto/comment_special_chars_pb2.py create mode 100644 test/generated-sync-only/testproto/comment_special_chars_pb2.pyi create mode 100644 test/generated-sync-only/testproto/dot/__init__.py create mode 100644 test/generated-sync-only/testproto/dot/com/__init__.py create mode 100644 test/generated-sync-only/testproto/dot/com/test_pb2.py create mode 100644 test/generated-sync-only/testproto/dot/com/test_pb2.pyi create mode 100644 test/generated-sync-only/testproto/edition2024_pb2.py create mode 100644 test/generated-sync-only/testproto/edition2024_pb2.pyi create mode 100644 test/generated-sync-only/testproto/grpc/__init__.py create mode 100644 test/generated-sync-only/testproto/grpc/dummy_pb2.py create mode 100644 test/generated-sync-only/testproto/grpc/dummy_pb2.pyi create mode 100644 test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.py create mode 100644 test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.pyi create mode 100644 test/generated-sync-only/testproto/grpc/import_pb2.py create mode 100644 test/generated-sync-only/testproto/grpc/import_pb2.pyi create mode 100644 test/generated-sync-only/testproto/grpc/import_pb2_grpc.py create mode 100644 test/generated-sync-only/testproto/grpc/import_pb2_grpc.pyi create mode 100644 test/generated-sync-only/testproto/inner/__init__.py create mode 100644 test/generated-sync-only/testproto/inner/inner_pb2.py create mode 100644 test/generated-sync-only/testproto/inner/inner_pb2.pyi create mode 100644 test/generated-sync-only/testproto/nested/__init__.py create mode 100644 test/generated-sync-only/testproto/nested/nested_pb2.py create mode 100644 test/generated-sync-only/testproto/nested/nested_pb2.pyi create mode 100644 test/generated-sync-only/testproto/nopackage_pb2.py create mode 100644 test/generated-sync-only/testproto/nopackage_pb2.pyi create mode 100644 test/generated-sync-only/testproto/readme_enum_pb2.py create mode 100644 test/generated-sync-only/testproto/readme_enum_pb2.pyi create mode 100644 test/generated-sync-only/testproto/reexport_pb2.py create mode 100644 test/generated-sync-only/testproto/reexport_pb2.pyi create mode 100644 test/generated-sync-only/testproto/test3_pb2.py create mode 100644 test/generated-sync-only/testproto/test3_pb2.pyi create mode 100644 test/generated-sync-only/testproto/test_extensions2_pb2.py create mode 100644 test/generated-sync-only/testproto/test_extensions2_pb2.pyi create mode 100644 test/generated-sync-only/testproto/test_extensions3_pb2.py create mode 100644 test/generated-sync-only/testproto/test_extensions3_pb2.pyi create mode 100644 test/generated-sync-only/testproto/test_no_generic_services_pb2.py create mode 100644 test/generated-sync-only/testproto/test_no_generic_services_pb2.pyi create mode 100644 test/generated-sync-only/testproto/test_pb2.py create mode 100644 test/generated-sync-only/testproto/test_pb2.pyi create mode 100644 test/test_async_only.py create mode 100644 test/test_sync_only.py diff --git a/mypy_protobuf/main.py b/mypy_protobuf/main.py index 81fa9164..3d2633b6 100644 --- a/mypy_protobuf/main.py +++ b/mypy_protobuf/main.py @@ -136,6 +136,29 @@ def _add_messages( _add_enums(fd.enum_type, start_prefix, fd) +class GRPCType(enum.Enum): + SYNC = "SYNC" + ASYNC = "ASYNC" + BOTH = "BOTH" + + @classmethod + def from_parameter(cls, parameter: str) -> GRPCType: + if "only_sync" in parameter: + return GRPCType.SYNC + elif "only_async" in parameter: + return GRPCType.ASYNC + else: + return GRPCType.BOTH + + @property + def supports_sync(self) -> bool: + return self in (GRPCType.SYNC, GRPCType.BOTH) + + @property + def supports_async(self) -> bool: + return self in (GRPCType.ASYNC, GRPCType.BOTH) + + class PkgWriter(object): """Writes a single pyi file""" @@ -148,6 +171,7 @@ def __init__( use_default_deprecation_warnings: bool, generate_concrete_servicer_stubs: bool, grpc: bool, + grpc_type: GRPCType = GRPCType.BOTH, ) -> None: self.fd = fd self.descriptors = descriptors @@ -156,6 +180,7 @@ def __init__( self.use_default_depreaction_warnings = use_default_deprecation_warnings self.generate_concrete_servicer_stubs = generate_concrete_servicer_stubs self.grpc = grpc + self.grpc_type = grpc_type self.lines: List[str] = [] self.indent = "" @@ -762,8 +787,13 @@ def _input_type(self, method: d.MethodDescriptorProto) -> str: def _servicer_input_type(self, method: d.MethodDescriptorProto) -> str: result = self._import_message(method.input_type) if method.client_streaming: - # See write_grpc_async_hacks(). - result = f"_MaybeAsyncIterator[{result}]" + # See write_grpc_iterator_type(). + if self.grpc_type == GRPCType.SYNC: + result = f'{self._import("collections.abc", "Iterator")}[{result}]' + elif self.grpc_type == GRPCType.ASYNC: + result = f'{self._import("collections.abc", "AsyncIterator")}[{result}]' + else: + result = f"_MaybeAsyncIterator[{result}]" return result def _output_type(self, method: d.MethodDescriptorProto) -> str: @@ -775,33 +805,64 @@ def _servicer_output_type(self, method: d.MethodDescriptorProto) -> str: if method.server_streaming: # Union[Iterator[Resp], AsyncIterator[Resp]] is subtyped by Iterator[Resp] and AsyncIterator[Resp]. # So both can be used in the covariant function return position. - iterator = f"{self._import('collections.abc', 'Iterator')}[{result}]" - aiterator = f"{self._import('collections.abc', 'AsyncIterator')}[{result}]" - result = f"{self._import('typing', 'Union')}[{iterator}, {aiterator}]" + sync = f"{self._import('collections.abc', 'Iterator')}[{result}]" + a_sync = f"{self._import('collections.abc', 'AsyncIterator')}[{result}]" + result = f"{self._import('typing', 'Union')}[{sync}, {a_sync}]" else: # Union[Resp, Awaitable[Resp]] is subtyped by Resp and Awaitable[Resp]. # So both can be used in the covariant function return position. # Awaitable[Resp] is equivalent to async def. - awaitable = f"{self._import('collections.abc', 'Awaitable')}[{result}]" - result = f"{self._import('typing', 'Union')}[{result}, {awaitable}]" - return result + sync = result + a_sync = f"{self._import('collections.abc', 'Awaitable')}[{result}]" + result = f"{self._import('typing', 'Union')}[{sync}, {a_sync}]" + + if self.grpc_type == GRPCType.SYNC: + return sync + elif self.grpc_type == GRPCType.ASYNC: + return a_sync + else: + return result - def write_grpc_async_hacks(self) -> None: + def write_grpc_iterator_type(self) -> None: wl = self._write_line - # _MaybeAsyncIterator[Req] is supertyped by Iterator[Req] and AsyncIterator[Req]. - # So both can be used in the contravariant function parameter position. - wl('_T = {}("_T")', self._import("typing", "TypeVar")) - wl("") - wl( - "class _MaybeAsyncIterator({}[_T], {}[_T], metaclass={}): ...", - self._import("collections.abc", "AsyncIterator"), - self._import("collections.abc", "Iterator"), - self._import("abc", "ABCMeta"), - ) + + if self.grpc_type == GRPCType.SYNC: + self._import("collections.abc", "Iterator") + elif self.grpc_type == GRPCType.ASYNC: + self._import("collections.abc", "AsyncIterator") + else: + # _MaybeAsyncIterator[Req] is supertyped by Iterator[Req] and AsyncIterator[Req]. + # So both can be used in the contravariant function parameter position. + wl('_T = {}("_T")', self._import("typing", "TypeVar")) + wl("") + wl( + "class _MaybeAsyncIterator({}[_T], {}[_T], metaclass={}): ...", + self._import("collections.abc", "AsyncIterator"), + self._import("collections.abc", "Iterator"), + self._import("abc", "ABCMeta"), + ) wl("") - # _ServicerContext is supertyped by grpc.ServicerContext and grpc.aio.ServicerContext - # So both can be used in the contravariant function parameter position. + def get_servicer_context_type(self) -> str: + """Get the type to use for the context parameter in servicer methods.""" + if self.grpc_type == GRPCType.ASYNC: + return self._import("grpc.aio", "ServicerContext") + elif self.grpc_type == GRPCType.SYNC: + return self._import("grpc", "ServicerContext") + else: + # BOTH mode uses _ServicerContext union class + return "_ServicerContext" + + def write_grpc_servicer_context(self) -> None: + """Write _ServicerContext class only for BOTH mode (union type needed).""" + wl = self._write_line + + if self.grpc_type != GRPCType.BOTH: + return + + # BOTH mode: _ServicerContext is a union class that's supertyped by both + # grpc.ServicerContext and grpc.aio.ServicerContext, so both can be used + # in the contravariant function parameter position. wl( "class _ServicerContext({}, {}): # type: ignore[misc, type-arg]", self._import("grpc", "ServicerContext"), @@ -851,7 +912,7 @@ def write_grpc_methods(self, service: d.ServiceDescriptorProto, scl_prefix: Sour input_name = "request_iterator" if method.client_streaming else "request" input_type = self._servicer_input_type(method) wl(f"{input_name}: {input_type},") - wl("context: _ServicerContext,") + wl("context: {},", self.get_servicer_context_type()) wl( ") -> {}:{}", self._servicer_output_type(method), @@ -863,6 +924,21 @@ def write_grpc_methods(self, service: d.ServiceDescriptorProto, scl_prefix: Sour wl("...") wl("") + def make_server_type(self) -> str: + server = aserver = None + if self.grpc_type.supports_sync: + server = self._import("grpc", "Server") + if self.grpc_type.supports_async: + aserver = self._import("grpc.aio", "Server") + + if server and aserver: + return f"{self._import('typing', 'Union')}[{server}, {aserver}]" + elif server: + return server + elif aserver: + return aserver + raise RuntimeError(f"Impossible, {self.grpc_type=}") # pragma: no cover + def write_grpc_services( self, services: Iterable[d.ServiceDescriptorProto], @@ -882,50 +958,69 @@ def write_grpc_services( async_class_alias = f"{service.name}AsyncStub" # The stub client - if service.options.deprecated: - self._write_deprecation_warning( - scl + [d.ServiceDescriptorProto.OPTIONS_FIELD_NUMBER] + [d.ServiceOptions.DEPRECATED_FIELD_NUMBER], - "This stub has been marked as deprecated using proto service options.", - ) - wl( - "class {}:", - class_name, - ) - with self._indent(): - if self._write_comments(scl): - wl("") - # Write sync overload - wl("@{}", self._import("typing", "overload")) + if self.grpc_type.supports_sync: + if service.options.deprecated: + self._write_deprecation_warning( + scl + [d.ServiceDescriptorProto.OPTIONS_FIELD_NUMBER] + [d.ServiceOptions.DEPRECATED_FIELD_NUMBER], + "This stub has been marked as deprecated using proto service options.", + ) wl( - "def __new__(cls, channel: {}) -> {}: ...", - self._import("grpc", "Channel"), + "class {}:", class_name, ) + with self._indent(): + if self._write_comments(scl): + wl("") + + if self.grpc_type == GRPCType.BOTH: + # Write sync overload + wl("@{}", self._import("typing", "overload")) + wl( + "def __new__(cls, channel: {}) -> {}: ...", + self._import("grpc", "Channel"), + class_name, + ) + + # Write async overload + wl("@{}", self._import("typing", "overload")) + wl( + "def __new__(cls, channel: {}) -> {}: ...", + self._import("grpc.aio", "Channel"), + async_class_alias, + ) + else: + # SYNC only - simple __init__ + wl("def __init__(self, channel: {}) -> None: ...", self._import("grpc", "Channel")) - # Write async overload - wl("@{}", self._import("typing", "overload")) - wl( - "def __new__(cls, channel: {}) -> {}: ...", - self._import("grpc.aio", "Channel"), - async_class_alias, - ) - self.write_grpc_stub_methods(service, scl, is_async=False) - wl("") + self.write_grpc_stub_methods(service, scl, is_async=False) + wl("") # Write AsyncStub - if service.options.deprecated: - self._write_deprecation_warning( - scl + [d.ServiceDescriptorProto.OPTIONS_FIELD_NUMBER] + [d.ServiceOptions.DEPRECATED_FIELD_NUMBER], - "This stub has been marked as deprecated using proto service options.", - ) - wl("@{}", self._import("typing", "type_check_only")) - wl("class {}({}):", async_class_alias, class_name) - with self._indent(): - if self._write_comments(scl): - wl("") - wl("def __init__(self, channel: {}) -> None: ...", self._import("grpc.aio", "Channel")) - self.write_grpc_stub_methods(service, scl, is_async=True, ignore_assignment_errors=True) - wl("") + if self.grpc_type.supports_async: + if service.options.deprecated: + self._write_deprecation_warning( + scl + [d.ServiceDescriptorProto.OPTIONS_FIELD_NUMBER] + [d.ServiceOptions.DEPRECATED_FIELD_NUMBER], + "This stub has been marked as deprecated using proto service options.", + ) + + if self.grpc_type == GRPCType.BOTH: + # BOTH mode: AsyncStub inherits from Stub + wl("@{}", self._import("typing", "type_check_only")) + wl("class {}({}):", async_class_alias, class_name) + with self._indent(): + if self._write_comments(scl): + wl("") + wl("def __init__(self, channel: {}) -> None: ...", self._import("grpc.aio", "Channel")) + self.write_grpc_stub_methods(service, scl, is_async=True, ignore_assignment_errors=True) + else: + # ASYNC only - standalone AsyncStub + wl("class {}:", async_class_alias) + with self._indent(): + if self._write_comments(scl): + wl("") + wl("def __init__(self, channel: {}) -> None: ...", self._import("grpc.aio", "Channel")) + self.write_grpc_stub_methods(service, scl, is_async=True) + wl("") # The service definition interface if service.options.deprecated: @@ -948,18 +1043,17 @@ def write_grpc_services( if self._write_comments(scl): wl("") self.write_grpc_methods(service, scl) - server = self._import("grpc", "Server") - aserver = self._import("grpc.aio", "Server") if service.options.deprecated: self._write_deprecation_warning( scl + [d.ServiceDescriptorProto.OPTIONS_FIELD_NUMBER] + [d.ServiceOptions.DEPRECATED_FIELD_NUMBER], "This servicer has been marked as deprecated using proto service options.", ) + wl( "def add_{}Servicer_to_server(servicer: {}Servicer, server: {}) -> None: ...", service.name, service.name, - f"{self._import('typing', 'Union')}[{server}, {aserver}]", + self.make_server_type(), ) wl("") @@ -1150,6 +1244,7 @@ def generate_mypy_grpc_stubs( relax_strict_optional_primitives: bool, use_default_deprecation_warnings: bool, generate_concrete_servicer_stubs: bool, + grpc_type: GRPCType, ) -> None: for name, fd in descriptors.to_generate.items(): pkg_writer = PkgWriter( @@ -1160,8 +1255,10 @@ def generate_mypy_grpc_stubs( use_default_deprecation_warnings, generate_concrete_servicer_stubs, grpc=True, + grpc_type=grpc_type, ) - pkg_writer.write_grpc_async_hacks() + pkg_writer.write_grpc_iterator_type() + pkg_writer.write_grpc_servicer_context() pkg_writer.write_grpc_services(fd.service, [d.FileDescriptorProto.SERVICE_FIELD_NUMBER]) assert name == fd.name @@ -1230,6 +1327,7 @@ def grpc() -> None: "relax_strict_optional_primitives" in request.parameter, "use_default_deprecation_warnings" in request.parameter, "generate_concrete_servicer_stubs" in request.parameter, + GRPCType.from_parameter(request.parameter), ) diff --git a/run_test.sh b/run_test.sh index cf27f8ed..f240ab99 100755 --- a/run_test.sh +++ b/run_test.sh @@ -135,6 +135,11 @@ MYPY_PROTOBUF_VENV=venv_$PY_VER_MYPY_PROTOBUF find proto -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_out=generate_concrete_servicer_stubs:test/generated_concrete find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=generate_concrete_servicer_stubs:test/generated_concrete + # Generate with sync_only stubs for testing + find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_sync:test/generated-sync-only + + # Generate with async_only stubs for testing + find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_async:test/generated-async-only if [[ -n $VALIDATE ]] && ! diff <(echo "$SHA_BEFORE") <(find test/generated -name "*.pyi" -print0 | xargs -0 sha1sum); then echo -e "${RED}Some .pyi files did not match. Please commit those files${NC}" @@ -162,6 +167,14 @@ for PY_VER in $PY_VER_UNIT_TESTS; do CONCRETE_MODULES=( -m test.test_concrete ) MYPYPATH=$MYPYPATH:test/generated_concrete mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --report-deprecated-as-note --no-incremental --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${CONCRETE_MODULES[@]}" + # Run sync_only mypy + SYNC_ONLY_MODULES=( -m test.test_sync_only ) + MYPYPATH=$MYPYPATH:test/generated-sync-only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${SYNC_ONLY_MODULES[@]}" + + # Run async_only mypy + ASYNC_ONLY_MODULES=( -m test.test_async_only ) + MYPYPATH=$MYPYPATH:test/generated-async-only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${ASYNC_ONLY_MODULES[@]}" + export MYPYPATH=$MYPYPATH:test/generated # Run mypy @@ -210,7 +223,7 @@ for PY_VER in $PY_VER_UNIT_TESTS; do ( # Run unit tests. source "$UNIT_TESTS_VENV"/bin/activate - PYTHONPATH=test/generated py.test --ignore=test/generated -v + PYTHONPATH=test/generated py.test --ignore=test/generated --ignore=test/generated-sync-only --ignore=test/generated-async-only -v ) done diff --git a/test/generated-async-only/__init__.py b/test/generated-async-only/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.py b/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.py new file mode 100644 index 00000000..6fddb96c --- /dev/null +++ b/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/Capitalized/Capitalized.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/Capitalized/Capitalized.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'testproto/Capitalized/Capitalized.proto\x12\x0b\x43\x61pitalized\"\x12\n\x05lower\x12\t\n\x01\x61\x18\x01 \x01(\x03\"*\n\x05Upper\x12!\n\x05Lower\x18\x01 \x01(\x0b\x32\x12.Capitalized.lower\"+\n\x06lower2\x12!\n\x05upper\x18\x01 \x01(\x0b\x32\x12.Capitalized.Upperb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.Capitalized.Capitalized_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_LOWER']._serialized_start=56 + _globals['_LOWER']._serialized_end=74 + _globals['_UPPER']._serialized_start=76 + _globals['_UPPER']._serialized_end=118 + _globals['_LOWER2']._serialized_start=120 + _globals['_LOWER2']._serialized_end=163 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.pyi b/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.pyi new file mode 100644 index 00000000..828d26f2 --- /dev/null +++ b/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.pyi @@ -0,0 +1,66 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class lower(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: builtins.int + def __init__( + self, + *, + a: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... + +Global___lower: typing_extensions.TypeAlias = lower + +@typing.final +class Upper(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOWER_FIELD_NUMBER: builtins.int + @property + def Lower(self) -> Global___lower: ... + def __init__( + self, + *, + Lower: Global___lower | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["Lower", b"Lower"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["Lower", b"Lower"]) -> None: ... + +Global___Upper: typing_extensions.TypeAlias = Upper + +@typing.final +class lower2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + UPPER_FIELD_NUMBER: builtins.int + @property + def upper(self) -> Global___Upper: ... + def __init__( + self, + *, + upper: Global___Upper | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["upper", b"upper"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["upper", b"upper"]) -> None: ... + +Global___lower2: typing_extensions.TypeAlias = lower2 diff --git a/test/generated-async-only/testproto/Capitalized/__init__.py b/test/generated-async-only/testproto/Capitalized/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-async-only/testproto/__init__.py b/test/generated-async-only/testproto/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-async-only/testproto/comment_special_chars_pb2.py b/test/generated-async-only/testproto/comment_special_chars_pb2.py new file mode 100644 index 00000000..74655702 --- /dev/null +++ b/test/generated-async-only/testproto/comment_special_chars_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/comment_special_chars.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/comment_special_chars.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%testproto/comment_special_chars.proto\x12\x15\x63omment_special_chars\"\x7f\n\x04Test\x12\t\n\x01\x61\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\t\x12\t\n\x01\x63\x18\x03 \x01(\t\x12\t\n\x01\x64\x18\x04 \x01(\t\x12\t\n\x01\x65\x18\x05 \x01(\t\x12\t\n\x01\x66\x18\x06 \x01(\t\x12\t\n\x01g\x18\x07 \x01(\t\x12\t\n\x01h\x18\x08 \x01(\t\x12\t\n\x01i\x18\t \x01(\t\x12\t\n\x01j\x18\n \x01(\t\x12\t\n\x01k\x18\x0b \x01(\tb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.comment_special_chars_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TEST']._serialized_start=64 + _globals['_TEST']._serialized_end=191 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/comment_special_chars_pb2.pyi b/test/generated-async-only/testproto/comment_special_chars_pb2.pyi new file mode 100644 index 00000000..21823424 --- /dev/null +++ b/test/generated-async-only/testproto/comment_special_chars_pb2.pyi @@ -0,0 +1,82 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Test(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + B_FIELD_NUMBER: builtins.int + C_FIELD_NUMBER: builtins.int + D_FIELD_NUMBER: builtins.int + E_FIELD_NUMBER: builtins.int + F_FIELD_NUMBER: builtins.int + G_FIELD_NUMBER: builtins.int + H_FIELD_NUMBER: builtins.int + I_FIELD_NUMBER: builtins.int + J_FIELD_NUMBER: builtins.int + K_FIELD_NUMBER: builtins.int + a: builtins.str + """Ending with " """ + b: builtins.str + """Ending with "" """ + c: builtins.str + """Ending with \"\"\" """ + d: builtins.str + """Ending with \\ """ + e: builtins.str + """Containing bad escape: \\x""" + f: builtins.str + """Containing \"\"\"" quadruple""" + g: builtins.str + """Containing \"\"\""" quintuple""" + h: builtins.str + """Containing \"\"\"\"\"\" sextuple""" + i: builtins.str + """\"\"\" Multiple \"\"\" triples \"\"\" """ + j: builtins.str + """"quotes" can be a problem in comments. + \"\"\"Triple quotes\"\"\" just as well + """ + k: builtins.str + """\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" + " " + " Super Duper comments with surrounding edges! " + " " + " Pay attention to me!!!! " + " " + \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" + """ + def __init__( + self, + *, + a: builtins.str = ..., + b: builtins.str = ..., + c: builtins.str = ..., + d: builtins.str = ..., + e: builtins.str = ..., + f: builtins.str = ..., + g: builtins.str = ..., + h: builtins.str = ..., + i: builtins.str = ..., + j: builtins.str = ..., + k: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.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: ... + +Global___Test: typing_extensions.TypeAlias = Test diff --git a/test/generated-async-only/testproto/dot/__init__.py b/test/generated-async-only/testproto/dot/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-async-only/testproto/dot/com/__init__.py b/test/generated-async-only/testproto/dot/com/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-async-only/testproto/dot/com/test_pb2.py b/test/generated-async-only/testproto/dot/com/test_pb2.py new file mode 100644 index 00000000..de4a85eb --- /dev/null +++ b/test/generated-async-only/testproto/dot/com/test_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/dot.com/test.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/dot.com/test.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ctestproto/dot.com/test.proto\x12\x04test\"\x1a\n\x0bTestMessage\x12\x0b\n\x03\x66oo\x18\x01 \x01(\tb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.dot.com.test_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TESTMESSAGE']._serialized_start=38 + _globals['_TESTMESSAGE']._serialized_end=64 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/dot/com/test_pb2.pyi b/test/generated-async-only/testproto/dot/com/test_pb2.pyi new file mode 100644 index 00000000..bb7e86c1 --- /dev/null +++ b/test/generated-async-only/testproto/dot/com/test_pb2.pyi @@ -0,0 +1,32 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class TestMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FOO_FIELD_NUMBER: builtins.int + foo: builtins.str + def __init__( + self, + *, + foo: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["foo", b"foo"]) -> None: ... + +Global___TestMessage: typing_extensions.TypeAlias = TestMessage diff --git a/test/generated-async-only/testproto/edition2024_pb2.py b/test/generated-async-only/testproto/edition2024_pb2.py new file mode 100644 index 00000000..40e73646 --- /dev/null +++ b/test/generated-async-only/testproto/edition2024_pb2.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/edition2024.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/edition2024.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/edition2024.proto\x12\x04test\"\'\n\x16\x45\x64itions2024SubMessage\x12\r\n\x05thing\x18\x01 \x01(\t\"\xc3\x01\n\x10\x45\x64itions2024Test\x12\x15\n\x06legacy\x18\x01 \x01(\tB\x05\xaa\x01\x02\x08\x03\x12 \n\x11\x65xplicit_singular\x18\x02 \x01(\tB\x05\xaa\x01\x02\x08\x01\x12:\n\rmessage_field\x18\x03 \x01(\x0b\x32\x1c.test.Editions2024SubMessageB\x05\xaa\x01\x02\x08\x01\x12 \n\x11implicit_singular\x18\x04 \x01(\tB\x05\xaa\x01\x02\x08\x02\x12\x18\n\x10\x64\x65\x66\x61ult_singular\x18\x05 \x01(\tB\x05\x92\x03\x02 \x03\x62\x08\x65\x64itionsp\xe9\x07') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.edition2024_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\222\003\002 \003' + _globals['_EDITIONS2024TEST'].fields_by_name['legacy']._loaded_options = None + _globals['_EDITIONS2024TEST'].fields_by_name['legacy']._serialized_options = b'\252\001\002\010\003' + _globals['_EDITIONS2024TEST'].fields_by_name['explicit_singular']._loaded_options = None + _globals['_EDITIONS2024TEST'].fields_by_name['explicit_singular']._serialized_options = b'\252\001\002\010\001' + _globals['_EDITIONS2024TEST'].fields_by_name['message_field']._loaded_options = None + _globals['_EDITIONS2024TEST'].fields_by_name['message_field']._serialized_options = b'\252\001\002\010\001' + _globals['_EDITIONS2024TEST'].fields_by_name['implicit_singular']._loaded_options = None + _globals['_EDITIONS2024TEST'].fields_by_name['implicit_singular']._serialized_options = b'\252\001\002\010\002' + _globals['_EDITIONS2024SUBMESSAGE']._serialized_start=37 + _globals['_EDITIONS2024SUBMESSAGE']._serialized_end=76 + _globals['_EDITIONS2024TEST']._serialized_start=79 + _globals['_EDITIONS2024TEST']._serialized_end=274 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/edition2024_pb2.pyi b/test/generated-async-only/testproto/edition2024_pb2.pyi new file mode 100644 index 00000000..6de2ba64 --- /dev/null +++ b/test/generated-async-only/testproto/edition2024_pb2.pyi @@ -0,0 +1,68 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Edition version of proto2 file""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Editions2024SubMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + THING_FIELD_NUMBER: builtins.int + thing: builtins.str + def __init__( + self, + *, + thing: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["thing", b"thing"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["thing", b"thing"]) -> None: ... + +Global___Editions2024SubMessage: typing_extensions.TypeAlias = Editions2024SubMessage + +@typing.final +class Editions2024Test(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LEGACY_FIELD_NUMBER: builtins.int + EXPLICIT_SINGULAR_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_FIELD_NUMBER: builtins.int + IMPLICIT_SINGULAR_FIELD_NUMBER: builtins.int + DEFAULT_SINGULAR_FIELD_NUMBER: builtins.int + legacy: builtins.str + """Expect to be always set""" + explicit_singular: builtins.str + """Expect HasField generated""" + implicit_singular: builtins.str + """Expect implicit field presence, no HasField generated""" + default_singular: builtins.str + """Not set, should default to EXPLICIT""" + @property + def message_field(self) -> Global___Editions2024SubMessage: + """Expect HasField generated?""" + + def __init__( + self, + *, + legacy: builtins.str | None = ..., + explicit_singular: builtins.str | None = ..., + message_field: Global___Editions2024SubMessage | None = ..., + implicit_singular: builtins.str = ..., + default_singular: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> None: ... + +Global___Editions2024Test: typing_extensions.TypeAlias = Editions2024Test diff --git a/test/generated-async-only/testproto/grpc/__init__.py b/test/generated-async-only/testproto/grpc/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2.py b/test/generated-async-only/testproto/grpc/dummy_pb2.py new file mode 100644 index 00000000..995862f4 --- /dev/null +++ b/test/generated-async-only/testproto/grpc/dummy_pb2.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/grpc/dummy.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/grpc/dummy.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1atestproto/grpc/dummy.proto\x12\x05\x64ummy\"\x1d\n\x0c\x44ummyRequest\x12\r\n\x05value\x18\x01 \x01(\t\"\x1b\n\nDummyReply\x12\r\n\x05value\x18\x01 \x01(\t\".\n\x11\x44\x65precatedRequest\x12\x15\n\told_field\x18\x01 \x01(\tB\x02\x18\x01:\x02\x18\x01\x32\xfa\x01\n\x0c\x44ummyService\x12\x36\n\nUnaryUnary\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00\x12\x39\n\x0bUnaryStream\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00\x30\x01\x12\x39\n\x0bStreamUnary\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00(\x01\x12<\n\x0cStreamStream\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00(\x01\x30\x01\x32\xb3\x01\n\x11\x44\x65precatedService\x12\x44\n\x10\x44\x65precatedMethod\x12\x18.dummy.DeprecatedRequest\x1a\x11.dummy.DummyReply\"\x03\x88\x02\x01\x12S\n$DeprecatedMethodNotDeprecatedRequest\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x03\x88\x02\x01\x1a\x03\x88\x02\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.grpc.dummy_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_DEPRECATEDREQUEST'].fields_by_name['old_field']._loaded_options = None + _globals['_DEPRECATEDREQUEST'].fields_by_name['old_field']._serialized_options = b'\030\001' + _globals['_DEPRECATEDREQUEST']._loaded_options = None + _globals['_DEPRECATEDREQUEST']._serialized_options = b'\030\001' + _globals['_DEPRECATEDSERVICE']._loaded_options = None + _globals['_DEPRECATEDSERVICE']._serialized_options = b'\210\002\001' + _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethod']._loaded_options = None + _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethod']._serialized_options = b'\210\002\001' + _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethodNotDeprecatedRequest']._loaded_options = None + _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethodNotDeprecatedRequest']._serialized_options = b'\210\002\001' + _globals['_DUMMYREQUEST']._serialized_start=37 + _globals['_DUMMYREQUEST']._serialized_end=66 + _globals['_DUMMYREPLY']._serialized_start=68 + _globals['_DUMMYREPLY']._serialized_end=95 + _globals['_DEPRECATEDREQUEST']._serialized_start=97 + _globals['_DEPRECATEDREQUEST']._serialized_end=143 + _globals['_DUMMYSERVICE']._serialized_start=146 + _globals['_DUMMYSERVICE']._serialized_end=396 + _globals['_DEPRECATEDSERVICE']._serialized_start=399 + _globals['_DEPRECATEDSERVICE']._serialized_end=578 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2.pyi b/test/generated-async-only/testproto/grpc/dummy_pb2.pyi new file mode 100644 index 00000000..ce03f2a5 --- /dev/null +++ b/test/generated-async-only/testproto/grpc/dummy_pb2.pyi @@ -0,0 +1,68 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class DummyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUE_FIELD_NUMBER: builtins.int + value: builtins.str + def __init__( + self, + *, + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... + +Global___DummyRequest: typing_extensions.TypeAlias = DummyRequest + +@typing.final +class DummyReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUE_FIELD_NUMBER: builtins.int + value: builtins.str + def __init__( + self, + *, + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... + +Global___DummyReply: typing_extensions.TypeAlias = DummyReply + +@deprecated("""This message has been marked as deprecated using proto message options.""") +@typing.final +class DeprecatedRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + OLD_FIELD_FIELD_NUMBER: builtins.int + old_field: builtins.str + def __init__( + self, + *, + old_field: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["old_field", b"old_field"]) -> None: ... + +Global___DeprecatedRequest: typing_extensions.TypeAlias = DeprecatedRequest diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.py b/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.py new file mode 100644 index 00000000..eef0f7f6 --- /dev/null +++ b/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.py @@ -0,0 +1,353 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import warnings + +import grpc +from testproto.grpc import dummy_pb2 as testproto_dot_grpc_dot_dummy__pb2 + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in testproto/grpc/dummy_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) + + +class DummyServiceStub(object): + """DummyService + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UnaryUnary = channel.unary_unary( + '/dummy.DummyService/UnaryUnary', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + self.UnaryStream = channel.unary_stream( + '/dummy.DummyService/UnaryStream', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + self.StreamUnary = channel.stream_unary( + '/dummy.DummyService/StreamUnary', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + self.StreamStream = channel.stream_stream( + '/dummy.DummyService/StreamStream', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + + +class DummyServiceServicer(object): + """DummyService + """ + + def UnaryUnary(self, request, context): + """UnaryUnary + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UnaryStream(self, request, context): + """UnaryStream + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StreamUnary(self, request_iterator, context): + """StreamUnary + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StreamStream(self, request_iterator, context): + """StreamStream + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DummyServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UnaryUnary': grpc.unary_unary_rpc_method_handler( + servicer.UnaryUnary, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + 'UnaryStream': grpc.unary_stream_rpc_method_handler( + servicer.UnaryStream, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + 'StreamUnary': grpc.stream_unary_rpc_method_handler( + servicer.StreamUnary, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + 'StreamStream': grpc.stream_stream_rpc_method_handler( + servicer.StreamStream, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'dummy.DummyService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('dummy.DummyService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class DummyService(object): + """DummyService + """ + + @staticmethod + def UnaryUnary(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dummy.DummyService/UnaryUnary', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UnaryStream(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream( + request, + target, + '/dummy.DummyService/UnaryStream', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def StreamUnary(request_iterator, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.stream_unary( + request_iterator, + target, + '/dummy.DummyService/StreamUnary', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def StreamStream(request_iterator, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.stream_stream( + request_iterator, + target, + '/dummy.DummyService/StreamStream', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + +class DeprecatedServiceStub(object): + """Marking the service as deprecated + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.DeprecatedMethod = channel.unary_unary( + '/dummy.DeprecatedService/DeprecatedMethod', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + self.DeprecatedMethodNotDeprecatedRequest = channel.unary_unary( + '/dummy.DeprecatedService/DeprecatedMethodNotDeprecatedRequest', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + + +class DeprecatedServiceServicer(object): + """Marking the service as deprecated + """ + + def DeprecatedMethod(self, request, context): + """DeprecatedMethod + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeprecatedMethodNotDeprecatedRequest(self, request, context): + """DeprecatedMethodNotDeprecatedRequest + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DeprecatedServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'DeprecatedMethod': grpc.unary_unary_rpc_method_handler( + servicer.DeprecatedMethod, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + 'DeprecatedMethodNotDeprecatedRequest': grpc.unary_unary_rpc_method_handler( + servicer.DeprecatedMethodNotDeprecatedRequest, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'dummy.DeprecatedService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('dummy.DeprecatedService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class DeprecatedService(object): + """Marking the service as deprecated + """ + + @staticmethod + def DeprecatedMethod(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dummy.DeprecatedService/DeprecatedMethod', + testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DeprecatedMethodNotDeprecatedRequest(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dummy.DeprecatedService/DeprecatedMethodNotDeprecatedRequest', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi new file mode 100644 index 00000000..7bd059df --- /dev/null +++ b/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi @@ -0,0 +1,133 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" + +import abc +import collections.abc +import grpc.aio +import sys +import testproto.grpc.dummy_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str +_DummyServiceUnaryUnaryType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +_DummyServiceUnaryStreamType: typing_extensions.TypeAlias = grpc.aio.UnaryStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +_DummyServiceStreamUnaryType: typing_extensions.TypeAlias = grpc.aio.StreamUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +_DummyServiceStreamStreamType: typing_extensions.TypeAlias = grpc.aio.StreamStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +class DummyServiceStub: + """DummyService""" + + UnaryUnary: _DummyServiceUnaryUnaryType + """UnaryUnary""" + + UnaryStream: _DummyServiceUnaryStreamType + """UnaryStream""" + + StreamUnary: _DummyServiceStreamUnaryType + """StreamUnary""" + + StreamStream: _DummyServiceStreamStreamType + """StreamStream""" + +class DummyServiceServicer(metaclass=abc.ABCMeta): + """DummyService""" + + @abc.abstractmethod + def UnaryUnary( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.aio.ServicerContext, + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: + """UnaryUnary""" + + @abc.abstractmethod + def UnaryStream( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.aio.ServicerContext, + ) -> collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]: + """UnaryStream""" + + @abc.abstractmethod + def StreamUnary( + self, + request_iterator: collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], + context: grpc.aio.ServicerContext, + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: + """StreamUnary""" + + @abc.abstractmethod + def StreamStream( + self, + request_iterator: collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], + context: grpc.aio.ServicerContext, + ) -> collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]: + """StreamStream""" + +def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: grpc.aio.Server) -> None: ... + +_DeprecatedServiceDeprecatedMethodType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DeprecatedRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +_DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +@deprecated("""This service is deprecated""") +class DeprecatedServiceStub: + """Marking the service as deprecated""" + + DeprecatedMethod: _DeprecatedServiceDeprecatedMethodType + """DeprecatedMethod""" + + DeprecatedMethodNotDeprecatedRequest: _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType + """DeprecatedMethodNotDeprecatedRequest""" + +@deprecated("""This service is deprecated""") +class DeprecatedServiceServicer(metaclass=abc.ABCMeta): + """Marking the service as deprecated""" + + @abc.abstractmethod + def DeprecatedMethod( + self, + request: testproto.grpc.dummy_pb2.DeprecatedRequest, + context: grpc.aio.ServicerContext, + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: + """DeprecatedMethod""" + + @abc.abstractmethod + def DeprecatedMethodNotDeprecatedRequest( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.aio.ServicerContext, + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: + """DeprecatedMethodNotDeprecatedRequest""" + +@deprecated("""This service is deprecated""") +def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: grpc.aio.Server) -> None: ... diff --git a/test/generated-async-only/testproto/grpc/import_pb2.py b/test/generated-async-only/testproto/grpc/import_pb2.py new file mode 100644 index 00000000..61cc5689 --- /dev/null +++ b/test/generated-async-only/testproto/grpc/import_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/grpc/import.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/grpc/import.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test_pb2 as testproto_dot_test__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/grpc/import.proto\x12\ttest.grpc\x1a\x14testproto/test.proto\x1a\x1bgoogle/protobuf/empty.proto2\xb4\x01\n\rSimpleService\x12\x35\n\nUnaryUnary\x12\x16.google.protobuf.Empty\x1a\r.test.Simple1\"\x00\x12\x36\n\x0bUnaryStream\x12\r.test.Simple1\x1a\x16.google.protobuf.Empty\"\x00\x12\x34\n\tNoComment\x12\r.test.Simple1\x1a\x16.google.protobuf.Empty\"\x00') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.grpc.import_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SIMPLESERVICE']._serialized_start=94 + _globals['_SIMPLESERVICE']._serialized_end=274 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/grpc/import_pb2.pyi b/test/generated-async-only/testproto/grpc/import_pb2.pyi new file mode 100644 index 00000000..dd854e28 --- /dev/null +++ b/test/generated-async-only/testproto/grpc/import_pb2.pyi @@ -0,0 +1,8 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import google.protobuf.descriptor + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated-async-only/testproto/grpc/import_pb2_grpc.py b/test/generated-async-only/testproto/grpc/import_pb2_grpc.py new file mode 100644 index 00000000..0a09fd20 --- /dev/null +++ b/test/generated-async-only/testproto/grpc/import_pb2_grpc.py @@ -0,0 +1,189 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import warnings + +import grpc +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from testproto import test_pb2 as testproto_dot_test__pb2 + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in testproto/grpc/import_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) + + +class SimpleServiceStub(object): + """SimpleService + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UnaryUnary = channel.unary_unary( + '/test.grpc.SimpleService/UnaryUnary', + request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + response_deserializer=testproto_dot_test__pb2.Simple1.FromString, + _registered_method=True) + self.UnaryStream = channel.unary_unary( + '/test.grpc.SimpleService/UnaryStream', + request_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + _registered_method=True) + self.NoComment = channel.unary_unary( + '/test.grpc.SimpleService/NoComment', + request_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + _registered_method=True) + + +class SimpleServiceServicer(object): + """SimpleService + """ + + def UnaryUnary(self, request, context): + """UnaryUnary + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UnaryStream(self, request, context): + """UnaryStream + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def NoComment(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_SimpleServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UnaryUnary': grpc.unary_unary_rpc_method_handler( + servicer.UnaryUnary, + request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + response_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, + ), + 'UnaryStream': grpc.unary_unary_rpc_method_handler( + servicer.UnaryStream, + request_deserializer=testproto_dot_test__pb2.Simple1.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + ), + 'NoComment': grpc.unary_unary_rpc_method_handler( + servicer.NoComment, + request_deserializer=testproto_dot_test__pb2.Simple1.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'test.grpc.SimpleService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('test.grpc.SimpleService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class SimpleService(object): + """SimpleService + """ + + @staticmethod + def UnaryUnary(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/test.grpc.SimpleService/UnaryUnary', + google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + testproto_dot_test__pb2.Simple1.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UnaryStream(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/test.grpc.SimpleService/UnaryStream', + testproto_dot_test__pb2.Simple1.SerializeToString, + google_dot_protobuf_dot_empty__pb2.Empty.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def NoComment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/test.grpc.SimpleService/NoComment', + testproto_dot_test__pb2.Simple1.SerializeToString, + google_dot_protobuf_dot_empty__pb2.Empty.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi b/test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi new file mode 100644 index 00000000..205a883d --- /dev/null +++ b/test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi @@ -0,0 +1,71 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import google.protobuf.empty_pb2 +import grpc.aio +import sys +import testproto.test_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str +_SimpleServiceUnaryUnaryType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ + google.protobuf.empty_pb2.Empty, + testproto.test_pb2.Simple1, +] +_SimpleServiceUnaryStreamType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, +] +_SimpleServiceNoCommentType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, +] +class SimpleServiceStub: + """SimpleService""" + + UnaryUnary: _SimpleServiceUnaryUnaryType + """UnaryUnary""" + + UnaryStream: _SimpleServiceUnaryStreamType + """UnaryStream""" + + NoComment: _SimpleServiceNoCommentType + +class SimpleServiceServicer(metaclass=abc.ABCMeta): + """SimpleService""" + + @abc.abstractmethod + def UnaryUnary( + self, + request: google.protobuf.empty_pb2.Empty, + context: grpc.aio.ServicerContext, + ) -> collections.abc.Awaitable[testproto.test_pb2.Simple1]: + """UnaryUnary""" + + @abc.abstractmethod + def UnaryStream( + self, + request: testproto.test_pb2.Simple1, + context: grpc.aio.ServicerContext, + ) -> collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]: + """UnaryStream""" + + @abc.abstractmethod + def NoComment( + self, + request: testproto.test_pb2.Simple1, + context: grpc.aio.ServicerContext, + ) -> collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]: ... + +def add_SimpleServiceServicer_to_server(servicer: SimpleServiceServicer, server: grpc.aio.Server) -> None: ... diff --git a/test/generated-async-only/testproto/inner/__init__.py b/test/generated-async-only/testproto/inner/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-async-only/testproto/inner/inner_pb2.py b/test/generated-async-only/testproto/inner/inner_pb2.py new file mode 100644 index 00000000..fa5eac66 --- /dev/null +++ b/test/generated-async-only/testproto/inner/inner_pb2.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/inner/inner.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/inner/inner.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test3_pb2 as testproto_dot_test3__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/inner/inner.proto\x12\x05inner\x1a\x15testproto/test3.proto\"$\n\x05Inner\x12\x1b\n\x01\x61\x18\x01 \x01(\x0e\x32\x10.test3.OuterEnumb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.inner.inner_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_INNER']._serialized_start=61 + _globals['_INNER']._serialized_end=97 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/inner/inner_pb2.pyi b/test/generated-async-only/testproto/inner/inner_pb2.pyi new file mode 100644 index 00000000..dc705d20 --- /dev/null +++ b/test/generated-async-only/testproto/inner/inner_pb2.pyi @@ -0,0 +1,33 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Inner(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: testproto.test3_pb2.OuterEnum.ValueType + def __init__( + self, + *, + a: testproto.test3_pb2.OuterEnum.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... + +Global___Inner: typing_extensions.TypeAlias = Inner diff --git a/test/generated-async-only/testproto/nested/__init__.py b/test/generated-async-only/testproto/nested/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-async-only/testproto/nested/nested_pb2.py b/test/generated-async-only/testproto/nested/nested_pb2.py new file mode 100644 index 00000000..4e269210 --- /dev/null +++ b/test/generated-async-only/testproto/nested/nested_pb2.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/nested/nested.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/nested/nested.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test3_pb2 as testproto_dot_test3__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dtestproto/nested/nested.proto\x12\x13test.nested_package\x1a\x15testproto/test3.proto\"%\n\x06Nested\x12\x1b\n\x01\x61\x18\x01 \x01(\x0e\x32\x10.test3.OuterEnum\"\xac\x02\n\rAnotherNested\x1a\xed\x01\n\rNestedMessage\x12\t\n\x01s\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\x08\x12\x39\n\x02ne\x18\x03 \x01(\x0e\x32-.test.nested_package.AnotherNested.NestedEnum\x12I\n\x03ne2\x18\x04 \x01(\x0e\x32<.test.nested_package.AnotherNested.NestedMessage.NestedEnum2\"@\n\x0bNestedEnum2\x12\r\n\tUNDEFINED\x10\x00\x12\x10\n\x0cNESTED_ENUM1\x10\x01\x12\x10\n\x0cNESTED_ENUM2\x10\x02\"+\n\nNestedEnum\x12\x0b\n\x07INVALID\x10\x00\x12\x07\n\x03ONE\x10\x01\x12\x07\n\x03TWO\x10\x02\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.nested.nested_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_NESTED']._serialized_start=77 + _globals['_NESTED']._serialized_end=114 + _globals['_ANOTHERNESTED']._serialized_start=117 + _globals['_ANOTHERNESTED']._serialized_end=417 + _globals['_ANOTHERNESTED_NESTEDMESSAGE']._serialized_start=135 + _globals['_ANOTHERNESTED_NESTEDMESSAGE']._serialized_end=372 + _globals['_ANOTHERNESTED_NESTEDMESSAGE_NESTEDENUM2']._serialized_start=308 + _globals['_ANOTHERNESTED_NESTEDMESSAGE_NESTEDENUM2']._serialized_end=372 + _globals['_ANOTHERNESTED_NESTEDENUM']._serialized_start=374 + _globals['_ANOTHERNESTED_NESTEDENUM']._serialized_end=417 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/nested/nested_pb2.pyi b/test/generated-async-only/testproto/nested/nested_pb2.pyi new file mode 100644 index 00000000..e382df0a --- /dev/null +++ b/test/generated-async-only/testproto/nested/nested_pb2.pyi @@ -0,0 +1,96 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Nested(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: testproto.test3_pb2.OuterEnum.ValueType + def __init__( + self, + *, + a: testproto.test3_pb2.OuterEnum.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... + +Global___Nested: typing_extensions.TypeAlias = Nested + +@typing.final +class AnotherNested(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _NestedEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _NestedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested._NestedEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID: AnotherNested._NestedEnum.ValueType # 0 + ONE: AnotherNested._NestedEnum.ValueType # 1 + TWO: AnotherNested._NestedEnum.ValueType # 2 + + class NestedEnum(_NestedEnum, metaclass=_NestedEnumEnumTypeWrapper): ... + INVALID: AnotherNested.NestedEnum.ValueType # 0 + ONE: AnotherNested.NestedEnum.ValueType # 1 + TWO: AnotherNested.NestedEnum.ValueType # 2 + + @typing.final + class NestedMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _NestedEnum2: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _NestedEnum2EnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested.NestedMessage._NestedEnum2.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNDEFINED: AnotherNested.NestedMessage._NestedEnum2.ValueType # 0 + NESTED_ENUM1: AnotherNested.NestedMessage._NestedEnum2.ValueType # 1 + NESTED_ENUM2: AnotherNested.NestedMessage._NestedEnum2.ValueType # 2 + + class NestedEnum2(_NestedEnum2, metaclass=_NestedEnum2EnumTypeWrapper): ... + UNDEFINED: AnotherNested.NestedMessage.NestedEnum2.ValueType # 0 + NESTED_ENUM1: AnotherNested.NestedMessage.NestedEnum2.ValueType # 1 + NESTED_ENUM2: AnotherNested.NestedMessage.NestedEnum2.ValueType # 2 + + S_FIELD_NUMBER: builtins.int + B_FIELD_NUMBER: builtins.int + NE_FIELD_NUMBER: builtins.int + NE2_FIELD_NUMBER: builtins.int + s: builtins.str + b: builtins.bool + ne: Global___AnotherNested.NestedEnum.ValueType + ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType + def __init__( + self, + *, + s: builtins.str = ..., + b: builtins.bool = ..., + ne: Global___AnotherNested.NestedEnum.ValueType = ..., + ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["b", b"b", "ne", b"ne", "ne2", b"ne2", "s", b"s"]) -> None: ... + + def __init__( + self, + ) -> None: ... + +Global___AnotherNested: typing_extensions.TypeAlias = AnotherNested diff --git a/test/generated-async-only/testproto/nopackage_pb2.py b/test/generated-async-only/testproto/nopackage_pb2.py new file mode 100644 index 00000000..25e501fb --- /dev/null +++ b/test/generated-async-only/testproto/nopackage_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/nopackage.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/nopackage.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19testproto/nopackage.proto\"\x0b\n\tNoPackage\"@\n\nNoPackage2\x12\x16\n\x02np\x18\x01 \x01(\x0b\x32\n.NoPackage\x12\x1a\n\x06np_rep\x18\x02 \x03(\x0b\x32\n.NoPackageb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.nopackage_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_NOPACKAGE']._serialized_start=29 + _globals['_NOPACKAGE']._serialized_end=40 + _globals['_NOPACKAGE2']._serialized_start=42 + _globals['_NOPACKAGE2']._serialized_end=106 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/nopackage_pb2.pyi b/test/generated-async-only/testproto/nopackage_pb2.pyi new file mode 100644 index 00000000..7925439c --- /dev/null +++ b/test/generated-async-only/testproto/nopackage_pb2.pyi @@ -0,0 +1,52 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class NoPackage(google.protobuf.message.Message): + """Intentionally don't set a package - just to make sure we can handle it.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___NoPackage: typing_extensions.TypeAlias = NoPackage + +@typing.final +class NoPackage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NP_FIELD_NUMBER: builtins.int + NP_REP_FIELD_NUMBER: builtins.int + @property + def np(self) -> Global___NoPackage: ... + @property + def np_rep(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NoPackage]: ... + def __init__( + self, + *, + np: Global___NoPackage | None = ..., + np_rep: collections.abc.Iterable[Global___NoPackage] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["np", b"np"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["np", b"np", "np_rep", b"np_rep"]) -> None: ... + +Global___NoPackage2: typing_extensions.TypeAlias = NoPackage2 diff --git a/test/generated-async-only/testproto/readme_enum_pb2.py b/test/generated-async-only/testproto/readme_enum_pb2.py new file mode 100644 index 00000000..bfce5038 --- /dev/null +++ b/test/generated-async-only/testproto/readme_enum_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/readme_enum.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/readme_enum.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/readme_enum.proto\x12\x04test*\x1e\n\x06MyEnum\x12\t\n\x05HELLO\x10\x00\x12\t\n\x05WORLD\x10\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.readme_enum_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_MYENUM']._serialized_start=37 + _globals['_MYENUM']._serialized_end=67 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/readme_enum_pb2.pyi b/test/generated-async-only/testproto/readme_enum_pb2.pyi new file mode 100644 index 00000000..be8369c4 --- /dev/null +++ b/test/generated-async-only/testproto/readme_enum_pb2.pyi @@ -0,0 +1,32 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _MyEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _MyEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MyEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + HELLO: _MyEnum.ValueType # 0 + WORLD: _MyEnum.ValueType # 1 + +class MyEnum(_MyEnum, metaclass=_MyEnumEnumTypeWrapper): ... + +HELLO: MyEnum.ValueType # 0 +WORLD: MyEnum.ValueType # 1 +Global___MyEnum: typing_extensions.TypeAlias = MyEnum diff --git a/test/generated-async-only/testproto/reexport_pb2.py b/test/generated-async-only/testproto/reexport_pb2.py new file mode 100644 index 00000000..bebe651b --- /dev/null +++ b/test/generated-async-only/testproto/reexport_pb2.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/reexport.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/reexport.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test3_pb2 as testproto_dot_test3__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from testproto.inner import inner_pb2 as testproto_dot_inner_dot_inner__pb2 + +from testproto.test3_pb2 import * +from google.protobuf.empty_pb2 import * + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18testproto/reexport.proto\x12\x05test3\x1a\x15testproto/test3.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1btestproto/inner/inner.protoP\x00P\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.reexport_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/reexport_pb2.pyi b/test/generated-async-only/testproto/reexport_pb2.pyi new file mode 100644 index 00000000..9702c2bd --- /dev/null +++ b/test/generated-async-only/testproto/reexport_pb2.pyi @@ -0,0 +1,19 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import google.protobuf.descriptor +from google.protobuf.empty_pb2 import ( + Empty as Empty, +) +from testproto.test3_pb2 import ( + BAR3 as BAR3, + FOO3 as FOO3, + OuterEnum as OuterEnum, + OuterMessage3 as OuterMessage3, + SimpleProto3 as SimpleProto3, + UNKNOWN as UNKNOWN, +) + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated-async-only/testproto/test3_pb2.py b/test/generated-async-only/testproto/test3_pb2.py new file mode 100644 index 00000000..3b164270 --- /dev/null +++ b/test/generated-async-only/testproto/test3_pb2.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test3.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test3.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from mypy_protobuf import extensions_pb2 as mypy__protobuf_dot_extensions__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15testproto/test3.proto\x12\x05test3\x1a\x1emypy_protobuf/extensions.proto\"!\n\rOuterMessage3\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\"\xb3\t\n\x0cSimpleProto3\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\x12\x19\n\x11\x61_repeated_string\x18\x02 \x03(\t\x12&\n\x0c\x61_outer_enum\x18\x03 \x01(\x0e\x32\x10.test3.OuterEnum\x12+\n\router_message\x18\x04 \x01(\x0b\x32\x14.test3.OuterMessage3\x12\x31\n\ninner_enum\x18\x0f \x01(\x0e\x32\x1d.test3.SimpleProto3.InnerEnum\x12\x13\n\ta_oneof_1\x18\x05 \x01(\tH\x00\x12\x13\n\ta_oneof_2\x18\x06 \x01(\tH\x00\x12\x36\n\x16outer_message_in_oneof\x18\x0c \x01(\x0b\x32\x14.test3.OuterMessage3H\x00\x12/\n\x13outer_enum_in_oneof\x18\r \x01(\x0e\x32\x10.test3.OuterEnumH\x00\x12<\n\x13inner_enum_in_oneof\x18\x0e \x01(\x0e\x32\x1d.test3.SimpleProto3.InnerEnumH\x00\x12\x13\n\tb_oneof_1\x18\x07 \x01(\tH\x01\x12\x13\n\tb_oneof_2\x18\x08 \x01(\tH\x01\x12\"\n\x04\x62ool\x18\t \x01(\x0b\x32\x14.test3.OuterMessage3\x12#\n\tOuterEnum\x18\n \x01(\x0e\x32\x10.test3.OuterEnum\x12+\n\rOuterMessage3\x18\x0b \x01(\x0b\x32\x14.test3.OuterMessage3\x12\x36\n\nmap_scalar\x18\x10 \x03(\x0b\x32\".test3.SimpleProto3.MapScalarEntry\x12\x38\n\x0bmap_message\x18\x11 \x03(\x0b\x32#.test3.SimpleProto3.MapMessageEntry\x12\x1f\n\x12\x61n_optional_string\x18\x12 \x01(\tH\x02\x88\x01\x01\x12\x35\n\x07user_id\x18\x13 \x01(\rB$\x92H!\n\x1ftest/test_generated_mypy.UserId\x12\x32\n\x05\x65mail\x18\x14 \x01(\tB#\x92H \n\x1etest/test_generated_mypy.Email\x12\x7f\n\x0c\x65mail_by_uid\x18\x15 \x03(\x0b\x32#.test3.SimpleProto3.EmailByUidEntryBD\x92HA\x12\x1ftest/test_generated_mypy.UserId\x1a\x1etest/test_generated_mypy.Email\x1a\x30\n\x0eMapScalarEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aG\n\x0fMapMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.test3.OuterMessage3:\x02\x38\x01\x1a\x31\n\x0f\x45mailByUidEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"#\n\tInnerEnum\x12\n\n\x06INNER1\x10\x00\x12\n\n\x06INNER2\x10\x01\x42\t\n\x07\x61_oneofB\t\n\x07\x62_oneofB\x15\n\x13_an_optional_string*,\n\tOuterEnum\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x46OO3\x10\x01\x12\x08\n\x04\x42\x41R3\x10\x02\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test3_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._loaded_options = None + _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_options = b'8\001' + _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._loaded_options = None + _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_options = b'8\001' + _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._loaded_options = None + _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_options = b'8\001' + _globals['_SIMPLEPROTO3'].fields_by_name['user_id']._loaded_options = None + _globals['_SIMPLEPROTO3'].fields_by_name['user_id']._serialized_options = b'\222H!\n\037test/test_generated_mypy.UserId' + _globals['_SIMPLEPROTO3'].fields_by_name['email']._loaded_options = None + _globals['_SIMPLEPROTO3'].fields_by_name['email']._serialized_options = b'\222H \n\036test/test_generated_mypy.Email' + _globals['_SIMPLEPROTO3'].fields_by_name['email_by_uid']._loaded_options = None + _globals['_SIMPLEPROTO3'].fields_by_name['email_by_uid']._serialized_options = b'\222HA\022\037test/test_generated_mypy.UserId\032\036test/test_generated_mypy.Email' + _globals['_OUTERENUM']._serialized_start=1305 + _globals['_OUTERENUM']._serialized_end=1349 + _globals['_OUTERMESSAGE3']._serialized_start=64 + _globals['_OUTERMESSAGE3']._serialized_end=97 + _globals['_SIMPLEPROTO3']._serialized_start=100 + _globals['_SIMPLEPROTO3']._serialized_end=1303 + _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_start=1049 + _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_end=1097 + _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_start=1099 + _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_end=1170 + _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_start=1172 + _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_end=1221 + _globals['_SIMPLEPROTO3_INNERENUM']._serialized_start=1223 + _globals['_SIMPLEPROTO3_INNERENUM']._serialized_end=1258 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test3_pb2.pyi b/test/generated-async-only/testproto/test3_pb2.pyi new file mode 100644 index 00000000..f239d860 --- /dev/null +++ b/test/generated-async-only/testproto/test3_pb2.pyi @@ -0,0 +1,209 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +package test3""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import test.test_generated_mypy +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _OuterEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNKNOWN: _OuterEnum.ValueType # 0 + FOO3: _OuterEnum.ValueType # 1 + BAR3: _OuterEnum.ValueType # 2 + +class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): ... + +UNKNOWN: OuterEnum.ValueType # 0 +FOO3: OuterEnum.ValueType # 1 +BAR3: OuterEnum.ValueType # 2 +Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum + +@typing.final +class OuterMessage3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___OuterMessage3: typing_extensions.TypeAlias = OuterMessage3 + +@typing.final +class SimpleProto3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _InnerEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SimpleProto3._InnerEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INNER1: SimpleProto3._InnerEnum.ValueType # 0 + INNER2: SimpleProto3._InnerEnum.ValueType # 1 + + class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): ... + INNER1: SimpleProto3.InnerEnum.ValueType # 0 + INNER2: SimpleProto3.InnerEnum.ValueType # 1 + + @typing.final + class MapScalarEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing.final + class MapMessageEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + @property + def value(self) -> Global___OuterMessage3: ... + def __init__( + self, + *, + key: builtins.int = ..., + value: Global___OuterMessage3 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing.final + class EmailByUidEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + A_STRING_FIELD_NUMBER: builtins.int + A_REPEATED_STRING_FIELD_NUMBER: builtins.int + A_OUTER_ENUM_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_FIELD_NUMBER: builtins.int + INNER_ENUM_FIELD_NUMBER: builtins.int + A_ONEOF_1_FIELD_NUMBER: builtins.int + A_ONEOF_2_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int + OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + B_ONEOF_1_FIELD_NUMBER: builtins.int + B_ONEOF_2_FIELD_NUMBER: builtins.int + BOOL_FIELD_NUMBER: builtins.int + OUTERENUM_FIELD_NUMBER: builtins.int + OUTERMESSAGE3_FIELD_NUMBER: builtins.int + MAP_SCALAR_FIELD_NUMBER: builtins.int + MAP_MESSAGE_FIELD_NUMBER: builtins.int + AN_OPTIONAL_STRING_FIELD_NUMBER: builtins.int + USER_ID_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + EMAIL_BY_UID_FIELD_NUMBER: builtins.int + a_string: builtins.str + a_outer_enum: Global___OuterEnum.ValueType + inner_enum: Global___SimpleProto3.InnerEnum.ValueType + a_oneof_1: builtins.str + a_oneof_2: builtins.str + outer_enum_in_oneof: Global___OuterEnum.ValueType + inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType + b_oneof_1: builtins.str + b_oneof_2: builtins.str + OuterEnum: Global___OuterEnum.ValueType + """Test having fieldname match messagename""" + an_optional_string: builtins.str + user_id: test.test_generated_mypy.UserId + email: test.test_generated_mypy.Email + @property + def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def outer_message(self) -> Global___OuterMessage3: ... + @property + def outer_message_in_oneof(self) -> Global___OuterMessage3: ... + @property + def bool(self) -> Global___OuterMessage3: ... + @property + def OuterMessage3(self) -> Global___OuterMessage3: ... + @property + def map_scalar(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.str]: + """Test generation of map""" + + @property + def map_message(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, Global___OuterMessage3]: ... + @property + def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... + def __init__( + self, + *, + a_string: builtins.str = ..., + a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., + a_outer_enum: Global___OuterEnum.ValueType = ..., + outer_message: Global___OuterMessage3 | None = ..., + inner_enum: Global___SimpleProto3.InnerEnum.ValueType = ..., + a_oneof_1: builtins.str = ..., + a_oneof_2: builtins.str = ..., + outer_message_in_oneof: Global___OuterMessage3 | None = ..., + outer_enum_in_oneof: Global___OuterEnum.ValueType = ..., + inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType = ..., + b_oneof_1: builtins.str = ..., + b_oneof_2: builtins.str = ..., + bool: Global___OuterMessage3 | None = ..., + OuterEnum: Global___OuterEnum.ValueType = ..., + OuterMessage3: Global___OuterMessage3 | None = ..., + map_scalar: collections.abc.Mapping[builtins.int, builtins.str] | None = ..., + map_message: collections.abc.Mapping[builtins.int, Global___OuterMessage3] | None = ..., + an_optional_string: builtins.str | None = ..., + user_id: test.test_generated_mypy.UserId = ..., + email: test.test_generated_mypy.Email = ..., + email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "inner_enum_in_oneof", b"inner_enum_in_oneof", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["OuterEnum", b"OuterEnum", "OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_outer_enum", b"a_outer_enum", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "map_message", b"map_message", "map_scalar", b"map_scalar", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_an_optional_string", b"_an_optional_string"]) -> typing.Literal["an_optional_string"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["a_oneof", b"a_oneof"]) -> typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["b_oneof", b"b_oneof"]) -> typing.Literal["b_oneof_1", "b_oneof_2"] | None: ... + +Global___SimpleProto3: typing_extensions.TypeAlias = SimpleProto3 diff --git a/test/generated-async-only/testproto/test_extensions2_pb2.py b/test/generated-async-only/testproto/test_extensions2_pb2.py new file mode 100644 index 00000000..58c277cb --- /dev/null +++ b/test/generated-async-only/testproto/test_extensions2_pb2.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test_extensions2.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test_extensions2.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test_pb2 as testproto_dot_test__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n testproto/test_extensions2.proto\x12\x04test\x1a\x14testproto/test.proto\"_\n\x15SeparateFileExtension\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x08\x32\x38\n\x03\x65xt\x12\r.test.Simple2\x18\xe9\x07 \x01(\x0b\x32\x1b.test.SeparateFileExtension') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_extensions2_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SEPARATEFILEEXTENSION']._serialized_start=64 + _globals['_SEPARATEFILEEXTENSION']._serialized_end=159 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test_extensions2_pb2.pyi b/test/generated-async-only/testproto/test_extensions2_pb2.pyi new file mode 100644 index 00000000..b8e9f652 --- /dev/null +++ b/test/generated-async-only/testproto/test_extensions2_pb2.pyi @@ -0,0 +1,37 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import testproto.test_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class SeparateFileExtension(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FLAG_FIELD_NUMBER: builtins.int + flag: builtins.bool + EXT_FIELD_NUMBER: builtins.int + ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[testproto.test_pb2.Simple2, Global___SeparateFileExtension] + def __init__( + self, + *, + flag: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["flag", b"flag"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["flag", b"flag"]) -> None: ... + +Global___SeparateFileExtension: typing_extensions.TypeAlias = SeparateFileExtension diff --git a/test/generated-async-only/testproto/test_extensions3_pb2.py b/test/generated-async-only/testproto/test_extensions3_pb2.py new file mode 100644 index 00000000..4bc39093 --- /dev/null +++ b/test/generated-async-only/testproto/test_extensions3_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test_extensions3.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test_extensions3.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 +from testproto import test3_pb2 as testproto_dot_test3__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n testproto/test_extensions3.proto\x12\x05test3\x1a google/protobuf/descriptor.proto\x1a\x15testproto/test3.proto\"\x91\x01\n\x15MessageOptionsTestMsg:x\x92\x82\x19\x0cHello world!\x9a\x82\x19\x01\x41\x9a\x82\x19\x01\x42\x9a\x82\x19\x01\x43\xa0\x82\x19\x01\xaa\x82\x19\x02\x01\x02\xb2\x82\x19\x15\n\x13Hello OuterMessage3\xba\x82\x19\x17\n\x15Hello OuterMessage3 A\xba\x82\x19\x17\n\x15Hello OuterMessage3 B:=\n\x14test_field_extension\x12\x1d.google.protobuf.FieldOptions\x18\xd0\x86\x03 \x01(\t:8\n\rscalar_option\x12\x1f.google.protobuf.MessageOptions\x18\xa2\x90\x03 \x01(\t:A\n\x16repeated_scalar_option\x12\x1f.google.protobuf.MessageOptions\x18\xa3\x90\x03 \x03(\t:H\n\x0b\x65num_option\x12\x1f.google.protobuf.MessageOptions\x18\xa4\x90\x03 \x01(\x0e\x32\x10.test3.OuterEnum:Q\n\x14repeated_enum_option\x12\x1f.google.protobuf.MessageOptions\x18\xa5\x90\x03 \x03(\x0e\x32\x10.test3.OuterEnum:K\n\nmsg_option\x12\x1f.google.protobuf.MessageOptions\x18\xa6\x90\x03 \x01(\x0b\x32\x14.test3.OuterMessage3:T\n\x13repeated_msg_option\x12\x1f.google.protobuf.MessageOptions\x18\xa7\x90\x03 \x03(\x0b\x32\x14.test3.OuterMessage3b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_extensions3_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_MESSAGEOPTIONSTESTMSG']._loaded_options = None + _globals['_MESSAGEOPTIONSTESTMSG']._serialized_options = b'\222\202\031\014Hello world!\232\202\031\001A\232\202\031\001B\232\202\031\001C\240\202\031\001\252\202\031\002\001\002\262\202\031\025\n\023Hello OuterMessage3\272\202\031\027\n\025Hello OuterMessage3 A\272\202\031\027\n\025Hello OuterMessage3 B' + _globals['_MESSAGEOPTIONSTESTMSG']._serialized_start=101 + _globals['_MESSAGEOPTIONSTESTMSG']._serialized_end=246 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test_extensions3_pb2.pyi b/test/generated-async-only/testproto/test_extensions3_pb2.pyi new file mode 100644 index 00000000..f2292855 --- /dev/null +++ b/test/generated-async-only/testproto/test_extensions3_pb2.pyi @@ -0,0 +1,46 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.descriptor_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class MessageOptionsTestMsg(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___MessageOptionsTestMsg: typing_extensions.TypeAlias = MessageOptionsTestMsg + +TEST_FIELD_EXTENSION_FIELD_NUMBER: builtins.int +SCALAR_OPTION_FIELD_NUMBER: builtins.int +REPEATED_SCALAR_OPTION_FIELD_NUMBER: builtins.int +ENUM_OPTION_FIELD_NUMBER: builtins.int +REPEATED_ENUM_OPTION_FIELD_NUMBER: builtins.int +MSG_OPTION_FIELD_NUMBER: builtins.int +REPEATED_MSG_OPTION_FIELD_NUMBER: builtins.int +test_field_extension: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str] +scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.str] +repeated_scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]] +enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterEnum.ValueType] +repeated_enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[testproto.test3_pb2.OuterEnum.ValueType]] +msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterMessage3] +repeated_msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedCompositeFieldContainer[testproto.test3_pb2.OuterMessage3]] diff --git a/test/generated-async-only/testproto/test_no_generic_services_pb2.py b/test/generated-async-only/testproto/test_no_generic_services_pb2.py new file mode 100644 index 00000000..532c253b --- /dev/null +++ b/test/generated-async-only/testproto/test_no_generic_services_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test_no_generic_services.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test_no_generic_services.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(testproto/test_no_generic_services.proto\x12\x04test\"\x1b\n\x07Simple3\x12\x10\n\x08\x61_string\x18\x01 \x02(\t27\n\rATestService2\x12&\n\x04\x45\x63ho\x12\r.test.Simple3\x1a\r.test.Simple3\"\x00') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_no_generic_services_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SIMPLE3']._serialized_start=50 + _globals['_SIMPLE3']._serialized_end=77 + _globals['_ATESTSERVICE2']._serialized_start=79 + _globals['_ATESTSERVICE2']._serialized_end=134 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test_no_generic_services_pb2.pyi b/test/generated-async-only/testproto/test_no_generic_services_pb2.pyi new file mode 100644 index 00000000..3a350109 --- /dev/null +++ b/test/generated-async-only/testproto/test_no_generic_services_pb2.pyi @@ -0,0 +1,33 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Simple3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___Simple3: typing_extensions.TypeAlias = Simple3 diff --git a/test/generated-async-only/testproto/test_pb2.py b/test/generated-async-only/testproto/test_pb2.py new file mode 100644 index 00000000..cfeef244 --- /dev/null +++ b/test/generated-async-only/testproto/test_pb2.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from mypy_protobuf import extensions_pb2 as mypy__protobuf_dot_extensions__pb2 +from testproto.inner import inner_pb2 as testproto_dot_inner_dot_inner__pb2 +from testproto.nested import nested_pb2 as testproto_dot_nested_dot_nested__pb2 +from testproto import nopackage_pb2 as testproto_dot_nopackage__pb2 +from testproto import test3_pb2 as testproto_dot_test3__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14testproto/test.proto\x12\x04test\x1a\x1emypy_protobuf/extensions.proto\x1a\x1btestproto/inner/inner.proto\x1a\x1dtestproto/nested/nested.proto\x1a\x19testproto/nopackage.proto\x1a\x15testproto/test3.proto\"\x8d\t\n\x07Simple1\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\x12\x19\n\x11\x61_repeated_string\x18\x02 \x03(\t\x12\x11\n\ta_boolean\x18\x03 \x01(\x08\x12\x10\n\x08\x61_uint32\x18\x04 \x01(\r\x12\x1f\n\x06\x61_enum\x18\x05 \x01(\x0e\x32\x0f.test.OuterEnum\x12)\n\x0f\x61_external_enum\x18\x06 \x01(\x0e\x32\x10.test3.OuterEnum\x12\x1d\n\x07\x61_inner\x18\x07 \x01(\x0b\x32\x0c.inner.Inner\x12-\n\x08\x61_nested\x18\x0c \x01(\x0b\x32\x1b.test.nested_package.Nested\x12+\n\ninner_enum\x18\x08 \x01(\x0e\x32\x17.test.Simple1.InnerEnum\x12/\n\x0erep_inner_enum\x18\t \x03(\x0e\x32\x17.test.Simple1.InnerEnum\x12\x31\n\rinner_message\x18\n \x01(\x0b\x32\x1a.test.Simple1.InnerMessage\x12\x35\n\x11rep_inner_message\x18\x0b \x03(\x0b\x32\x1a.test.Simple1.InnerMessage\x12\x1e\n\nno_package\x18\r \x01(\x0b\x32\n.NoPackage\x12\x42\n\x0bnested_enum\x18\x0e \x01(\x0e\x32-.test.nested_package.AnotherNested.NestedEnum\x12H\n\x0enested_message\x18\x0f \x01(\x0b\x32\x30.test.nested_package.AnotherNested.NestedMessage\x12\x13\n\ta_oneof_1\x18\x10 \x01(\tH\x00\x12\x13\n\ta_oneof_2\x18\x11 \x01(\tH\x00\x12/\n\x16outer_message_in_oneof\x18\x12 \x01(\x0b\x32\r.test.Simple2H\x00\x12.\n\x13outer_enum_in_oneof\x18\x13 \x01(\x0e\x32\x0f.test.OuterEnumH\x00\x12\x36\n\x13inner_enum_in_oneof\x18\x14 \x01(\x0e\x32\x17.test.Simple1.InnerEnumH\x00\x12\x33\n\x07user_id\x18\x15 \x01(\rB\"\xfaG\x1ftest/test_generated_mypy.UserId\x12\x30\n\x05\x65mail\x18\x16 \x01(\tB!\xfaG\x1etest/test_generated_mypy.Email\x12x\n\x0c\x65mail_by_uid\x18\x17 \x03(\x0b\x32\x1d.test.Simple1.EmailByUidEntryBC\x82H\x1ftest/test_generated_mypy.UserId\x8aH\x1etest/test_generated_mypy.Email\x1a\x0e\n\x0cInnerMessage\x1a\x31\n\x0f\x45mailByUidEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"#\n\tInnerEnum\x12\n\n\x06INNER1\x10\x01\x12\n\n\x06INNER2\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\t\n\x07\x61_oneof\"&\n\x07Simple2\x12\x10\n\x08\x61_string\x18\x01 \x02(\t*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"R\n\x0b\x45xtensions1\x12\x13\n\x0b\x65xt1_string\x18\x01 \x01(\t2.\n\x03\x65xt\x12\r.test.Simple1\x18\xe8\x07 \x01(\x0b\x32\x11.test.Extensions1\"K\n\x0b\x45xtensions2\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x08\x32.\n\x03\x66oo\x12\r.test.Simple1\x18\xe4\x0f \x01(\x0b\x32\x11.test.Extensions2\"\x15\n\x04None\x12\r\n\x05valid\x18\x01 \x01(\x03\"\x80\x05\n\x16PythonReservedKeywords\x12\x0c\n\x04\x66rom\x18\x01 \x02(\x03\x12\x19\n\x02in\x18\x02 \x01(\x0b\x32\r.test.Simple2\x12\x30\n\x02is\x18\x03 \x01(\x0e\x32$.test.PythonReservedKeywords.finally\x12\x0b\n\x03\x66or\x18\x05 \x01(\x03\x12\x0b\n\x03try\x18\x06 \x01(\x03\x12\x0b\n\x03\x64\x65\x66\x18\x07 \x01(\x03\x12\x10\n\x08nonlocal\x18\x08 \x01(\x03\x12\r\n\x05while\x18\t \x01(\x03\x12\x0b\n\x03\x61nd\x18\n \x01(\x03\x12\x0b\n\x03\x64\x65l\x18\x0b \x01(\x03\x12\x0e\n\x06global\x18\x0c \x01(\x03\x12\x0b\n\x03not\x18\r \x01(\x03\x12\x0c\n\x04with\x18\x0e \x01(\x03\x12\n\n\x02\x61s\x18\x0f \x01(\x03\x12\x0c\n\x04\x65lif\x18\x10 \x01(\x03\x12\n\n\x02if\x18\x11 \x01(\x03\x12\n\n\x02or\x18\x12 \x01(\x03\x12\r\n\x05yield\x18\x13 \x01(\x03\x12\x0e\n\x06\x61ssert\x18\x14 \x01(\x03\x12\x0c\n\x04\x65lse\x18\x15 \x01(\x03\x12\x0e\n\x06import\x18\x16 \x01(\x03\x12\x0c\n\x04pass\x18\x17 \x01(\x03\x12\r\n\x05\x62reak\x18\x18 \x01(\x03\x12\x0e\n\x06\x65xcept\x18\x19 \x01(\x03\x12\r\n\x05raise\x18\x1a \x01(\x03\x12\r\n\x05\x46\x61lse\x18\x1b \x01(\x03\x12\x0c\n\x04True\x18\x1d \x01(\x03\x12\r\n\x05\x63lass\x18\x1e \x01(\x03\x12\x18\n\x04none\x18\x1c \x01(\x0b\x32\n.test.None\x12\x33\n\x05valid\x18\x1f \x01(\x0e\x32$.test.PythonReservedKeywords.finally\x1a)\n\x06lambda\x12\x10\n\x08\x63ontinue\x18\x01 \x01(\x03\x12\r\n\x05valid\x18\x02 \x01(\x03\"-\n\x07\x66inally\x12\x0c\n\x08\x63ontinue\x10\x01\x12\x14\n\x10valid_in_finally\x10\x02\"+\n\x1bPythonReservedKeywordsSmall\x12\x0c\n\x04\x66rom\x18\x01 \x02(\x03\"\x19\n\tSelfField\x12\x0c\n\x04self\x18\x01 \x01(\x03\")\n\x11\x44\x65precatedMessage\x12\x10\n\x08\x61_string\x18\x01 \x01(\t:\x02\x18\x01\"3\n\x1b\x44\x65precatedMessageBadComment\x12\x10\n\x08\x61_string\x18\x01 \x01(\t:\x02\x18\x01*\x1d\n\tOuterEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02*G\n\x0fNamingConflicts\x12\x08\n\x04Name\x10\x01\x12\t\n\x05Value\x10\x02\x12\x08\n\x04keys\x10\x03\x12\n\n\x06values\x10\x04\x12\t\n\x05items\x10\x05*<\n\x0e\x44\x65precatedEnum\x12\x12\n\x0e\x44\x45PRECATED_ONE\x10\x01\x12\x12\n\x0e\x44\x45PRECATED_TWO\x10\x02\x1a\x02\x18\x01\x32\xde\x01\n\x1dPythonReservedKeywordsService\x12>\n\x06lambda\x12\r.test.Simple1\x1a#.test.PythonReservedKeywords.lambda\"\x00\x12\x31\n\x12valid_method_name1\x12\r.test.Simple1\x1a\n.test.None\"\x00\x12J\n\x12valid_method_name2\x12\r.test.Simple1\x1a#.test.PythonReservedKeywords.lambda\"\x00') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_DEPRECATEDENUM']._loaded_options = None + _globals['_DEPRECATEDENUM']._serialized_options = b'\030\001' + _globals['_SIMPLE1_EMAILBYUIDENTRY']._loaded_options = None + _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_options = b'8\001' + _globals['_SIMPLE1'].fields_by_name['user_id']._loaded_options = None + _globals['_SIMPLE1'].fields_by_name['user_id']._serialized_options = b'\372G\037test/test_generated_mypy.UserId' + _globals['_SIMPLE1'].fields_by_name['email']._loaded_options = None + _globals['_SIMPLE1'].fields_by_name['email']._serialized_options = b'\372G\036test/test_generated_mypy.Email' + _globals['_SIMPLE1'].fields_by_name['email_by_uid']._loaded_options = None + _globals['_SIMPLE1'].fields_by_name['email_by_uid']._serialized_options = b'\202H\037test/test_generated_mypy.UserId\212H\036test/test_generated_mypy.Email' + _globals['_DEPRECATEDMESSAGE']._loaded_options = None + _globals['_DEPRECATEDMESSAGE']._serialized_options = b'\030\001' + _globals['_DEPRECATEDMESSAGEBADCOMMENT']._loaded_options = None + _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_options = b'\030\001' + _globals['_OUTERENUM']._serialized_start=2375 + _globals['_OUTERENUM']._serialized_end=2404 + _globals['_NAMINGCONFLICTS']._serialized_start=2406 + _globals['_NAMINGCONFLICTS']._serialized_end=2477 + _globals['_DEPRECATEDENUM']._serialized_start=2479 + _globals['_DEPRECATEDENUM']._serialized_end=2539 + _globals['_SIMPLE1']._serialized_start=173 + _globals['_SIMPLE1']._serialized_end=1338 + _globals['_SIMPLE1_INNERMESSAGE']._serialized_start=1214 + _globals['_SIMPLE1_INNERMESSAGE']._serialized_end=1228 + _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_start=1230 + _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_end=1279 + _globals['_SIMPLE1_INNERENUM']._serialized_start=1281 + _globals['_SIMPLE1_INNERENUM']._serialized_end=1316 + _globals['_SIMPLE2']._serialized_start=1340 + _globals['_SIMPLE2']._serialized_end=1378 + _globals['_EXTENSIONS1']._serialized_start=1380 + _globals['_EXTENSIONS1']._serialized_end=1462 + _globals['_EXTENSIONS2']._serialized_start=1464 + _globals['_EXTENSIONS2']._serialized_end=1539 + _globals['_NONE']._serialized_start=1541 + _globals['_NONE']._serialized_end=1562 + _globals['_PYTHONRESERVEDKEYWORDS']._serialized_start=1565 + _globals['_PYTHONRESERVEDKEYWORDS']._serialized_end=2205 + _globals['_PYTHONRESERVEDKEYWORDS_LAMBDA']._serialized_start=2117 + _globals['_PYTHONRESERVEDKEYWORDS_LAMBDA']._serialized_end=2158 + _globals['_PYTHONRESERVEDKEYWORDS_FINALLY']._serialized_start=2160 + _globals['_PYTHONRESERVEDKEYWORDS_FINALLY']._serialized_end=2205 + _globals['_PYTHONRESERVEDKEYWORDSSMALL']._serialized_start=2207 + _globals['_PYTHONRESERVEDKEYWORDSSMALL']._serialized_end=2250 + _globals['_SELFFIELD']._serialized_start=2252 + _globals['_SELFFIELD']._serialized_end=2277 + _globals['_DEPRECATEDMESSAGE']._serialized_start=2279 + _globals['_DEPRECATEDMESSAGE']._serialized_end=2320 + _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_start=2322 + _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_end=2373 + _globals['_PYTHONRESERVEDKEYWORDSSERVICE']._serialized_start=2542 + _globals['_PYTHONRESERVEDKEYWORDSSERVICE']._serialized_end=2764 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test_pb2.pyi b/test/generated-async-only/testproto/test_pb2.pyi new file mode 100644 index 00000000..3058335b --- /dev/null +++ b/test/generated-async-only/testproto/test_pb2.pyi @@ -0,0 +1,439 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Proto 2 test file.""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import test.test_generated_mypy +import testproto.inner.inner_pb2 +import testproto.nested.nested_pb2 +import testproto.nopackage_pb2 +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _OuterEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + FOO: _OuterEnum.ValueType # 1 + """FOO""" + BAR: _OuterEnum.ValueType # 2 + """BAR""" + +class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): + """Outer Enum""" + +FOO: OuterEnum.ValueType # 1 +"""FOO""" +BAR: OuterEnum.ValueType # 2 +"""BAR""" +Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum + +class _NamingConflicts: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _NamingConflictsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NamingConflicts.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + +class NamingConflicts(_NamingConflicts, metaclass=_NamingConflictsEnumTypeWrapper): + """Naming conflicts!""" + +Name: NamingConflicts.ValueType # 1 +Value: NamingConflicts.ValueType # 2 +keys: NamingConflicts.ValueType # 3 +values: NamingConflicts.ValueType # 4 +items: NamingConflicts.ValueType # 5 +"""See https://github.com/protocolbuffers/protobuf/issues/8803 +proto itself generates broken code when DESCRIPTOR is there +DESCRIPTOR = 8; +""" +Global___NamingConflicts: typing_extensions.TypeAlias = NamingConflicts + +class _DeprecatedEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _DeprecatedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeprecatedEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + DEPRECATED_ONE: _DeprecatedEnum.ValueType # 1 + DEPRECATED_TWO: _DeprecatedEnum.ValueType # 2 + +@deprecated("""This enum is deprecated\n2 lines of comments\n"Quotes in comments"\nand 'single quotes'\nTrailing comment""") +class DeprecatedEnum(_DeprecatedEnum, metaclass=_DeprecatedEnumEnumTypeWrapper): ... + +DEPRECATED_ONE: DeprecatedEnum.ValueType # 1 +DEPRECATED_TWO: DeprecatedEnum.ValueType # 2 +Global___DeprecatedEnum: typing_extensions.TypeAlias = DeprecatedEnum + +@typing.final +class Simple1(google.protobuf.message.Message): + """Message with one of everything""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _InnerEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Simple1._InnerEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INNER1: Simple1._InnerEnum.ValueType # 1 + """INNER1""" + INNER2: Simple1._InnerEnum.ValueType # 2 + """INNER2""" + + class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): + """Inner Enum""" + + INNER1: Simple1.InnerEnum.ValueType # 1 + """INNER1""" + INNER2: Simple1.InnerEnum.ValueType # 2 + """INNER2""" + + @typing.final + class InnerMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + + @typing.final + class EmailByUidEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int | None = ..., + value: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + A_STRING_FIELD_NUMBER: builtins.int + A_REPEATED_STRING_FIELD_NUMBER: builtins.int + A_BOOLEAN_FIELD_NUMBER: builtins.int + A_UINT32_FIELD_NUMBER: builtins.int + A_ENUM_FIELD_NUMBER: builtins.int + A_EXTERNAL_ENUM_FIELD_NUMBER: builtins.int + A_INNER_FIELD_NUMBER: builtins.int + A_NESTED_FIELD_NUMBER: builtins.int + INNER_ENUM_FIELD_NUMBER: builtins.int + REP_INNER_ENUM_FIELD_NUMBER: builtins.int + INNER_MESSAGE_FIELD_NUMBER: builtins.int + REP_INNER_MESSAGE_FIELD_NUMBER: builtins.int + NO_PACKAGE_FIELD_NUMBER: builtins.int + NESTED_ENUM_FIELD_NUMBER: builtins.int + NESTED_MESSAGE_FIELD_NUMBER: builtins.int + A_ONEOF_1_FIELD_NUMBER: builtins.int + A_ONEOF_2_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int + OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + USER_ID_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + EMAIL_BY_UID_FIELD_NUMBER: builtins.int + a_string: builtins.str + a_boolean: builtins.bool + a_uint32: builtins.int + a_enum: Global___OuterEnum.ValueType + a_external_enum: testproto.test3_pb2.OuterEnum.ValueType + inner_enum: Global___Simple1.InnerEnum.ValueType + nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType + a_oneof_1: builtins.str + a_oneof_2: builtins.str + outer_enum_in_oneof: Global___OuterEnum.ValueType + inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType + user_id: test.test_generated_mypy.UserId + email: test.test_generated_mypy.Email + @property + def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def a_inner(self) -> testproto.inner.inner_pb2.Inner: ... + @property + def a_nested(self) -> testproto.nested.nested_pb2.Nested: ... + @property + def rep_inner_enum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[Global___Simple1.InnerEnum.ValueType]: ... + @property + def inner_message(self) -> Global___Simple1.InnerMessage: ... + @property + def rep_inner_message(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Simple1.InnerMessage]: ... + @property + def no_package(self) -> testproto.nopackage_pb2.NoPackage: ... + @property + def nested_message(self) -> testproto.nested.nested_pb2.AnotherNested.NestedMessage: ... + @property + def outer_message_in_oneof(self) -> Global___Simple2: ... + @property + def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... + def __init__( + self, + *, + a_string: builtins.str | None = ..., + a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., + a_boolean: builtins.bool | None = ..., + a_uint32: builtins.int | None = ..., + a_enum: Global___OuterEnum.ValueType | None = ..., + a_external_enum: testproto.test3_pb2.OuterEnum.ValueType | None = ..., + a_inner: testproto.inner.inner_pb2.Inner | None = ..., + a_nested: testproto.nested.nested_pb2.Nested | None = ..., + inner_enum: Global___Simple1.InnerEnum.ValueType | None = ..., + rep_inner_enum: collections.abc.Iterable[Global___Simple1.InnerEnum.ValueType] | None = ..., + inner_message: Global___Simple1.InnerMessage | None = ..., + rep_inner_message: collections.abc.Iterable[Global___Simple1.InnerMessage] | None = ..., + no_package: testproto.nopackage_pb2.NoPackage | None = ..., + nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType | None = ..., + nested_message: testproto.nested.nested_pb2.AnotherNested.NestedMessage | None = ..., + a_oneof_1: builtins.str | None = ..., + a_oneof_2: builtins.str | None = ..., + outer_message_in_oneof: Global___Simple2 | None = ..., + outer_enum_in_oneof: Global___OuterEnum.ValueType | None = ..., + inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType | None = ..., + user_id: test.test_generated_mypy.UserId | None = ..., + email: test.test_generated_mypy.Email | None = ..., + email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "rep_inner_enum", b"rep_inner_enum", "rep_inner_message", b"rep_inner_message", "user_id", b"user_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["a_oneof", b"a_oneof"]) -> typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] | None: ... + +Global___Simple1: typing_extensions.TypeAlias = Simple1 + +@typing.final +class Simple2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___Simple2: typing_extensions.TypeAlias = Simple2 + +@typing.final +class Extensions1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EXT1_STRING_FIELD_NUMBER: builtins.int + ext1_string: builtins.str + EXT_FIELD_NUMBER: builtins.int + ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions1] + """ext""" + def __init__( + self, + *, + ext1_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["ext1_string", b"ext1_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["ext1_string", b"ext1_string"]) -> None: ... + +Global___Extensions1: typing_extensions.TypeAlias = Extensions1 + +@typing.final +class Extensions2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FLAG_FIELD_NUMBER: builtins.int + flag: builtins.bool + FOO_FIELD_NUMBER: builtins.int + foo: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions2] + """foo""" + def __init__( + self, + *, + flag: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["flag", b"flag"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["flag", b"flag"]) -> None: ... + +Global___Extensions2: typing_extensions.TypeAlias = Extensions2 + +@typing.final +class _r_None(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALID_FIELD_NUMBER: builtins.int + valid: builtins.int + def __init__( + self, + *, + valid: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["valid", b"valid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["valid", b"valid"]) -> None: ... + +Global____r_None: typing_extensions.TypeAlias = _r_None + +@typing.final +class PythonReservedKeywords(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _finally: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _finallyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PythonReservedKeywords._finally.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + valid_in_finally: PythonReservedKeywords._finally.ValueType # 2 + + class _r_finally(_finally, metaclass=_finallyEnumTypeWrapper): ... + valid_in_finally: PythonReservedKeywords._r_finally.ValueType # 2 + + @typing.final + class _r_lambda(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONTINUE_FIELD_NUMBER: builtins.int + VALID_FIELD_NUMBER: builtins.int + valid: builtins.int + def __init__( + self, + *, + valid: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["continue", b"continue", "valid", b"valid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["continue", b"continue", "valid", b"valid"]) -> None: ... + + FROM_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + IS_FIELD_NUMBER: builtins.int + FOR_FIELD_NUMBER: builtins.int + TRY_FIELD_NUMBER: builtins.int + DEF_FIELD_NUMBER: builtins.int + NONLOCAL_FIELD_NUMBER: builtins.int + WHILE_FIELD_NUMBER: builtins.int + AND_FIELD_NUMBER: builtins.int + DEL_FIELD_NUMBER: builtins.int + GLOBAL_FIELD_NUMBER: builtins.int + NOT_FIELD_NUMBER: builtins.int + WITH_FIELD_NUMBER: builtins.int + AS_FIELD_NUMBER: builtins.int + ELIF_FIELD_NUMBER: builtins.int + IF_FIELD_NUMBER: builtins.int + OR_FIELD_NUMBER: builtins.int + YIELD_FIELD_NUMBER: builtins.int + ASSERT_FIELD_NUMBER: builtins.int + ELSE_FIELD_NUMBER: builtins.int + IMPORT_FIELD_NUMBER: builtins.int + PASS_FIELD_NUMBER: builtins.int + BREAK_FIELD_NUMBER: builtins.int + EXCEPT_FIELD_NUMBER: builtins.int + RAISE_FIELD_NUMBER: builtins.int + FALSE_FIELD_NUMBER: builtins.int + TRUE_FIELD_NUMBER: builtins.int + CLASS_FIELD_NUMBER: builtins.int + NONE_FIELD_NUMBER: builtins.int + VALID_FIELD_NUMBER: builtins.int + valid: Global___PythonReservedKeywords._r_finally.ValueType + @property + def none(self) -> Global____r_None: + """Test unreserved identifiers w/ reserved message names""" + + def __init__( + self, + *, + none: Global____r_None | None = ..., + valid: Global___PythonReservedKeywords._r_finally.ValueType | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"]) -> None: ... + +Global___PythonReservedKeywords: typing_extensions.TypeAlias = PythonReservedKeywords + +@typing.final +class PythonReservedKeywordsSmall(google.protobuf.message.Message): + """Do one with just one arg - to make sure it's syntactically correct""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FROM_FIELD_NUMBER: builtins.int + def __init__( + self, + ) -> None: ... + def HasField(self, field_name: typing.Literal["from", b"from"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["from", b"from"]) -> None: ... + +Global___PythonReservedKeywordsSmall: typing_extensions.TypeAlias = PythonReservedKeywordsSmall + +@typing.final +class SelfField(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SELF_FIELD_NUMBER: builtins.int + self: builtins.int + """Field self -> must generate an __init__ method w/ different name""" + def __init__( + self_, # pyright: ignore[reportSelfClsParameterName] + *, + self: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["self", b"self"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["self", b"self"]) -> None: ... + +Global___SelfField: typing_extensions.TypeAlias = SelfField + +@deprecated("""This message is deprecated""") +@typing.final +class DeprecatedMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___DeprecatedMessage: typing_extensions.TypeAlias = DeprecatedMessage + +@deprecated("""This message has been marked as deprecated using proto message options.""") +@typing.final +class DeprecatedMessageBadComment(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___DeprecatedMessageBadComment: typing_extensions.TypeAlias = DeprecatedMessageBadComment diff --git a/test/generated-sync-only/__init__.py b/test/generated-sync-only/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.py b/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.py new file mode 100644 index 00000000..6fddb96c --- /dev/null +++ b/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/Capitalized/Capitalized.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/Capitalized/Capitalized.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'testproto/Capitalized/Capitalized.proto\x12\x0b\x43\x61pitalized\"\x12\n\x05lower\x12\t\n\x01\x61\x18\x01 \x01(\x03\"*\n\x05Upper\x12!\n\x05Lower\x18\x01 \x01(\x0b\x32\x12.Capitalized.lower\"+\n\x06lower2\x12!\n\x05upper\x18\x01 \x01(\x0b\x32\x12.Capitalized.Upperb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.Capitalized.Capitalized_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_LOWER']._serialized_start=56 + _globals['_LOWER']._serialized_end=74 + _globals['_UPPER']._serialized_start=76 + _globals['_UPPER']._serialized_end=118 + _globals['_LOWER2']._serialized_start=120 + _globals['_LOWER2']._serialized_end=163 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.pyi b/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.pyi new file mode 100644 index 00000000..828d26f2 --- /dev/null +++ b/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.pyi @@ -0,0 +1,66 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class lower(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: builtins.int + def __init__( + self, + *, + a: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... + +Global___lower: typing_extensions.TypeAlias = lower + +@typing.final +class Upper(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOWER_FIELD_NUMBER: builtins.int + @property + def Lower(self) -> Global___lower: ... + def __init__( + self, + *, + Lower: Global___lower | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["Lower", b"Lower"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["Lower", b"Lower"]) -> None: ... + +Global___Upper: typing_extensions.TypeAlias = Upper + +@typing.final +class lower2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + UPPER_FIELD_NUMBER: builtins.int + @property + def upper(self) -> Global___Upper: ... + def __init__( + self, + *, + upper: Global___Upper | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["upper", b"upper"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["upper", b"upper"]) -> None: ... + +Global___lower2: typing_extensions.TypeAlias = lower2 diff --git a/test/generated-sync-only/testproto/Capitalized/__init__.py b/test/generated-sync-only/testproto/Capitalized/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-sync-only/testproto/__init__.py b/test/generated-sync-only/testproto/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-sync-only/testproto/comment_special_chars_pb2.py b/test/generated-sync-only/testproto/comment_special_chars_pb2.py new file mode 100644 index 00000000..74655702 --- /dev/null +++ b/test/generated-sync-only/testproto/comment_special_chars_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/comment_special_chars.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/comment_special_chars.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%testproto/comment_special_chars.proto\x12\x15\x63omment_special_chars\"\x7f\n\x04Test\x12\t\n\x01\x61\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\t\x12\t\n\x01\x63\x18\x03 \x01(\t\x12\t\n\x01\x64\x18\x04 \x01(\t\x12\t\n\x01\x65\x18\x05 \x01(\t\x12\t\n\x01\x66\x18\x06 \x01(\t\x12\t\n\x01g\x18\x07 \x01(\t\x12\t\n\x01h\x18\x08 \x01(\t\x12\t\n\x01i\x18\t \x01(\t\x12\t\n\x01j\x18\n \x01(\t\x12\t\n\x01k\x18\x0b \x01(\tb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.comment_special_chars_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TEST']._serialized_start=64 + _globals['_TEST']._serialized_end=191 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/comment_special_chars_pb2.pyi b/test/generated-sync-only/testproto/comment_special_chars_pb2.pyi new file mode 100644 index 00000000..21823424 --- /dev/null +++ b/test/generated-sync-only/testproto/comment_special_chars_pb2.pyi @@ -0,0 +1,82 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Test(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + B_FIELD_NUMBER: builtins.int + C_FIELD_NUMBER: builtins.int + D_FIELD_NUMBER: builtins.int + E_FIELD_NUMBER: builtins.int + F_FIELD_NUMBER: builtins.int + G_FIELD_NUMBER: builtins.int + H_FIELD_NUMBER: builtins.int + I_FIELD_NUMBER: builtins.int + J_FIELD_NUMBER: builtins.int + K_FIELD_NUMBER: builtins.int + a: builtins.str + """Ending with " """ + b: builtins.str + """Ending with "" """ + c: builtins.str + """Ending with \"\"\" """ + d: builtins.str + """Ending with \\ """ + e: builtins.str + """Containing bad escape: \\x""" + f: builtins.str + """Containing \"\"\"" quadruple""" + g: builtins.str + """Containing \"\"\""" quintuple""" + h: builtins.str + """Containing \"\"\"\"\"\" sextuple""" + i: builtins.str + """\"\"\" Multiple \"\"\" triples \"\"\" """ + j: builtins.str + """"quotes" can be a problem in comments. + \"\"\"Triple quotes\"\"\" just as well + """ + k: builtins.str + """\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" + " " + " Super Duper comments with surrounding edges! " + " " + " Pay attention to me!!!! " + " " + \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" + """ + def __init__( + self, + *, + a: builtins.str = ..., + b: builtins.str = ..., + c: builtins.str = ..., + d: builtins.str = ..., + e: builtins.str = ..., + f: builtins.str = ..., + g: builtins.str = ..., + h: builtins.str = ..., + i: builtins.str = ..., + j: builtins.str = ..., + k: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.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: ... + +Global___Test: typing_extensions.TypeAlias = Test diff --git a/test/generated-sync-only/testproto/dot/__init__.py b/test/generated-sync-only/testproto/dot/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-sync-only/testproto/dot/com/__init__.py b/test/generated-sync-only/testproto/dot/com/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-sync-only/testproto/dot/com/test_pb2.py b/test/generated-sync-only/testproto/dot/com/test_pb2.py new file mode 100644 index 00000000..de4a85eb --- /dev/null +++ b/test/generated-sync-only/testproto/dot/com/test_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/dot.com/test.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/dot.com/test.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ctestproto/dot.com/test.proto\x12\x04test\"\x1a\n\x0bTestMessage\x12\x0b\n\x03\x66oo\x18\x01 \x01(\tb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.dot.com.test_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_TESTMESSAGE']._serialized_start=38 + _globals['_TESTMESSAGE']._serialized_end=64 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/dot/com/test_pb2.pyi b/test/generated-sync-only/testproto/dot/com/test_pb2.pyi new file mode 100644 index 00000000..bb7e86c1 --- /dev/null +++ b/test/generated-sync-only/testproto/dot/com/test_pb2.pyi @@ -0,0 +1,32 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class TestMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FOO_FIELD_NUMBER: builtins.int + foo: builtins.str + def __init__( + self, + *, + foo: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["foo", b"foo"]) -> None: ... + +Global___TestMessage: typing_extensions.TypeAlias = TestMessage diff --git a/test/generated-sync-only/testproto/edition2024_pb2.py b/test/generated-sync-only/testproto/edition2024_pb2.py new file mode 100644 index 00000000..40e73646 --- /dev/null +++ b/test/generated-sync-only/testproto/edition2024_pb2.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/edition2024.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/edition2024.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/edition2024.proto\x12\x04test\"\'\n\x16\x45\x64itions2024SubMessage\x12\r\n\x05thing\x18\x01 \x01(\t\"\xc3\x01\n\x10\x45\x64itions2024Test\x12\x15\n\x06legacy\x18\x01 \x01(\tB\x05\xaa\x01\x02\x08\x03\x12 \n\x11\x65xplicit_singular\x18\x02 \x01(\tB\x05\xaa\x01\x02\x08\x01\x12:\n\rmessage_field\x18\x03 \x01(\x0b\x32\x1c.test.Editions2024SubMessageB\x05\xaa\x01\x02\x08\x01\x12 \n\x11implicit_singular\x18\x04 \x01(\tB\x05\xaa\x01\x02\x08\x02\x12\x18\n\x10\x64\x65\x66\x61ult_singular\x18\x05 \x01(\tB\x05\x92\x03\x02 \x03\x62\x08\x65\x64itionsp\xe9\x07') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.edition2024_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\222\003\002 \003' + _globals['_EDITIONS2024TEST'].fields_by_name['legacy']._loaded_options = None + _globals['_EDITIONS2024TEST'].fields_by_name['legacy']._serialized_options = b'\252\001\002\010\003' + _globals['_EDITIONS2024TEST'].fields_by_name['explicit_singular']._loaded_options = None + _globals['_EDITIONS2024TEST'].fields_by_name['explicit_singular']._serialized_options = b'\252\001\002\010\001' + _globals['_EDITIONS2024TEST'].fields_by_name['message_field']._loaded_options = None + _globals['_EDITIONS2024TEST'].fields_by_name['message_field']._serialized_options = b'\252\001\002\010\001' + _globals['_EDITIONS2024TEST'].fields_by_name['implicit_singular']._loaded_options = None + _globals['_EDITIONS2024TEST'].fields_by_name['implicit_singular']._serialized_options = b'\252\001\002\010\002' + _globals['_EDITIONS2024SUBMESSAGE']._serialized_start=37 + _globals['_EDITIONS2024SUBMESSAGE']._serialized_end=76 + _globals['_EDITIONS2024TEST']._serialized_start=79 + _globals['_EDITIONS2024TEST']._serialized_end=274 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/edition2024_pb2.pyi b/test/generated-sync-only/testproto/edition2024_pb2.pyi new file mode 100644 index 00000000..6de2ba64 --- /dev/null +++ b/test/generated-sync-only/testproto/edition2024_pb2.pyi @@ -0,0 +1,68 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Edition version of proto2 file""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Editions2024SubMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + THING_FIELD_NUMBER: builtins.int + thing: builtins.str + def __init__( + self, + *, + thing: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["thing", b"thing"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["thing", b"thing"]) -> None: ... + +Global___Editions2024SubMessage: typing_extensions.TypeAlias = Editions2024SubMessage + +@typing.final +class Editions2024Test(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LEGACY_FIELD_NUMBER: builtins.int + EXPLICIT_SINGULAR_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_FIELD_NUMBER: builtins.int + IMPLICIT_SINGULAR_FIELD_NUMBER: builtins.int + DEFAULT_SINGULAR_FIELD_NUMBER: builtins.int + legacy: builtins.str + """Expect to be always set""" + explicit_singular: builtins.str + """Expect HasField generated""" + implicit_singular: builtins.str + """Expect implicit field presence, no HasField generated""" + default_singular: builtins.str + """Not set, should default to EXPLICIT""" + @property + def message_field(self) -> Global___Editions2024SubMessage: + """Expect HasField generated?""" + + def __init__( + self, + *, + legacy: builtins.str | None = ..., + explicit_singular: builtins.str | None = ..., + message_field: Global___Editions2024SubMessage | None = ..., + implicit_singular: builtins.str = ..., + default_singular: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> None: ... + +Global___Editions2024Test: typing_extensions.TypeAlias = Editions2024Test diff --git a/test/generated-sync-only/testproto/grpc/__init__.py b/test/generated-sync-only/testproto/grpc/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-sync-only/testproto/grpc/dummy_pb2.py b/test/generated-sync-only/testproto/grpc/dummy_pb2.py new file mode 100644 index 00000000..995862f4 --- /dev/null +++ b/test/generated-sync-only/testproto/grpc/dummy_pb2.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/grpc/dummy.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/grpc/dummy.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1atestproto/grpc/dummy.proto\x12\x05\x64ummy\"\x1d\n\x0c\x44ummyRequest\x12\r\n\x05value\x18\x01 \x01(\t\"\x1b\n\nDummyReply\x12\r\n\x05value\x18\x01 \x01(\t\".\n\x11\x44\x65precatedRequest\x12\x15\n\told_field\x18\x01 \x01(\tB\x02\x18\x01:\x02\x18\x01\x32\xfa\x01\n\x0c\x44ummyService\x12\x36\n\nUnaryUnary\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00\x12\x39\n\x0bUnaryStream\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00\x30\x01\x12\x39\n\x0bStreamUnary\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00(\x01\x12<\n\x0cStreamStream\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00(\x01\x30\x01\x32\xb3\x01\n\x11\x44\x65precatedService\x12\x44\n\x10\x44\x65precatedMethod\x12\x18.dummy.DeprecatedRequest\x1a\x11.dummy.DummyReply\"\x03\x88\x02\x01\x12S\n$DeprecatedMethodNotDeprecatedRequest\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x03\x88\x02\x01\x1a\x03\x88\x02\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.grpc.dummy_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_DEPRECATEDREQUEST'].fields_by_name['old_field']._loaded_options = None + _globals['_DEPRECATEDREQUEST'].fields_by_name['old_field']._serialized_options = b'\030\001' + _globals['_DEPRECATEDREQUEST']._loaded_options = None + _globals['_DEPRECATEDREQUEST']._serialized_options = b'\030\001' + _globals['_DEPRECATEDSERVICE']._loaded_options = None + _globals['_DEPRECATEDSERVICE']._serialized_options = b'\210\002\001' + _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethod']._loaded_options = None + _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethod']._serialized_options = b'\210\002\001' + _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethodNotDeprecatedRequest']._loaded_options = None + _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethodNotDeprecatedRequest']._serialized_options = b'\210\002\001' + _globals['_DUMMYREQUEST']._serialized_start=37 + _globals['_DUMMYREQUEST']._serialized_end=66 + _globals['_DUMMYREPLY']._serialized_start=68 + _globals['_DUMMYREPLY']._serialized_end=95 + _globals['_DEPRECATEDREQUEST']._serialized_start=97 + _globals['_DEPRECATEDREQUEST']._serialized_end=143 + _globals['_DUMMYSERVICE']._serialized_start=146 + _globals['_DUMMYSERVICE']._serialized_end=396 + _globals['_DEPRECATEDSERVICE']._serialized_start=399 + _globals['_DEPRECATEDSERVICE']._serialized_end=578 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/grpc/dummy_pb2.pyi b/test/generated-sync-only/testproto/grpc/dummy_pb2.pyi new file mode 100644 index 00000000..ce03f2a5 --- /dev/null +++ b/test/generated-sync-only/testproto/grpc/dummy_pb2.pyi @@ -0,0 +1,68 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class DummyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUE_FIELD_NUMBER: builtins.int + value: builtins.str + def __init__( + self, + *, + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... + +Global___DummyRequest: typing_extensions.TypeAlias = DummyRequest + +@typing.final +class DummyReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUE_FIELD_NUMBER: builtins.int + value: builtins.str + def __init__( + self, + *, + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... + +Global___DummyReply: typing_extensions.TypeAlias = DummyReply + +@deprecated("""This message has been marked as deprecated using proto message options.""") +@typing.final +class DeprecatedRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + OLD_FIELD_FIELD_NUMBER: builtins.int + old_field: builtins.str + def __init__( + self, + *, + old_field: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["old_field", b"old_field"]) -> None: ... + +Global___DeprecatedRequest: typing_extensions.TypeAlias = DeprecatedRequest diff --git a/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.py b/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.py new file mode 100644 index 00000000..eef0f7f6 --- /dev/null +++ b/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.py @@ -0,0 +1,353 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import warnings + +import grpc +from testproto.grpc import dummy_pb2 as testproto_dot_grpc_dot_dummy__pb2 + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in testproto/grpc/dummy_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) + + +class DummyServiceStub(object): + """DummyService + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UnaryUnary = channel.unary_unary( + '/dummy.DummyService/UnaryUnary', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + self.UnaryStream = channel.unary_stream( + '/dummy.DummyService/UnaryStream', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + self.StreamUnary = channel.stream_unary( + '/dummy.DummyService/StreamUnary', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + self.StreamStream = channel.stream_stream( + '/dummy.DummyService/StreamStream', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + + +class DummyServiceServicer(object): + """DummyService + """ + + def UnaryUnary(self, request, context): + """UnaryUnary + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UnaryStream(self, request, context): + """UnaryStream + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StreamUnary(self, request_iterator, context): + """StreamUnary + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StreamStream(self, request_iterator, context): + """StreamStream + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DummyServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UnaryUnary': grpc.unary_unary_rpc_method_handler( + servicer.UnaryUnary, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + 'UnaryStream': grpc.unary_stream_rpc_method_handler( + servicer.UnaryStream, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + 'StreamUnary': grpc.stream_unary_rpc_method_handler( + servicer.StreamUnary, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + 'StreamStream': grpc.stream_stream_rpc_method_handler( + servicer.StreamStream, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'dummy.DummyService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('dummy.DummyService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class DummyService(object): + """DummyService + """ + + @staticmethod + def UnaryUnary(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dummy.DummyService/UnaryUnary', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UnaryStream(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream( + request, + target, + '/dummy.DummyService/UnaryStream', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def StreamUnary(request_iterator, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.stream_unary( + request_iterator, + target, + '/dummy.DummyService/StreamUnary', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def StreamStream(request_iterator, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.stream_stream( + request_iterator, + target, + '/dummy.DummyService/StreamStream', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + +class DeprecatedServiceStub(object): + """Marking the service as deprecated + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.DeprecatedMethod = channel.unary_unary( + '/dummy.DeprecatedService/DeprecatedMethod', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + self.DeprecatedMethodNotDeprecatedRequest = channel.unary_unary( + '/dummy.DeprecatedService/DeprecatedMethodNotDeprecatedRequest', + request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + _registered_method=True) + + +class DeprecatedServiceServicer(object): + """Marking the service as deprecated + """ + + def DeprecatedMethod(self, request, context): + """DeprecatedMethod + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def DeprecatedMethodNotDeprecatedRequest(self, request, context): + """DeprecatedMethodNotDeprecatedRequest + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_DeprecatedServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'DeprecatedMethod': grpc.unary_unary_rpc_method_handler( + servicer.DeprecatedMethod, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + 'DeprecatedMethodNotDeprecatedRequest': grpc.unary_unary_rpc_method_handler( + servicer.DeprecatedMethodNotDeprecatedRequest, + request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, + response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'dummy.DeprecatedService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('dummy.DeprecatedService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class DeprecatedService(object): + """Marking the service as deprecated + """ + + @staticmethod + def DeprecatedMethod(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dummy.DeprecatedService/DeprecatedMethod', + testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def DeprecatedMethodNotDeprecatedRequest(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/dummy.DeprecatedService/DeprecatedMethodNotDeprecatedRequest', + testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, + testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.pyi new file mode 100644 index 00000000..bb0a6430 --- /dev/null +++ b/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.pyi @@ -0,0 +1,133 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" + +import abc +import collections.abc +import grpc +import sys +import testproto.grpc.dummy_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str +_DummyServiceUnaryUnaryType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +_DummyServiceUnaryStreamType: typing_extensions.TypeAlias = grpc.UnaryStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +_DummyServiceStreamUnaryType: typing_extensions.TypeAlias = grpc.StreamUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +_DummyServiceStreamStreamType: typing_extensions.TypeAlias = grpc.StreamStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +class DummyServiceStub: + """DummyService""" + + UnaryUnary: _DummyServiceUnaryUnaryType + """UnaryUnary""" + + UnaryStream: _DummyServiceUnaryStreamType + """UnaryStream""" + + StreamUnary: _DummyServiceStreamUnaryType + """StreamUnary""" + + StreamStream: _DummyServiceStreamStreamType + """StreamStream""" + +class DummyServiceServicer(metaclass=abc.ABCMeta): + """DummyService""" + + @abc.abstractmethod + def UnaryUnary( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.DummyReply: + """UnaryUnary""" + + @abc.abstractmethod + def UnaryStream( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.ServicerContext, + ) -> collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyReply]: + """UnaryStream""" + + @abc.abstractmethod + def StreamUnary( + self, + request_iterator: collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyRequest], + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.DummyReply: + """StreamUnary""" + + @abc.abstractmethod + def StreamStream( + self, + request_iterator: collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyRequest], + context: grpc.ServicerContext, + ) -> collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyReply]: + """StreamStream""" + +def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: grpc.Server) -> None: ... + +_DeprecatedServiceDeprecatedMethodType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DeprecatedRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +_DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, +] +@deprecated("""This service is deprecated""") +class DeprecatedServiceStub: + """Marking the service as deprecated""" + + DeprecatedMethod: _DeprecatedServiceDeprecatedMethodType + """DeprecatedMethod""" + + DeprecatedMethodNotDeprecatedRequest: _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType + """DeprecatedMethodNotDeprecatedRequest""" + +@deprecated("""This service is deprecated""") +class DeprecatedServiceServicer(metaclass=abc.ABCMeta): + """Marking the service as deprecated""" + + @abc.abstractmethod + def DeprecatedMethod( + self, + request: testproto.grpc.dummy_pb2.DeprecatedRequest, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.DummyReply: + """DeprecatedMethod""" + + @abc.abstractmethod + def DeprecatedMethodNotDeprecatedRequest( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.DummyReply: + """DeprecatedMethodNotDeprecatedRequest""" + +@deprecated("""This service is deprecated""") +def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: grpc.Server) -> None: ... diff --git a/test/generated-sync-only/testproto/grpc/import_pb2.py b/test/generated-sync-only/testproto/grpc/import_pb2.py new file mode 100644 index 00000000..61cc5689 --- /dev/null +++ b/test/generated-sync-only/testproto/grpc/import_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/grpc/import.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/grpc/import.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test_pb2 as testproto_dot_test__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/grpc/import.proto\x12\ttest.grpc\x1a\x14testproto/test.proto\x1a\x1bgoogle/protobuf/empty.proto2\xb4\x01\n\rSimpleService\x12\x35\n\nUnaryUnary\x12\x16.google.protobuf.Empty\x1a\r.test.Simple1\"\x00\x12\x36\n\x0bUnaryStream\x12\r.test.Simple1\x1a\x16.google.protobuf.Empty\"\x00\x12\x34\n\tNoComment\x12\r.test.Simple1\x1a\x16.google.protobuf.Empty\"\x00') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.grpc.import_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SIMPLESERVICE']._serialized_start=94 + _globals['_SIMPLESERVICE']._serialized_end=274 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/grpc/import_pb2.pyi b/test/generated-sync-only/testproto/grpc/import_pb2.pyi new file mode 100644 index 00000000..dd854e28 --- /dev/null +++ b/test/generated-sync-only/testproto/grpc/import_pb2.pyi @@ -0,0 +1,8 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import google.protobuf.descriptor + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated-sync-only/testproto/grpc/import_pb2_grpc.py b/test/generated-sync-only/testproto/grpc/import_pb2_grpc.py new file mode 100644 index 00000000..0a09fd20 --- /dev/null +++ b/test/generated-sync-only/testproto/grpc/import_pb2_grpc.py @@ -0,0 +1,189 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import warnings + +import grpc +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from testproto import test_pb2 as testproto_dot_test__pb2 + +GRPC_GENERATED_VERSION = '1.76.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + ' but the generated code in testproto/grpc/import_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) + + +class SimpleServiceStub(object): + """SimpleService + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.UnaryUnary = channel.unary_unary( + '/test.grpc.SimpleService/UnaryUnary', + request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + response_deserializer=testproto_dot_test__pb2.Simple1.FromString, + _registered_method=True) + self.UnaryStream = channel.unary_unary( + '/test.grpc.SimpleService/UnaryStream', + request_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + _registered_method=True) + self.NoComment = channel.unary_unary( + '/test.grpc.SimpleService/NoComment', + request_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + _registered_method=True) + + +class SimpleServiceServicer(object): + """SimpleService + """ + + def UnaryUnary(self, request, context): + """UnaryUnary + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def UnaryStream(self, request, context): + """UnaryStream + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def NoComment(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_SimpleServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'UnaryUnary': grpc.unary_unary_rpc_method_handler( + servicer.UnaryUnary, + request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + response_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, + ), + 'UnaryStream': grpc.unary_unary_rpc_method_handler( + servicer.UnaryStream, + request_deserializer=testproto_dot_test__pb2.Simple1.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + ), + 'NoComment': grpc.unary_unary_rpc_method_handler( + servicer.NoComment, + request_deserializer=testproto_dot_test__pb2.Simple1.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'test.grpc.SimpleService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('test.grpc.SimpleService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class SimpleService(object): + """SimpleService + """ + + @staticmethod + def UnaryUnary(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/test.grpc.SimpleService/UnaryUnary', + google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + testproto_dot_test__pb2.Simple1.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def UnaryStream(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/test.grpc.SimpleService/UnaryStream', + testproto_dot_test__pb2.Simple1.SerializeToString, + google_dot_protobuf_dot_empty__pb2.Empty.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def NoComment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/test.grpc.SimpleService/NoComment', + testproto_dot_test__pb2.Simple1.SerializeToString, + google_dot_protobuf_dot_empty__pb2.Empty.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/test/generated-sync-only/testproto/grpc/import_pb2_grpc.pyi b/test/generated-sync-only/testproto/grpc/import_pb2_grpc.pyi new file mode 100644 index 00000000..4c123e06 --- /dev/null +++ b/test/generated-sync-only/testproto/grpc/import_pb2_grpc.pyi @@ -0,0 +1,71 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import google.protobuf.empty_pb2 +import grpc +import sys +import testproto.test_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str +_SimpleServiceUnaryUnaryType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ + google.protobuf.empty_pb2.Empty, + testproto.test_pb2.Simple1, +] +_SimpleServiceUnaryStreamType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, +] +_SimpleServiceNoCommentType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, +] +class SimpleServiceStub: + """SimpleService""" + + UnaryUnary: _SimpleServiceUnaryUnaryType + """UnaryUnary""" + + UnaryStream: _SimpleServiceUnaryStreamType + """UnaryStream""" + + NoComment: _SimpleServiceNoCommentType + +class SimpleServiceServicer(metaclass=abc.ABCMeta): + """SimpleService""" + + @abc.abstractmethod + def UnaryUnary( + self, + request: google.protobuf.empty_pb2.Empty, + context: grpc.ServicerContext, + ) -> testproto.test_pb2.Simple1: + """UnaryUnary""" + + @abc.abstractmethod + def UnaryStream( + self, + request: testproto.test_pb2.Simple1, + context: grpc.ServicerContext, + ) -> google.protobuf.empty_pb2.Empty: + """UnaryStream""" + + @abc.abstractmethod + def NoComment( + self, + request: testproto.test_pb2.Simple1, + context: grpc.ServicerContext, + ) -> google.protobuf.empty_pb2.Empty: ... + +def add_SimpleServiceServicer_to_server(servicer: SimpleServiceServicer, server: grpc.Server) -> None: ... diff --git a/test/generated-sync-only/testproto/inner/__init__.py b/test/generated-sync-only/testproto/inner/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-sync-only/testproto/inner/inner_pb2.py b/test/generated-sync-only/testproto/inner/inner_pb2.py new file mode 100644 index 00000000..fa5eac66 --- /dev/null +++ b/test/generated-sync-only/testproto/inner/inner_pb2.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/inner/inner.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/inner/inner.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test3_pb2 as testproto_dot_test3__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/inner/inner.proto\x12\x05inner\x1a\x15testproto/test3.proto\"$\n\x05Inner\x12\x1b\n\x01\x61\x18\x01 \x01(\x0e\x32\x10.test3.OuterEnumb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.inner.inner_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_INNER']._serialized_start=61 + _globals['_INNER']._serialized_end=97 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/inner/inner_pb2.pyi b/test/generated-sync-only/testproto/inner/inner_pb2.pyi new file mode 100644 index 00000000..dc705d20 --- /dev/null +++ b/test/generated-sync-only/testproto/inner/inner_pb2.pyi @@ -0,0 +1,33 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Inner(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: testproto.test3_pb2.OuterEnum.ValueType + def __init__( + self, + *, + a: testproto.test3_pb2.OuterEnum.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... + +Global___Inner: typing_extensions.TypeAlias = Inner diff --git a/test/generated-sync-only/testproto/nested/__init__.py b/test/generated-sync-only/testproto/nested/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated-sync-only/testproto/nested/nested_pb2.py b/test/generated-sync-only/testproto/nested/nested_pb2.py new file mode 100644 index 00000000..4e269210 --- /dev/null +++ b/test/generated-sync-only/testproto/nested/nested_pb2.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/nested/nested.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/nested/nested.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test3_pb2 as testproto_dot_test3__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dtestproto/nested/nested.proto\x12\x13test.nested_package\x1a\x15testproto/test3.proto\"%\n\x06Nested\x12\x1b\n\x01\x61\x18\x01 \x01(\x0e\x32\x10.test3.OuterEnum\"\xac\x02\n\rAnotherNested\x1a\xed\x01\n\rNestedMessage\x12\t\n\x01s\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\x08\x12\x39\n\x02ne\x18\x03 \x01(\x0e\x32-.test.nested_package.AnotherNested.NestedEnum\x12I\n\x03ne2\x18\x04 \x01(\x0e\x32<.test.nested_package.AnotherNested.NestedMessage.NestedEnum2\"@\n\x0bNestedEnum2\x12\r\n\tUNDEFINED\x10\x00\x12\x10\n\x0cNESTED_ENUM1\x10\x01\x12\x10\n\x0cNESTED_ENUM2\x10\x02\"+\n\nNestedEnum\x12\x0b\n\x07INVALID\x10\x00\x12\x07\n\x03ONE\x10\x01\x12\x07\n\x03TWO\x10\x02\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.nested.nested_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_NESTED']._serialized_start=77 + _globals['_NESTED']._serialized_end=114 + _globals['_ANOTHERNESTED']._serialized_start=117 + _globals['_ANOTHERNESTED']._serialized_end=417 + _globals['_ANOTHERNESTED_NESTEDMESSAGE']._serialized_start=135 + _globals['_ANOTHERNESTED_NESTEDMESSAGE']._serialized_end=372 + _globals['_ANOTHERNESTED_NESTEDMESSAGE_NESTEDENUM2']._serialized_start=308 + _globals['_ANOTHERNESTED_NESTEDMESSAGE_NESTEDENUM2']._serialized_end=372 + _globals['_ANOTHERNESTED_NESTEDENUM']._serialized_start=374 + _globals['_ANOTHERNESTED_NESTEDENUM']._serialized_end=417 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/nested/nested_pb2.pyi b/test/generated-sync-only/testproto/nested/nested_pb2.pyi new file mode 100644 index 00000000..e382df0a --- /dev/null +++ b/test/generated-sync-only/testproto/nested/nested_pb2.pyi @@ -0,0 +1,96 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Nested(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: testproto.test3_pb2.OuterEnum.ValueType + def __init__( + self, + *, + a: testproto.test3_pb2.OuterEnum.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... + +Global___Nested: typing_extensions.TypeAlias = Nested + +@typing.final +class AnotherNested(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _NestedEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _NestedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested._NestedEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID: AnotherNested._NestedEnum.ValueType # 0 + ONE: AnotherNested._NestedEnum.ValueType # 1 + TWO: AnotherNested._NestedEnum.ValueType # 2 + + class NestedEnum(_NestedEnum, metaclass=_NestedEnumEnumTypeWrapper): ... + INVALID: AnotherNested.NestedEnum.ValueType # 0 + ONE: AnotherNested.NestedEnum.ValueType # 1 + TWO: AnotherNested.NestedEnum.ValueType # 2 + + @typing.final + class NestedMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _NestedEnum2: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _NestedEnum2EnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested.NestedMessage._NestedEnum2.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNDEFINED: AnotherNested.NestedMessage._NestedEnum2.ValueType # 0 + NESTED_ENUM1: AnotherNested.NestedMessage._NestedEnum2.ValueType # 1 + NESTED_ENUM2: AnotherNested.NestedMessage._NestedEnum2.ValueType # 2 + + class NestedEnum2(_NestedEnum2, metaclass=_NestedEnum2EnumTypeWrapper): ... + UNDEFINED: AnotherNested.NestedMessage.NestedEnum2.ValueType # 0 + NESTED_ENUM1: AnotherNested.NestedMessage.NestedEnum2.ValueType # 1 + NESTED_ENUM2: AnotherNested.NestedMessage.NestedEnum2.ValueType # 2 + + S_FIELD_NUMBER: builtins.int + B_FIELD_NUMBER: builtins.int + NE_FIELD_NUMBER: builtins.int + NE2_FIELD_NUMBER: builtins.int + s: builtins.str + b: builtins.bool + ne: Global___AnotherNested.NestedEnum.ValueType + ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType + def __init__( + self, + *, + s: builtins.str = ..., + b: builtins.bool = ..., + ne: Global___AnotherNested.NestedEnum.ValueType = ..., + ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["b", b"b", "ne", b"ne", "ne2", b"ne2", "s", b"s"]) -> None: ... + + def __init__( + self, + ) -> None: ... + +Global___AnotherNested: typing_extensions.TypeAlias = AnotherNested diff --git a/test/generated-sync-only/testproto/nopackage_pb2.py b/test/generated-sync-only/testproto/nopackage_pb2.py new file mode 100644 index 00000000..25e501fb --- /dev/null +++ b/test/generated-sync-only/testproto/nopackage_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/nopackage.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/nopackage.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19testproto/nopackage.proto\"\x0b\n\tNoPackage\"@\n\nNoPackage2\x12\x16\n\x02np\x18\x01 \x01(\x0b\x32\n.NoPackage\x12\x1a\n\x06np_rep\x18\x02 \x03(\x0b\x32\n.NoPackageb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.nopackage_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_NOPACKAGE']._serialized_start=29 + _globals['_NOPACKAGE']._serialized_end=40 + _globals['_NOPACKAGE2']._serialized_start=42 + _globals['_NOPACKAGE2']._serialized_end=106 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/nopackage_pb2.pyi b/test/generated-sync-only/testproto/nopackage_pb2.pyi new file mode 100644 index 00000000..7925439c --- /dev/null +++ b/test/generated-sync-only/testproto/nopackage_pb2.pyi @@ -0,0 +1,52 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class NoPackage(google.protobuf.message.Message): + """Intentionally don't set a package - just to make sure we can handle it.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___NoPackage: typing_extensions.TypeAlias = NoPackage + +@typing.final +class NoPackage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NP_FIELD_NUMBER: builtins.int + NP_REP_FIELD_NUMBER: builtins.int + @property + def np(self) -> Global___NoPackage: ... + @property + def np_rep(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NoPackage]: ... + def __init__( + self, + *, + np: Global___NoPackage | None = ..., + np_rep: collections.abc.Iterable[Global___NoPackage] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["np", b"np"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["np", b"np", "np_rep", b"np_rep"]) -> None: ... + +Global___NoPackage2: typing_extensions.TypeAlias = NoPackage2 diff --git a/test/generated-sync-only/testproto/readme_enum_pb2.py b/test/generated-sync-only/testproto/readme_enum_pb2.py new file mode 100644 index 00000000..bfce5038 --- /dev/null +++ b/test/generated-sync-only/testproto/readme_enum_pb2.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/readme_enum.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/readme_enum.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/readme_enum.proto\x12\x04test*\x1e\n\x06MyEnum\x12\t\n\x05HELLO\x10\x00\x12\t\n\x05WORLD\x10\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.readme_enum_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_MYENUM']._serialized_start=37 + _globals['_MYENUM']._serialized_end=67 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/readme_enum_pb2.pyi b/test/generated-sync-only/testproto/readme_enum_pb2.pyi new file mode 100644 index 00000000..be8369c4 --- /dev/null +++ b/test/generated-sync-only/testproto/readme_enum_pb2.pyi @@ -0,0 +1,32 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _MyEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _MyEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MyEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + HELLO: _MyEnum.ValueType # 0 + WORLD: _MyEnum.ValueType # 1 + +class MyEnum(_MyEnum, metaclass=_MyEnumEnumTypeWrapper): ... + +HELLO: MyEnum.ValueType # 0 +WORLD: MyEnum.ValueType # 1 +Global___MyEnum: typing_extensions.TypeAlias = MyEnum diff --git a/test/generated-sync-only/testproto/reexport_pb2.py b/test/generated-sync-only/testproto/reexport_pb2.py new file mode 100644 index 00000000..bebe651b --- /dev/null +++ b/test/generated-sync-only/testproto/reexport_pb2.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/reexport.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/reexport.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test3_pb2 as testproto_dot_test3__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from testproto.inner import inner_pb2 as testproto_dot_inner_dot_inner__pb2 + +from testproto.test3_pb2 import * +from google.protobuf.empty_pb2 import * + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18testproto/reexport.proto\x12\x05test3\x1a\x15testproto/test3.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1btestproto/inner/inner.protoP\x00P\x01\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.reexport_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/reexport_pb2.pyi b/test/generated-sync-only/testproto/reexport_pb2.pyi new file mode 100644 index 00000000..9702c2bd --- /dev/null +++ b/test/generated-sync-only/testproto/reexport_pb2.pyi @@ -0,0 +1,19 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import google.protobuf.descriptor +from google.protobuf.empty_pb2 import ( + Empty as Empty, +) +from testproto.test3_pb2 import ( + BAR3 as BAR3, + FOO3 as FOO3, + OuterEnum as OuterEnum, + OuterMessage3 as OuterMessage3, + SimpleProto3 as SimpleProto3, + UNKNOWN as UNKNOWN, +) + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated-sync-only/testproto/test3_pb2.py b/test/generated-sync-only/testproto/test3_pb2.py new file mode 100644 index 00000000..3b164270 --- /dev/null +++ b/test/generated-sync-only/testproto/test3_pb2.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test3.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test3.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from mypy_protobuf import extensions_pb2 as mypy__protobuf_dot_extensions__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15testproto/test3.proto\x12\x05test3\x1a\x1emypy_protobuf/extensions.proto\"!\n\rOuterMessage3\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\"\xb3\t\n\x0cSimpleProto3\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\x12\x19\n\x11\x61_repeated_string\x18\x02 \x03(\t\x12&\n\x0c\x61_outer_enum\x18\x03 \x01(\x0e\x32\x10.test3.OuterEnum\x12+\n\router_message\x18\x04 \x01(\x0b\x32\x14.test3.OuterMessage3\x12\x31\n\ninner_enum\x18\x0f \x01(\x0e\x32\x1d.test3.SimpleProto3.InnerEnum\x12\x13\n\ta_oneof_1\x18\x05 \x01(\tH\x00\x12\x13\n\ta_oneof_2\x18\x06 \x01(\tH\x00\x12\x36\n\x16outer_message_in_oneof\x18\x0c \x01(\x0b\x32\x14.test3.OuterMessage3H\x00\x12/\n\x13outer_enum_in_oneof\x18\r \x01(\x0e\x32\x10.test3.OuterEnumH\x00\x12<\n\x13inner_enum_in_oneof\x18\x0e \x01(\x0e\x32\x1d.test3.SimpleProto3.InnerEnumH\x00\x12\x13\n\tb_oneof_1\x18\x07 \x01(\tH\x01\x12\x13\n\tb_oneof_2\x18\x08 \x01(\tH\x01\x12\"\n\x04\x62ool\x18\t \x01(\x0b\x32\x14.test3.OuterMessage3\x12#\n\tOuterEnum\x18\n \x01(\x0e\x32\x10.test3.OuterEnum\x12+\n\rOuterMessage3\x18\x0b \x01(\x0b\x32\x14.test3.OuterMessage3\x12\x36\n\nmap_scalar\x18\x10 \x03(\x0b\x32\".test3.SimpleProto3.MapScalarEntry\x12\x38\n\x0bmap_message\x18\x11 \x03(\x0b\x32#.test3.SimpleProto3.MapMessageEntry\x12\x1f\n\x12\x61n_optional_string\x18\x12 \x01(\tH\x02\x88\x01\x01\x12\x35\n\x07user_id\x18\x13 \x01(\rB$\x92H!\n\x1ftest/test_generated_mypy.UserId\x12\x32\n\x05\x65mail\x18\x14 \x01(\tB#\x92H \n\x1etest/test_generated_mypy.Email\x12\x7f\n\x0c\x65mail_by_uid\x18\x15 \x03(\x0b\x32#.test3.SimpleProto3.EmailByUidEntryBD\x92HA\x12\x1ftest/test_generated_mypy.UserId\x1a\x1etest/test_generated_mypy.Email\x1a\x30\n\x0eMapScalarEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aG\n\x0fMapMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.test3.OuterMessage3:\x02\x38\x01\x1a\x31\n\x0f\x45mailByUidEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"#\n\tInnerEnum\x12\n\n\x06INNER1\x10\x00\x12\n\n\x06INNER2\x10\x01\x42\t\n\x07\x61_oneofB\t\n\x07\x62_oneofB\x15\n\x13_an_optional_string*,\n\tOuterEnum\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x46OO3\x10\x01\x12\x08\n\x04\x42\x41R3\x10\x02\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test3_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._loaded_options = None + _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_options = b'8\001' + _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._loaded_options = None + _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_options = b'8\001' + _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._loaded_options = None + _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_options = b'8\001' + _globals['_SIMPLEPROTO3'].fields_by_name['user_id']._loaded_options = None + _globals['_SIMPLEPROTO3'].fields_by_name['user_id']._serialized_options = b'\222H!\n\037test/test_generated_mypy.UserId' + _globals['_SIMPLEPROTO3'].fields_by_name['email']._loaded_options = None + _globals['_SIMPLEPROTO3'].fields_by_name['email']._serialized_options = b'\222H \n\036test/test_generated_mypy.Email' + _globals['_SIMPLEPROTO3'].fields_by_name['email_by_uid']._loaded_options = None + _globals['_SIMPLEPROTO3'].fields_by_name['email_by_uid']._serialized_options = b'\222HA\022\037test/test_generated_mypy.UserId\032\036test/test_generated_mypy.Email' + _globals['_OUTERENUM']._serialized_start=1305 + _globals['_OUTERENUM']._serialized_end=1349 + _globals['_OUTERMESSAGE3']._serialized_start=64 + _globals['_OUTERMESSAGE3']._serialized_end=97 + _globals['_SIMPLEPROTO3']._serialized_start=100 + _globals['_SIMPLEPROTO3']._serialized_end=1303 + _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_start=1049 + _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_end=1097 + _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_start=1099 + _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_end=1170 + _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_start=1172 + _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_end=1221 + _globals['_SIMPLEPROTO3_INNERENUM']._serialized_start=1223 + _globals['_SIMPLEPROTO3_INNERENUM']._serialized_end=1258 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test3_pb2.pyi b/test/generated-sync-only/testproto/test3_pb2.pyi new file mode 100644 index 00000000..f239d860 --- /dev/null +++ b/test/generated-sync-only/testproto/test3_pb2.pyi @@ -0,0 +1,209 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +package test3""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import test.test_generated_mypy +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _OuterEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNKNOWN: _OuterEnum.ValueType # 0 + FOO3: _OuterEnum.ValueType # 1 + BAR3: _OuterEnum.ValueType # 2 + +class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): ... + +UNKNOWN: OuterEnum.ValueType # 0 +FOO3: OuterEnum.ValueType # 1 +BAR3: OuterEnum.ValueType # 2 +Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum + +@typing.final +class OuterMessage3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___OuterMessage3: typing_extensions.TypeAlias = OuterMessage3 + +@typing.final +class SimpleProto3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _InnerEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SimpleProto3._InnerEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INNER1: SimpleProto3._InnerEnum.ValueType # 0 + INNER2: SimpleProto3._InnerEnum.ValueType # 1 + + class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): ... + INNER1: SimpleProto3.InnerEnum.ValueType # 0 + INNER2: SimpleProto3.InnerEnum.ValueType # 1 + + @typing.final + class MapScalarEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing.final + class MapMessageEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + @property + def value(self) -> Global___OuterMessage3: ... + def __init__( + self, + *, + key: builtins.int = ..., + value: Global___OuterMessage3 | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing.final + class EmailByUidEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + A_STRING_FIELD_NUMBER: builtins.int + A_REPEATED_STRING_FIELD_NUMBER: builtins.int + A_OUTER_ENUM_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_FIELD_NUMBER: builtins.int + INNER_ENUM_FIELD_NUMBER: builtins.int + A_ONEOF_1_FIELD_NUMBER: builtins.int + A_ONEOF_2_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int + OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + B_ONEOF_1_FIELD_NUMBER: builtins.int + B_ONEOF_2_FIELD_NUMBER: builtins.int + BOOL_FIELD_NUMBER: builtins.int + OUTERENUM_FIELD_NUMBER: builtins.int + OUTERMESSAGE3_FIELD_NUMBER: builtins.int + MAP_SCALAR_FIELD_NUMBER: builtins.int + MAP_MESSAGE_FIELD_NUMBER: builtins.int + AN_OPTIONAL_STRING_FIELD_NUMBER: builtins.int + USER_ID_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + EMAIL_BY_UID_FIELD_NUMBER: builtins.int + a_string: builtins.str + a_outer_enum: Global___OuterEnum.ValueType + inner_enum: Global___SimpleProto3.InnerEnum.ValueType + a_oneof_1: builtins.str + a_oneof_2: builtins.str + outer_enum_in_oneof: Global___OuterEnum.ValueType + inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType + b_oneof_1: builtins.str + b_oneof_2: builtins.str + OuterEnum: Global___OuterEnum.ValueType + """Test having fieldname match messagename""" + an_optional_string: builtins.str + user_id: test.test_generated_mypy.UserId + email: test.test_generated_mypy.Email + @property + def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def outer_message(self) -> Global___OuterMessage3: ... + @property + def outer_message_in_oneof(self) -> Global___OuterMessage3: ... + @property + def bool(self) -> Global___OuterMessage3: ... + @property + def OuterMessage3(self) -> Global___OuterMessage3: ... + @property + def map_scalar(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.str]: + """Test generation of map""" + + @property + def map_message(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, Global___OuterMessage3]: ... + @property + def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... + def __init__( + self, + *, + a_string: builtins.str = ..., + a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., + a_outer_enum: Global___OuterEnum.ValueType = ..., + outer_message: Global___OuterMessage3 | None = ..., + inner_enum: Global___SimpleProto3.InnerEnum.ValueType = ..., + a_oneof_1: builtins.str = ..., + a_oneof_2: builtins.str = ..., + outer_message_in_oneof: Global___OuterMessage3 | None = ..., + outer_enum_in_oneof: Global___OuterEnum.ValueType = ..., + inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType = ..., + b_oneof_1: builtins.str = ..., + b_oneof_2: builtins.str = ..., + bool: Global___OuterMessage3 | None = ..., + OuterEnum: Global___OuterEnum.ValueType = ..., + OuterMessage3: Global___OuterMessage3 | None = ..., + map_scalar: collections.abc.Mapping[builtins.int, builtins.str] | None = ..., + map_message: collections.abc.Mapping[builtins.int, Global___OuterMessage3] | None = ..., + an_optional_string: builtins.str | None = ..., + user_id: test.test_generated_mypy.UserId = ..., + email: test.test_generated_mypy.Email = ..., + email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "inner_enum_in_oneof", b"inner_enum_in_oneof", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["OuterEnum", b"OuterEnum", "OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_outer_enum", b"a_outer_enum", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "map_message", b"map_message", "map_scalar", b"map_scalar", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["_an_optional_string", b"_an_optional_string"]) -> typing.Literal["an_optional_string"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["a_oneof", b"a_oneof"]) -> typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal["b_oneof", b"b_oneof"]) -> typing.Literal["b_oneof_1", "b_oneof_2"] | None: ... + +Global___SimpleProto3: typing_extensions.TypeAlias = SimpleProto3 diff --git a/test/generated-sync-only/testproto/test_extensions2_pb2.py b/test/generated-sync-only/testproto/test_extensions2_pb2.py new file mode 100644 index 00000000..58c277cb --- /dev/null +++ b/test/generated-sync-only/testproto/test_extensions2_pb2.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test_extensions2.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test_extensions2.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from testproto import test_pb2 as testproto_dot_test__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n testproto/test_extensions2.proto\x12\x04test\x1a\x14testproto/test.proto\"_\n\x15SeparateFileExtension\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x08\x32\x38\n\x03\x65xt\x12\r.test.Simple2\x18\xe9\x07 \x01(\x0b\x32\x1b.test.SeparateFileExtension') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_extensions2_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SEPARATEFILEEXTENSION']._serialized_start=64 + _globals['_SEPARATEFILEEXTENSION']._serialized_end=159 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test_extensions2_pb2.pyi b/test/generated-sync-only/testproto/test_extensions2_pb2.pyi new file mode 100644 index 00000000..b8e9f652 --- /dev/null +++ b/test/generated-sync-only/testproto/test_extensions2_pb2.pyi @@ -0,0 +1,37 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import testproto.test_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class SeparateFileExtension(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FLAG_FIELD_NUMBER: builtins.int + flag: builtins.bool + EXT_FIELD_NUMBER: builtins.int + ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[testproto.test_pb2.Simple2, Global___SeparateFileExtension] + def __init__( + self, + *, + flag: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["flag", b"flag"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["flag", b"flag"]) -> None: ... + +Global___SeparateFileExtension: typing_extensions.TypeAlias = SeparateFileExtension diff --git a/test/generated-sync-only/testproto/test_extensions3_pb2.py b/test/generated-sync-only/testproto/test_extensions3_pb2.py new file mode 100644 index 00000000..4bc39093 --- /dev/null +++ b/test/generated-sync-only/testproto/test_extensions3_pb2.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test_extensions3.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test_extensions3.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 +from testproto import test3_pb2 as testproto_dot_test3__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n testproto/test_extensions3.proto\x12\x05test3\x1a google/protobuf/descriptor.proto\x1a\x15testproto/test3.proto\"\x91\x01\n\x15MessageOptionsTestMsg:x\x92\x82\x19\x0cHello world!\x9a\x82\x19\x01\x41\x9a\x82\x19\x01\x42\x9a\x82\x19\x01\x43\xa0\x82\x19\x01\xaa\x82\x19\x02\x01\x02\xb2\x82\x19\x15\n\x13Hello OuterMessage3\xba\x82\x19\x17\n\x15Hello OuterMessage3 A\xba\x82\x19\x17\n\x15Hello OuterMessage3 B:=\n\x14test_field_extension\x12\x1d.google.protobuf.FieldOptions\x18\xd0\x86\x03 \x01(\t:8\n\rscalar_option\x12\x1f.google.protobuf.MessageOptions\x18\xa2\x90\x03 \x01(\t:A\n\x16repeated_scalar_option\x12\x1f.google.protobuf.MessageOptions\x18\xa3\x90\x03 \x03(\t:H\n\x0b\x65num_option\x12\x1f.google.protobuf.MessageOptions\x18\xa4\x90\x03 \x01(\x0e\x32\x10.test3.OuterEnum:Q\n\x14repeated_enum_option\x12\x1f.google.protobuf.MessageOptions\x18\xa5\x90\x03 \x03(\x0e\x32\x10.test3.OuterEnum:K\n\nmsg_option\x12\x1f.google.protobuf.MessageOptions\x18\xa6\x90\x03 \x01(\x0b\x32\x14.test3.OuterMessage3:T\n\x13repeated_msg_option\x12\x1f.google.protobuf.MessageOptions\x18\xa7\x90\x03 \x03(\x0b\x32\x14.test3.OuterMessage3b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_extensions3_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_MESSAGEOPTIONSTESTMSG']._loaded_options = None + _globals['_MESSAGEOPTIONSTESTMSG']._serialized_options = b'\222\202\031\014Hello world!\232\202\031\001A\232\202\031\001B\232\202\031\001C\240\202\031\001\252\202\031\002\001\002\262\202\031\025\n\023Hello OuterMessage3\272\202\031\027\n\025Hello OuterMessage3 A\272\202\031\027\n\025Hello OuterMessage3 B' + _globals['_MESSAGEOPTIONSTESTMSG']._serialized_start=101 + _globals['_MESSAGEOPTIONSTESTMSG']._serialized_end=246 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test_extensions3_pb2.pyi b/test/generated-sync-only/testproto/test_extensions3_pb2.pyi new file mode 100644 index 00000000..f2292855 --- /dev/null +++ b/test/generated-sync-only/testproto/test_extensions3_pb2.pyi @@ -0,0 +1,46 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.descriptor_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class MessageOptionsTestMsg(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___MessageOptionsTestMsg: typing_extensions.TypeAlias = MessageOptionsTestMsg + +TEST_FIELD_EXTENSION_FIELD_NUMBER: builtins.int +SCALAR_OPTION_FIELD_NUMBER: builtins.int +REPEATED_SCALAR_OPTION_FIELD_NUMBER: builtins.int +ENUM_OPTION_FIELD_NUMBER: builtins.int +REPEATED_ENUM_OPTION_FIELD_NUMBER: builtins.int +MSG_OPTION_FIELD_NUMBER: builtins.int +REPEATED_MSG_OPTION_FIELD_NUMBER: builtins.int +test_field_extension: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str] +scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.str] +repeated_scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]] +enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterEnum.ValueType] +repeated_enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[testproto.test3_pb2.OuterEnum.ValueType]] +msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterMessage3] +repeated_msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedCompositeFieldContainer[testproto.test3_pb2.OuterMessage3]] diff --git a/test/generated-sync-only/testproto/test_no_generic_services_pb2.py b/test/generated-sync-only/testproto/test_no_generic_services_pb2.py new file mode 100644 index 00000000..532c253b --- /dev/null +++ b/test/generated-sync-only/testproto/test_no_generic_services_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test_no_generic_services.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test_no_generic_services.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(testproto/test_no_generic_services.proto\x12\x04test\"\x1b\n\x07Simple3\x12\x10\n\x08\x61_string\x18\x01 \x02(\t27\n\rATestService2\x12&\n\x04\x45\x63ho\x12\r.test.Simple3\x1a\r.test.Simple3\"\x00') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_no_generic_services_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_SIMPLE3']._serialized_start=50 + _globals['_SIMPLE3']._serialized_end=77 + _globals['_ATESTSERVICE2']._serialized_start=79 + _globals['_ATESTSERVICE2']._serialized_end=134 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test_no_generic_services_pb2.pyi b/test/generated-sync-only/testproto/test_no_generic_services_pb2.pyi new file mode 100644 index 00000000..3a350109 --- /dev/null +++ b/test/generated-sync-only/testproto/test_no_generic_services_pb2.pyi @@ -0,0 +1,33 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Simple3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___Simple3: typing_extensions.TypeAlias = Simple3 diff --git a/test/generated-sync-only/testproto/test_pb2.py b/test/generated-sync-only/testproto/test_pb2.py new file mode 100644 index 00000000..cfeef244 --- /dev/null +++ b/test/generated-sync-only/testproto/test_pb2.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: testproto/test.proto +# Protobuf Python Version: 6.32.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 32, + 1, + '', + 'testproto/test.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from mypy_protobuf import extensions_pb2 as mypy__protobuf_dot_extensions__pb2 +from testproto.inner import inner_pb2 as testproto_dot_inner_dot_inner__pb2 +from testproto.nested import nested_pb2 as testproto_dot_nested_dot_nested__pb2 +from testproto import nopackage_pb2 as testproto_dot_nopackage__pb2 +from testproto import test3_pb2 as testproto_dot_test3__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14testproto/test.proto\x12\x04test\x1a\x1emypy_protobuf/extensions.proto\x1a\x1btestproto/inner/inner.proto\x1a\x1dtestproto/nested/nested.proto\x1a\x19testproto/nopackage.proto\x1a\x15testproto/test3.proto\"\x8d\t\n\x07Simple1\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\x12\x19\n\x11\x61_repeated_string\x18\x02 \x03(\t\x12\x11\n\ta_boolean\x18\x03 \x01(\x08\x12\x10\n\x08\x61_uint32\x18\x04 \x01(\r\x12\x1f\n\x06\x61_enum\x18\x05 \x01(\x0e\x32\x0f.test.OuterEnum\x12)\n\x0f\x61_external_enum\x18\x06 \x01(\x0e\x32\x10.test3.OuterEnum\x12\x1d\n\x07\x61_inner\x18\x07 \x01(\x0b\x32\x0c.inner.Inner\x12-\n\x08\x61_nested\x18\x0c \x01(\x0b\x32\x1b.test.nested_package.Nested\x12+\n\ninner_enum\x18\x08 \x01(\x0e\x32\x17.test.Simple1.InnerEnum\x12/\n\x0erep_inner_enum\x18\t \x03(\x0e\x32\x17.test.Simple1.InnerEnum\x12\x31\n\rinner_message\x18\n \x01(\x0b\x32\x1a.test.Simple1.InnerMessage\x12\x35\n\x11rep_inner_message\x18\x0b \x03(\x0b\x32\x1a.test.Simple1.InnerMessage\x12\x1e\n\nno_package\x18\r \x01(\x0b\x32\n.NoPackage\x12\x42\n\x0bnested_enum\x18\x0e \x01(\x0e\x32-.test.nested_package.AnotherNested.NestedEnum\x12H\n\x0enested_message\x18\x0f \x01(\x0b\x32\x30.test.nested_package.AnotherNested.NestedMessage\x12\x13\n\ta_oneof_1\x18\x10 \x01(\tH\x00\x12\x13\n\ta_oneof_2\x18\x11 \x01(\tH\x00\x12/\n\x16outer_message_in_oneof\x18\x12 \x01(\x0b\x32\r.test.Simple2H\x00\x12.\n\x13outer_enum_in_oneof\x18\x13 \x01(\x0e\x32\x0f.test.OuterEnumH\x00\x12\x36\n\x13inner_enum_in_oneof\x18\x14 \x01(\x0e\x32\x17.test.Simple1.InnerEnumH\x00\x12\x33\n\x07user_id\x18\x15 \x01(\rB\"\xfaG\x1ftest/test_generated_mypy.UserId\x12\x30\n\x05\x65mail\x18\x16 \x01(\tB!\xfaG\x1etest/test_generated_mypy.Email\x12x\n\x0c\x65mail_by_uid\x18\x17 \x03(\x0b\x32\x1d.test.Simple1.EmailByUidEntryBC\x82H\x1ftest/test_generated_mypy.UserId\x8aH\x1etest/test_generated_mypy.Email\x1a\x0e\n\x0cInnerMessage\x1a\x31\n\x0f\x45mailByUidEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"#\n\tInnerEnum\x12\n\n\x06INNER1\x10\x01\x12\n\n\x06INNER2\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\t\n\x07\x61_oneof\"&\n\x07Simple2\x12\x10\n\x08\x61_string\x18\x01 \x02(\t*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"R\n\x0b\x45xtensions1\x12\x13\n\x0b\x65xt1_string\x18\x01 \x01(\t2.\n\x03\x65xt\x12\r.test.Simple1\x18\xe8\x07 \x01(\x0b\x32\x11.test.Extensions1\"K\n\x0b\x45xtensions2\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x08\x32.\n\x03\x66oo\x12\r.test.Simple1\x18\xe4\x0f \x01(\x0b\x32\x11.test.Extensions2\"\x15\n\x04None\x12\r\n\x05valid\x18\x01 \x01(\x03\"\x80\x05\n\x16PythonReservedKeywords\x12\x0c\n\x04\x66rom\x18\x01 \x02(\x03\x12\x19\n\x02in\x18\x02 \x01(\x0b\x32\r.test.Simple2\x12\x30\n\x02is\x18\x03 \x01(\x0e\x32$.test.PythonReservedKeywords.finally\x12\x0b\n\x03\x66or\x18\x05 \x01(\x03\x12\x0b\n\x03try\x18\x06 \x01(\x03\x12\x0b\n\x03\x64\x65\x66\x18\x07 \x01(\x03\x12\x10\n\x08nonlocal\x18\x08 \x01(\x03\x12\r\n\x05while\x18\t \x01(\x03\x12\x0b\n\x03\x61nd\x18\n \x01(\x03\x12\x0b\n\x03\x64\x65l\x18\x0b \x01(\x03\x12\x0e\n\x06global\x18\x0c \x01(\x03\x12\x0b\n\x03not\x18\r \x01(\x03\x12\x0c\n\x04with\x18\x0e \x01(\x03\x12\n\n\x02\x61s\x18\x0f \x01(\x03\x12\x0c\n\x04\x65lif\x18\x10 \x01(\x03\x12\n\n\x02if\x18\x11 \x01(\x03\x12\n\n\x02or\x18\x12 \x01(\x03\x12\r\n\x05yield\x18\x13 \x01(\x03\x12\x0e\n\x06\x61ssert\x18\x14 \x01(\x03\x12\x0c\n\x04\x65lse\x18\x15 \x01(\x03\x12\x0e\n\x06import\x18\x16 \x01(\x03\x12\x0c\n\x04pass\x18\x17 \x01(\x03\x12\r\n\x05\x62reak\x18\x18 \x01(\x03\x12\x0e\n\x06\x65xcept\x18\x19 \x01(\x03\x12\r\n\x05raise\x18\x1a \x01(\x03\x12\r\n\x05\x46\x61lse\x18\x1b \x01(\x03\x12\x0c\n\x04True\x18\x1d \x01(\x03\x12\r\n\x05\x63lass\x18\x1e \x01(\x03\x12\x18\n\x04none\x18\x1c \x01(\x0b\x32\n.test.None\x12\x33\n\x05valid\x18\x1f \x01(\x0e\x32$.test.PythonReservedKeywords.finally\x1a)\n\x06lambda\x12\x10\n\x08\x63ontinue\x18\x01 \x01(\x03\x12\r\n\x05valid\x18\x02 \x01(\x03\"-\n\x07\x66inally\x12\x0c\n\x08\x63ontinue\x10\x01\x12\x14\n\x10valid_in_finally\x10\x02\"+\n\x1bPythonReservedKeywordsSmall\x12\x0c\n\x04\x66rom\x18\x01 \x02(\x03\"\x19\n\tSelfField\x12\x0c\n\x04self\x18\x01 \x01(\x03\")\n\x11\x44\x65precatedMessage\x12\x10\n\x08\x61_string\x18\x01 \x01(\t:\x02\x18\x01\"3\n\x1b\x44\x65precatedMessageBadComment\x12\x10\n\x08\x61_string\x18\x01 \x01(\t:\x02\x18\x01*\x1d\n\tOuterEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02*G\n\x0fNamingConflicts\x12\x08\n\x04Name\x10\x01\x12\t\n\x05Value\x10\x02\x12\x08\n\x04keys\x10\x03\x12\n\n\x06values\x10\x04\x12\t\n\x05items\x10\x05*<\n\x0e\x44\x65precatedEnum\x12\x12\n\x0e\x44\x45PRECATED_ONE\x10\x01\x12\x12\n\x0e\x44\x45PRECATED_TWO\x10\x02\x1a\x02\x18\x01\x32\xde\x01\n\x1dPythonReservedKeywordsService\x12>\n\x06lambda\x12\r.test.Simple1\x1a#.test.PythonReservedKeywords.lambda\"\x00\x12\x31\n\x12valid_method_name1\x12\r.test.Simple1\x1a\n.test.None\"\x00\x12J\n\x12valid_method_name2\x12\r.test.Simple1\x1a#.test.PythonReservedKeywords.lambda\"\x00') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_DEPRECATEDENUM']._loaded_options = None + _globals['_DEPRECATEDENUM']._serialized_options = b'\030\001' + _globals['_SIMPLE1_EMAILBYUIDENTRY']._loaded_options = None + _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_options = b'8\001' + _globals['_SIMPLE1'].fields_by_name['user_id']._loaded_options = None + _globals['_SIMPLE1'].fields_by_name['user_id']._serialized_options = b'\372G\037test/test_generated_mypy.UserId' + _globals['_SIMPLE1'].fields_by_name['email']._loaded_options = None + _globals['_SIMPLE1'].fields_by_name['email']._serialized_options = b'\372G\036test/test_generated_mypy.Email' + _globals['_SIMPLE1'].fields_by_name['email_by_uid']._loaded_options = None + _globals['_SIMPLE1'].fields_by_name['email_by_uid']._serialized_options = b'\202H\037test/test_generated_mypy.UserId\212H\036test/test_generated_mypy.Email' + _globals['_DEPRECATEDMESSAGE']._loaded_options = None + _globals['_DEPRECATEDMESSAGE']._serialized_options = b'\030\001' + _globals['_DEPRECATEDMESSAGEBADCOMMENT']._loaded_options = None + _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_options = b'\030\001' + _globals['_OUTERENUM']._serialized_start=2375 + _globals['_OUTERENUM']._serialized_end=2404 + _globals['_NAMINGCONFLICTS']._serialized_start=2406 + _globals['_NAMINGCONFLICTS']._serialized_end=2477 + _globals['_DEPRECATEDENUM']._serialized_start=2479 + _globals['_DEPRECATEDENUM']._serialized_end=2539 + _globals['_SIMPLE1']._serialized_start=173 + _globals['_SIMPLE1']._serialized_end=1338 + _globals['_SIMPLE1_INNERMESSAGE']._serialized_start=1214 + _globals['_SIMPLE1_INNERMESSAGE']._serialized_end=1228 + _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_start=1230 + _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_end=1279 + _globals['_SIMPLE1_INNERENUM']._serialized_start=1281 + _globals['_SIMPLE1_INNERENUM']._serialized_end=1316 + _globals['_SIMPLE2']._serialized_start=1340 + _globals['_SIMPLE2']._serialized_end=1378 + _globals['_EXTENSIONS1']._serialized_start=1380 + _globals['_EXTENSIONS1']._serialized_end=1462 + _globals['_EXTENSIONS2']._serialized_start=1464 + _globals['_EXTENSIONS2']._serialized_end=1539 + _globals['_NONE']._serialized_start=1541 + _globals['_NONE']._serialized_end=1562 + _globals['_PYTHONRESERVEDKEYWORDS']._serialized_start=1565 + _globals['_PYTHONRESERVEDKEYWORDS']._serialized_end=2205 + _globals['_PYTHONRESERVEDKEYWORDS_LAMBDA']._serialized_start=2117 + _globals['_PYTHONRESERVEDKEYWORDS_LAMBDA']._serialized_end=2158 + _globals['_PYTHONRESERVEDKEYWORDS_FINALLY']._serialized_start=2160 + _globals['_PYTHONRESERVEDKEYWORDS_FINALLY']._serialized_end=2205 + _globals['_PYTHONRESERVEDKEYWORDSSMALL']._serialized_start=2207 + _globals['_PYTHONRESERVEDKEYWORDSSMALL']._serialized_end=2250 + _globals['_SELFFIELD']._serialized_start=2252 + _globals['_SELFFIELD']._serialized_end=2277 + _globals['_DEPRECATEDMESSAGE']._serialized_start=2279 + _globals['_DEPRECATEDMESSAGE']._serialized_end=2320 + _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_start=2322 + _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_end=2373 + _globals['_PYTHONRESERVEDKEYWORDSSERVICE']._serialized_start=2542 + _globals['_PYTHONRESERVEDKEYWORDSSERVICE']._serialized_end=2764 +# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test_pb2.pyi b/test/generated-sync-only/testproto/test_pb2.pyi new file mode 100644 index 00000000..3058335b --- /dev/null +++ b/test/generated-sync-only/testproto/test_pb2.pyi @@ -0,0 +1,439 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Proto 2 test file.""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import test.test_generated_mypy +import testproto.inner.inner_pb2 +import testproto.nested.nested_pb2 +import testproto.nopackage_pb2 +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _OuterEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + FOO: _OuterEnum.ValueType # 1 + """FOO""" + BAR: _OuterEnum.ValueType # 2 + """BAR""" + +class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): + """Outer Enum""" + +FOO: OuterEnum.ValueType # 1 +"""FOO""" +BAR: OuterEnum.ValueType # 2 +"""BAR""" +Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum + +class _NamingConflicts: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _NamingConflictsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NamingConflicts.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + +class NamingConflicts(_NamingConflicts, metaclass=_NamingConflictsEnumTypeWrapper): + """Naming conflicts!""" + +Name: NamingConflicts.ValueType # 1 +Value: NamingConflicts.ValueType # 2 +keys: NamingConflicts.ValueType # 3 +values: NamingConflicts.ValueType # 4 +items: NamingConflicts.ValueType # 5 +"""See https://github.com/protocolbuffers/protobuf/issues/8803 +proto itself generates broken code when DESCRIPTOR is there +DESCRIPTOR = 8; +""" +Global___NamingConflicts: typing_extensions.TypeAlias = NamingConflicts + +class _DeprecatedEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _DeprecatedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeprecatedEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + DEPRECATED_ONE: _DeprecatedEnum.ValueType # 1 + DEPRECATED_TWO: _DeprecatedEnum.ValueType # 2 + +@deprecated("""This enum is deprecated\n2 lines of comments\n"Quotes in comments"\nand 'single quotes'\nTrailing comment""") +class DeprecatedEnum(_DeprecatedEnum, metaclass=_DeprecatedEnumEnumTypeWrapper): ... + +DEPRECATED_ONE: DeprecatedEnum.ValueType # 1 +DEPRECATED_TWO: DeprecatedEnum.ValueType # 2 +Global___DeprecatedEnum: typing_extensions.TypeAlias = DeprecatedEnum + +@typing.final +class Simple1(google.protobuf.message.Message): + """Message with one of everything""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _InnerEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Simple1._InnerEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INNER1: Simple1._InnerEnum.ValueType # 1 + """INNER1""" + INNER2: Simple1._InnerEnum.ValueType # 2 + """INNER2""" + + class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): + """Inner Enum""" + + INNER1: Simple1.InnerEnum.ValueType # 1 + """INNER1""" + INNER2: Simple1.InnerEnum.ValueType # 2 + """INNER2""" + + @typing.final + class InnerMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + + @typing.final + class EmailByUidEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int | None = ..., + value: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + A_STRING_FIELD_NUMBER: builtins.int + A_REPEATED_STRING_FIELD_NUMBER: builtins.int + A_BOOLEAN_FIELD_NUMBER: builtins.int + A_UINT32_FIELD_NUMBER: builtins.int + A_ENUM_FIELD_NUMBER: builtins.int + A_EXTERNAL_ENUM_FIELD_NUMBER: builtins.int + A_INNER_FIELD_NUMBER: builtins.int + A_NESTED_FIELD_NUMBER: builtins.int + INNER_ENUM_FIELD_NUMBER: builtins.int + REP_INNER_ENUM_FIELD_NUMBER: builtins.int + INNER_MESSAGE_FIELD_NUMBER: builtins.int + REP_INNER_MESSAGE_FIELD_NUMBER: builtins.int + NO_PACKAGE_FIELD_NUMBER: builtins.int + NESTED_ENUM_FIELD_NUMBER: builtins.int + NESTED_MESSAGE_FIELD_NUMBER: builtins.int + A_ONEOF_1_FIELD_NUMBER: builtins.int + A_ONEOF_2_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int + OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + USER_ID_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + EMAIL_BY_UID_FIELD_NUMBER: builtins.int + a_string: builtins.str + a_boolean: builtins.bool + a_uint32: builtins.int + a_enum: Global___OuterEnum.ValueType + a_external_enum: testproto.test3_pb2.OuterEnum.ValueType + inner_enum: Global___Simple1.InnerEnum.ValueType + nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType + a_oneof_1: builtins.str + a_oneof_2: builtins.str + outer_enum_in_oneof: Global___OuterEnum.ValueType + inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType + user_id: test.test_generated_mypy.UserId + email: test.test_generated_mypy.Email + @property + def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def a_inner(self) -> testproto.inner.inner_pb2.Inner: ... + @property + def a_nested(self) -> testproto.nested.nested_pb2.Nested: ... + @property + def rep_inner_enum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[Global___Simple1.InnerEnum.ValueType]: ... + @property + def inner_message(self) -> Global___Simple1.InnerMessage: ... + @property + def rep_inner_message(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Simple1.InnerMessage]: ... + @property + def no_package(self) -> testproto.nopackage_pb2.NoPackage: ... + @property + def nested_message(self) -> testproto.nested.nested_pb2.AnotherNested.NestedMessage: ... + @property + def outer_message_in_oneof(self) -> Global___Simple2: ... + @property + def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... + def __init__( + self, + *, + a_string: builtins.str | None = ..., + a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., + a_boolean: builtins.bool | None = ..., + a_uint32: builtins.int | None = ..., + a_enum: Global___OuterEnum.ValueType | None = ..., + a_external_enum: testproto.test3_pb2.OuterEnum.ValueType | None = ..., + a_inner: testproto.inner.inner_pb2.Inner | None = ..., + a_nested: testproto.nested.nested_pb2.Nested | None = ..., + inner_enum: Global___Simple1.InnerEnum.ValueType | None = ..., + rep_inner_enum: collections.abc.Iterable[Global___Simple1.InnerEnum.ValueType] | None = ..., + inner_message: Global___Simple1.InnerMessage | None = ..., + rep_inner_message: collections.abc.Iterable[Global___Simple1.InnerMessage] | None = ..., + no_package: testproto.nopackage_pb2.NoPackage | None = ..., + nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType | None = ..., + nested_message: testproto.nested.nested_pb2.AnotherNested.NestedMessage | None = ..., + a_oneof_1: builtins.str | None = ..., + a_oneof_2: builtins.str | None = ..., + outer_message_in_oneof: Global___Simple2 | None = ..., + outer_enum_in_oneof: Global___OuterEnum.ValueType | None = ..., + inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType | None = ..., + user_id: test.test_generated_mypy.UserId | None = ..., + email: test.test_generated_mypy.Email | None = ..., + email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "rep_inner_enum", b"rep_inner_enum", "rep_inner_message", b"rep_inner_message", "user_id", b"user_id"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["a_oneof", b"a_oneof"]) -> typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] | None: ... + +Global___Simple1: typing_extensions.TypeAlias = Simple1 + +@typing.final +class Simple2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___Simple2: typing_extensions.TypeAlias = Simple2 + +@typing.final +class Extensions1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EXT1_STRING_FIELD_NUMBER: builtins.int + ext1_string: builtins.str + EXT_FIELD_NUMBER: builtins.int + ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions1] + """ext""" + def __init__( + self, + *, + ext1_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["ext1_string", b"ext1_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["ext1_string", b"ext1_string"]) -> None: ... + +Global___Extensions1: typing_extensions.TypeAlias = Extensions1 + +@typing.final +class Extensions2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FLAG_FIELD_NUMBER: builtins.int + flag: builtins.bool + FOO_FIELD_NUMBER: builtins.int + foo: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions2] + """foo""" + def __init__( + self, + *, + flag: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["flag", b"flag"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["flag", b"flag"]) -> None: ... + +Global___Extensions2: typing_extensions.TypeAlias = Extensions2 + +@typing.final +class _r_None(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALID_FIELD_NUMBER: builtins.int + valid: builtins.int + def __init__( + self, + *, + valid: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["valid", b"valid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["valid", b"valid"]) -> None: ... + +Global____r_None: typing_extensions.TypeAlias = _r_None + +@typing.final +class PythonReservedKeywords(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _finally: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _finallyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PythonReservedKeywords._finally.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + valid_in_finally: PythonReservedKeywords._finally.ValueType # 2 + + class _r_finally(_finally, metaclass=_finallyEnumTypeWrapper): ... + valid_in_finally: PythonReservedKeywords._r_finally.ValueType # 2 + + @typing.final + class _r_lambda(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONTINUE_FIELD_NUMBER: builtins.int + VALID_FIELD_NUMBER: builtins.int + valid: builtins.int + def __init__( + self, + *, + valid: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["continue", b"continue", "valid", b"valid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["continue", b"continue", "valid", b"valid"]) -> None: ... + + FROM_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + IS_FIELD_NUMBER: builtins.int + FOR_FIELD_NUMBER: builtins.int + TRY_FIELD_NUMBER: builtins.int + DEF_FIELD_NUMBER: builtins.int + NONLOCAL_FIELD_NUMBER: builtins.int + WHILE_FIELD_NUMBER: builtins.int + AND_FIELD_NUMBER: builtins.int + DEL_FIELD_NUMBER: builtins.int + GLOBAL_FIELD_NUMBER: builtins.int + NOT_FIELD_NUMBER: builtins.int + WITH_FIELD_NUMBER: builtins.int + AS_FIELD_NUMBER: builtins.int + ELIF_FIELD_NUMBER: builtins.int + IF_FIELD_NUMBER: builtins.int + OR_FIELD_NUMBER: builtins.int + YIELD_FIELD_NUMBER: builtins.int + ASSERT_FIELD_NUMBER: builtins.int + ELSE_FIELD_NUMBER: builtins.int + IMPORT_FIELD_NUMBER: builtins.int + PASS_FIELD_NUMBER: builtins.int + BREAK_FIELD_NUMBER: builtins.int + EXCEPT_FIELD_NUMBER: builtins.int + RAISE_FIELD_NUMBER: builtins.int + FALSE_FIELD_NUMBER: builtins.int + TRUE_FIELD_NUMBER: builtins.int + CLASS_FIELD_NUMBER: builtins.int + NONE_FIELD_NUMBER: builtins.int + VALID_FIELD_NUMBER: builtins.int + valid: Global___PythonReservedKeywords._r_finally.ValueType + @property + def none(self) -> Global____r_None: + """Test unreserved identifiers w/ reserved message names""" + + def __init__( + self, + *, + none: Global____r_None | None = ..., + valid: Global___PythonReservedKeywords._r_finally.ValueType | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"]) -> None: ... + +Global___PythonReservedKeywords: typing_extensions.TypeAlias = PythonReservedKeywords + +@typing.final +class PythonReservedKeywordsSmall(google.protobuf.message.Message): + """Do one with just one arg - to make sure it's syntactically correct""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FROM_FIELD_NUMBER: builtins.int + def __init__( + self, + ) -> None: ... + def HasField(self, field_name: typing.Literal["from", b"from"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["from", b"from"]) -> None: ... + +Global___PythonReservedKeywordsSmall: typing_extensions.TypeAlias = PythonReservedKeywordsSmall + +@typing.final +class SelfField(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SELF_FIELD_NUMBER: builtins.int + self: builtins.int + """Field self -> must generate an __init__ method w/ different name""" + def __init__( + self_, # pyright: ignore[reportSelfClsParameterName] + *, + self: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["self", b"self"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["self", b"self"]) -> None: ... + +Global___SelfField: typing_extensions.TypeAlias = SelfField + +@deprecated("""This message is deprecated""") +@typing.final +class DeprecatedMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___DeprecatedMessage: typing_extensions.TypeAlias = DeprecatedMessage + +@deprecated("""This message has been marked as deprecated using proto message options.""") +@typing.final +class DeprecatedMessageBadComment(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... + +Global___DeprecatedMessageBadComment: typing_extensions.TypeAlias = DeprecatedMessageBadComment diff --git a/test/test_async_only.py b/test/test_async_only.py new file mode 100644 index 00000000..3d0ffdf6 --- /dev/null +++ b/test/test_async_only.py @@ -0,0 +1,18 @@ +""" +Type-checking test for async_only GRPC stubs. + +This module is run through mypy to validate that stubs generated with the +only_async flag have the correct types: +- Regular (non-generic) Stub class that only accepts grpc.aio.Channel +- No AsyncStub type alias (the stub itself is async-only) +- Servicer methods use AsyncIterator for client streaming (not _MaybeAsyncIterator) +- add_XXXServicer_to_server accepts grpc.aio.Server +""" + +from testproto.grpc.dummy_pb2_grpc import DummyServiceServicer + + +class AsyncOnlyServicer(DummyServiceServicer): + """Test servicer for async_only stubs - intentionally incomplete.""" + + pass diff --git a/test/test_sync_only.py b/test/test_sync_only.py new file mode 100644 index 00000000..5fc10839 --- /dev/null +++ b/test/test_sync_only.py @@ -0,0 +1,17 @@ +""" +Type-checking test for sync_only GRPC stubs. + +This module is run through mypy to validate that stubs generated with the +only_sync flag have the correct types: +- Regular (non-generic) Stub class that only accepts grpc.Channel +- Servicer methods use Iterator for client streaming (not _MaybeAsyncIterator) +- add_XXXServicer_to_server accepts grpc.Server +""" + +from testproto.grpc.dummy_pb2_grpc import DummyServiceServicer + + +class SyncOnlyServicer(DummyServiceServicer): + """Test servicer for sync_only stubs - intentionally incomplete.""" + + pass From 311a8777dd82bbee3260f72dcc9eb3f4884c4304 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 26 Nov 2025 17:09:00 +0000 Subject: [PATCH 02/23] Specify type parameters for context in async grpc methods --- mypy_protobuf/main.py | 11 ++++++----- .../testproto/grpc/dummy_pb2_grpc.pyi | 12 ++++++------ .../testproto/grpc/import_pb2_grpc.pyi | 6 +++--- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/mypy_protobuf/main.py b/mypy_protobuf/main.py index 3d2633b6..577886db 100644 --- a/mypy_protobuf/main.py +++ b/mypy_protobuf/main.py @@ -843,10 +843,10 @@ def write_grpc_iterator_type(self) -> None: ) wl("") - def get_servicer_context_type(self) -> str: + def get_servicer_context_type(self, input_: str, output: str) -> str: """Get the type to use for the context parameter in servicer methods.""" if self.grpc_type == GRPCType.ASYNC: - return self._import("grpc.aio", "ServicerContext") + return self._import("grpc.aio", f"ServicerContext[{input_}, {output}]") elif self.grpc_type == GRPCType.SYNC: return self._import("grpc", "ServicerContext") else: @@ -903,6 +903,8 @@ def write_grpc_methods(self, service: d.ServiceDescriptorProto, scl_prefix: Sour wl("") for i, method in methods: scl = scl_prefix + [d.ServiceDescriptorProto.METHOD_FIELD_NUMBER, i] + input_type = self._servicer_input_type(method) + output_type = self._servicer_output_type(method) if self.generate_concrete_servicer_stubs is False: wl("@{}", self._import("abc", "abstractmethod")) @@ -910,12 +912,11 @@ def write_grpc_methods(self, service: d.ServiceDescriptorProto, scl_prefix: Sour with self._indent(): wl("self,") input_name = "request_iterator" if method.client_streaming else "request" - input_type = self._servicer_input_type(method) wl(f"{input_name}: {input_type},") - wl("context: {},", self.get_servicer_context_type()) + wl("context: {},", self.get_servicer_context_type(input_type, output_type)) wl( ") -> {}:{}", - self._servicer_output_type(method), + output_type, " ..." if not self._has_comments(scl) else "", ) if self._has_comments(scl): diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi index 7bd059df..218366a7 100644 --- a/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi +++ b/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi @@ -61,7 +61,7 @@ class DummyServiceServicer(metaclass=abc.ABCMeta): def UnaryUnary( self, request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: """UnaryUnary""" @@ -69,7 +69,7 @@ class DummyServiceServicer(metaclass=abc.ABCMeta): def UnaryStream( self, request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]], ) -> collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]: """UnaryStream""" @@ -77,7 +77,7 @@ class DummyServiceServicer(metaclass=abc.ABCMeta): def StreamUnary( self, request_iterator: collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: """StreamUnary""" @@ -85,7 +85,7 @@ class DummyServiceServicer(metaclass=abc.ABCMeta): def StreamStream( self, request_iterator: collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]], ) -> collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]: """StreamStream""" @@ -117,7 +117,7 @@ class DeprecatedServiceServicer(metaclass=abc.ABCMeta): def DeprecatedMethod( self, request: testproto.grpc.dummy_pb2.DeprecatedRequest, - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DeprecatedRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: """DeprecatedMethod""" @@ -125,7 +125,7 @@ class DeprecatedServiceServicer(metaclass=abc.ABCMeta): def DeprecatedMethodNotDeprecatedRequest( self, request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: """DeprecatedMethodNotDeprecatedRequest""" diff --git a/test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi b/test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi index 205a883d..5bccf22d 100644 --- a/test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi +++ b/test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi @@ -49,7 +49,7 @@ class SimpleServiceServicer(metaclass=abc.ABCMeta): def UnaryUnary( self, request: google.protobuf.empty_pb2.Empty, - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[google.protobuf.empty_pb2.Empty, collections.abc.Awaitable[testproto.test_pb2.Simple1]], ) -> collections.abc.Awaitable[testproto.test_pb2.Simple1]: """UnaryUnary""" @@ -57,7 +57,7 @@ class SimpleServiceServicer(metaclass=abc.ABCMeta): def UnaryStream( self, request: testproto.test_pb2.Simple1, - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[testproto.test_pb2.Simple1, collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]], ) -> collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]: """UnaryStream""" @@ -65,7 +65,7 @@ class SimpleServiceServicer(metaclass=abc.ABCMeta): def NoComment( self, request: testproto.test_pb2.Simple1, - context: grpc.aio.ServicerContext, + context: grpc.aio.ServicerContext[testproto.test_pb2.Simple1, collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]], ) -> collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]: ... def add_SimpleServiceServicer_to_server(servicer: SimpleServiceServicer, server: grpc.aio.Server) -> None: ... From 5541400101b1801d111e332d07f6d48b7bbba205 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 26 Nov 2025 17:15:57 +0000 Subject: [PATCH 03/23] Ignore pyright errors in sync/async only stubs --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ea90959f..5a5ec719 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,12 +32,14 @@ include = [ exclude = [ "**/*_pb2.py", "**/*_pb2_grpc.py", - "test/test_concrete.py" + "test/test_concrete.py", ] executionEnvironments = [ # Due to how upb is typed, we need to disable incompatible variable override checks { root = "test/generated", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, { root = "test/generated_concrete", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, + { root = "test/generated_sync_only", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, + { root = "test/generated_async_only", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, { root = "mypy_protobuf/extensions_pb2.pyi", reportIncompatibleVariableOverride = "none" }, ] From 912d7dbe380917d22bfbe89cda16a6f9f174b282 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 26 Nov 2025 18:38:53 +0000 Subject: [PATCH 04/23] Update readme with sync_only/async_only option --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 220a3736..dc794ad8 100644 --- a/README.md +++ b/README.md @@ -348,6 +348,21 @@ By default mypy-protobuf will output servicer stubs with abstract methods. To ou protoc --python_out=output/location --mypy_grpc_out=generate_concrete_servicer_stubs:output/location ``` +### `sync_only/async_only` + +By default, generated GRPC stubs are compatible with both sync and async variants. If you only +want sync or async GRPC stubs, use this option: + +``` +protoc --python_out=output/location --mypy_grpc_out=sync_only:output/location +``` + +or + +``` +protoc --python_out=output/location --mypy_grpc_out=async_only:output/location +``` + ### Output suppression To suppress output, you can run From f7e76a18aba3da0c4fd2070ff4121113d26cf9e8 Mon Sep 17 00:00:00 2001 From: Aidan Jensen Date: Wed, 26 Nov 2025 13:35:11 -0800 Subject: [PATCH 05/23] Start adding tests Rename folders Update pyproject.toml so pyright works on test code for sync/async only Signed-off-by: Aidan Jensen --- pyproject.toml | 2 + run_test.sh | 16 +- test/async_only/test_async_only.py | 29 + test/generated-async-only/__init__.py | 0 .../testproto/Capitalized/Capitalized_pb2.py | 40 - .../testproto/Capitalized/Capitalized_pb2.pyi | 66 - .../testproto/Capitalized/__init__.py | 0 .../testproto/__init__.py | 0 .../testproto/comment_special_chars_pb2.py | 36 - .../testproto/comment_special_chars_pb2.pyi | 82 - .../testproto/dot/__init__.py | 0 .../testproto/dot/com/__init__.py | 0 .../testproto/dot/com/test_pb2.py | 36 - .../testproto/dot/com/test_pb2.pyi | 32 - .../testproto/edition2024_pb2.py | 47 - .../testproto/edition2024_pb2.pyi | 68 - .../testproto/grpc/__init__.py | 0 .../testproto/inner/__init__.py | 0 .../testproto/inner/inner_pb2.py | 37 - .../testproto/inner/inner_pb2.pyi | 33 - .../testproto/nested/__init__.py | 0 .../testproto/nested/nested_pb2.py | 45 - .../testproto/nested/nested_pb2.pyi | 96 - .../testproto/nopackage_pb2.py | 38 - .../testproto/nopackage_pb2.pyi | 52 - .../testproto/readme_enum_pb2.py | 36 - .../testproto/readme_enum_pb2.pyi | 32 - .../testproto/reexport_pb2.py | 39 - .../testproto/reexport_pb2.pyi | 19 - .../testproto/test3_pb2.py | 61 - .../testproto/test3_pb2.pyi | 209 -- .../testproto/test_extensions2_pb2.py | 37 - .../testproto/test_extensions2_pb2.pyi | 37 - .../testproto/test_extensions3_pb2.py | 40 - .../testproto/test_extensions3_pb2.pyi | 46 - .../testproto/test_no_generic_services_pb2.py | 38 - .../test_no_generic_services_pb2.pyi | 33 - .../testproto/test_pb2.py | 91 - .../testproto/test_pb2.pyi | 439 ---- test/generated-sync-only/__init__.py | 0 .../testproto/Capitalized/Capitalized_pb2.py | 40 - .../testproto/Capitalized/Capitalized_pb2.pyi | 66 - .../testproto/Capitalized/__init__.py | 0 .../generated-sync-only/testproto/__init__.py | 0 .../testproto/comment_special_chars_pb2.py | 36 - .../testproto/comment_special_chars_pb2.pyi | 82 - .../testproto/dot/__init__.py | 0 .../testproto/dot/com/__init__.py | 0 .../testproto/dot/com/test_pb2.py | 36 - .../testproto/dot/com/test_pb2.pyi | 32 - .../testproto/edition2024_pb2.py | 47 - .../testproto/edition2024_pb2.pyi | 68 - .../testproto/grpc/__init__.py | 0 .../testproto/inner/__init__.py | 0 .../testproto/inner/inner_pb2.py | 37 - .../testproto/inner/inner_pb2.pyi | 33 - .../testproto/nested/__init__.py | 0 .../testproto/nested/nested_pb2.py | 45 - .../testproto/nested/nested_pb2.pyi | 96 - .../testproto/nopackage_pb2.py | 38 - .../testproto/nopackage_pb2.pyi | 52 - .../testproto/readme_enum_pb2.py | 36 - .../testproto/readme_enum_pb2.pyi | 32 - .../testproto/reexport_pb2.py | 39 - .../testproto/reexport_pb2.pyi | 19 - .../testproto/test3_pb2.py | 61 - .../testproto/test3_pb2.pyi | 209 -- .../testproto/test_extensions2_pb2.py | 37 - .../testproto/test_extensions2_pb2.pyi | 37 - .../testproto/test_extensions3_pb2.py | 40 - .../testproto/test_extensions3_pb2.pyi | 46 - .../testproto/test_no_generic_services_pb2.py | 38 - .../test_no_generic_services_pb2.pyi | 33 - .../generated-sync-only/testproto/test_pb2.py | 91 - .../testproto/test_pb2.pyi | 439 ---- .../testproto/grpc/dummy_pb2.py | 0 .../testproto/grpc/dummy_pb2.pyi | 0 .../testproto/grpc/dummy_pb2_grpc.py | 2 +- .../testproto/grpc/dummy_pb2_grpc.pyi | 0 .../testproto/grpc/import_pb2.py | 0 .../testproto/grpc/import_pb2.pyi | 0 .../testproto/grpc/import_pb2_grpc.py | 2 +- .../testproto/grpc/import_pb2_grpc.pyi | 0 .../testproto/edition2024_pb2.pyi | 12 +- .../testproto/grpc/dummy_pb2.pyi | 1989 +---------------- .../testproto/grpc/dummy_pb2_grpc.pyi | 1057 ++------- .../testproto/grpc/import_pb2_grpc.pyi | 117 +- .../testproto/grpc/dummy_pb2.py | 0 .../testproto/grpc/dummy_pb2.pyi | 0 .../testproto/grpc/dummy_pb2_grpc.py | 2 +- .../testproto/grpc/dummy_pb2_grpc.pyi | 0 .../testproto/grpc/import_pb2.py | 0 .../testproto/grpc/import_pb2.pyi | 0 .../testproto/grpc/import_pb2_grpc.py | 2 +- .../testproto/grpc/import_pb2_grpc.pyi | 0 test/sync_only/test_sync_only.py | 25 + test/test_async_only.py | 18 - test/test_sync_only.py | 17 - uv.lock | 3 + 99 files changed, 382 insertions(+), 6641 deletions(-) create mode 100644 test/async_only/test_async_only.py delete mode 100644 test/generated-async-only/__init__.py delete mode 100644 test/generated-async-only/testproto/Capitalized/Capitalized_pb2.py delete mode 100644 test/generated-async-only/testproto/Capitalized/Capitalized_pb2.pyi delete mode 100644 test/generated-async-only/testproto/Capitalized/__init__.py delete mode 100644 test/generated-async-only/testproto/__init__.py delete mode 100644 test/generated-async-only/testproto/comment_special_chars_pb2.py delete mode 100644 test/generated-async-only/testproto/comment_special_chars_pb2.pyi delete mode 100644 test/generated-async-only/testproto/dot/__init__.py delete mode 100644 test/generated-async-only/testproto/dot/com/__init__.py delete mode 100644 test/generated-async-only/testproto/dot/com/test_pb2.py delete mode 100644 test/generated-async-only/testproto/dot/com/test_pb2.pyi delete mode 100644 test/generated-async-only/testproto/edition2024_pb2.py delete mode 100644 test/generated-async-only/testproto/edition2024_pb2.pyi delete mode 100644 test/generated-async-only/testproto/grpc/__init__.py delete mode 100644 test/generated-async-only/testproto/inner/__init__.py delete mode 100644 test/generated-async-only/testproto/inner/inner_pb2.py delete mode 100644 test/generated-async-only/testproto/inner/inner_pb2.pyi delete mode 100644 test/generated-async-only/testproto/nested/__init__.py delete mode 100644 test/generated-async-only/testproto/nested/nested_pb2.py delete mode 100644 test/generated-async-only/testproto/nested/nested_pb2.pyi delete mode 100644 test/generated-async-only/testproto/nopackage_pb2.py delete mode 100644 test/generated-async-only/testproto/nopackage_pb2.pyi delete mode 100644 test/generated-async-only/testproto/readme_enum_pb2.py delete mode 100644 test/generated-async-only/testproto/readme_enum_pb2.pyi delete mode 100644 test/generated-async-only/testproto/reexport_pb2.py delete mode 100644 test/generated-async-only/testproto/reexport_pb2.pyi delete mode 100644 test/generated-async-only/testproto/test3_pb2.py delete mode 100644 test/generated-async-only/testproto/test3_pb2.pyi delete mode 100644 test/generated-async-only/testproto/test_extensions2_pb2.py delete mode 100644 test/generated-async-only/testproto/test_extensions2_pb2.pyi delete mode 100644 test/generated-async-only/testproto/test_extensions3_pb2.py delete mode 100644 test/generated-async-only/testproto/test_extensions3_pb2.pyi delete mode 100644 test/generated-async-only/testproto/test_no_generic_services_pb2.py delete mode 100644 test/generated-async-only/testproto/test_no_generic_services_pb2.pyi delete mode 100644 test/generated-async-only/testproto/test_pb2.py delete mode 100644 test/generated-async-only/testproto/test_pb2.pyi delete mode 100644 test/generated-sync-only/__init__.py delete mode 100644 test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.py delete mode 100644 test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/Capitalized/__init__.py delete mode 100644 test/generated-sync-only/testproto/__init__.py delete mode 100644 test/generated-sync-only/testproto/comment_special_chars_pb2.py delete mode 100644 test/generated-sync-only/testproto/comment_special_chars_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/dot/__init__.py delete mode 100644 test/generated-sync-only/testproto/dot/com/__init__.py delete mode 100644 test/generated-sync-only/testproto/dot/com/test_pb2.py delete mode 100644 test/generated-sync-only/testproto/dot/com/test_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/edition2024_pb2.py delete mode 100644 test/generated-sync-only/testproto/edition2024_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/grpc/__init__.py delete mode 100644 test/generated-sync-only/testproto/inner/__init__.py delete mode 100644 test/generated-sync-only/testproto/inner/inner_pb2.py delete mode 100644 test/generated-sync-only/testproto/inner/inner_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/nested/__init__.py delete mode 100644 test/generated-sync-only/testproto/nested/nested_pb2.py delete mode 100644 test/generated-sync-only/testproto/nested/nested_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/nopackage_pb2.py delete mode 100644 test/generated-sync-only/testproto/nopackage_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/readme_enum_pb2.py delete mode 100644 test/generated-sync-only/testproto/readme_enum_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/reexport_pb2.py delete mode 100644 test/generated-sync-only/testproto/reexport_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/test3_pb2.py delete mode 100644 test/generated-sync-only/testproto/test3_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/test_extensions2_pb2.py delete mode 100644 test/generated-sync-only/testproto/test_extensions2_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/test_extensions3_pb2.py delete mode 100644 test/generated-sync-only/testproto/test_extensions3_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/test_no_generic_services_pb2.py delete mode 100644 test/generated-sync-only/testproto/test_no_generic_services_pb2.pyi delete mode 100644 test/generated-sync-only/testproto/test_pb2.py delete mode 100644 test/generated-sync-only/testproto/test_pb2.pyi rename test/{generated-async-only => generated_async_only}/testproto/grpc/dummy_pb2.py (100%) rename test/{generated-async-only => generated_async_only}/testproto/grpc/dummy_pb2.pyi (100%) rename test/{generated-async-only => generated_async_only}/testproto/grpc/dummy_pb2_grpc.py (100%) rename test/{generated-async-only => generated_async_only}/testproto/grpc/dummy_pb2_grpc.pyi (100%) rename test/{generated-async-only => generated_async_only}/testproto/grpc/import_pb2.py (100%) rename test/{generated-async-only => generated_async_only}/testproto/grpc/import_pb2.pyi (100%) rename test/{generated-async-only => generated_async_only}/testproto/grpc/import_pb2_grpc.py (100%) rename test/{generated-async-only => generated_async_only}/testproto/grpc/import_pb2_grpc.pyi (100%) rename test/{generated-sync-only => generated_sync_only}/testproto/grpc/dummy_pb2.py (100%) rename test/{generated-sync-only => generated_sync_only}/testproto/grpc/dummy_pb2.pyi (100%) rename test/{generated-sync-only => generated_sync_only}/testproto/grpc/dummy_pb2_grpc.py (100%) rename test/{generated-sync-only => generated_sync_only}/testproto/grpc/dummy_pb2_grpc.pyi (100%) rename test/{generated-sync-only => generated_sync_only}/testproto/grpc/import_pb2.py (100%) rename test/{generated-sync-only => generated_sync_only}/testproto/grpc/import_pb2.pyi (100%) rename test/{generated-sync-only => generated_sync_only}/testproto/grpc/import_pb2_grpc.py (100%) rename test/{generated-sync-only => generated_sync_only}/testproto/grpc/import_pb2_grpc.pyi (100%) create mode 100644 test/sync_only/test_sync_only.py delete mode 100644 test/test_async_only.py delete mode 100644 test/test_sync_only.py create mode 100644 uv.lock diff --git a/pyproject.toml b/pyproject.toml index 5a5ec719..6bf95b03 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,4 +42,6 @@ executionEnvironments = [ { root = "test/generated_sync_only", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, { root = "test/generated_async_only", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, { root = "mypy_protobuf/extensions_pb2.pyi", reportIncompatibleVariableOverride = "none" }, + { root = "test/async_only", extraPaths = ["test/generated_async_only"] }, + { root = "test/sync_only", extraPaths = ["test/generated_sync_only"] }, ] diff --git a/run_test.sh b/run_test.sh index f240ab99..03a74fe1 100755 --- a/run_test.sh +++ b/run_test.sh @@ -136,10 +136,10 @@ MYPY_PROTOBUF_VENV=venv_$PY_VER_MYPY_PROTOBUF find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=generate_concrete_servicer_stubs:test/generated_concrete # Generate with sync_only stubs for testing - find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_sync:test/generated-sync-only + find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_sync:test/generated_sync_only --mypy_out=test/generated_sync_only --python_out=test/generated_sync_only # Generate with async_only stubs for testing - find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_async:test/generated-async-only + find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_async:test/generated_async_only --mypy_out=test/generated_async_only --python_out=test/generated_async_only if [[ -n $VALIDATE ]] && ! diff <(echo "$SHA_BEFORE") <(find test/generated -name "*.pyi" -print0 | xargs -0 sha1sum); then echo -e "${RED}Some .pyi files did not match. Please commit those files${NC}" @@ -158,6 +158,8 @@ for PY_VER in $PY_VER_UNIT_TESTS; do ( source "$UNIT_TESTS_VENV"/bin/activate find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 python -m grpc_tools.protoc "${PROTOC_ARGS[@]}" --grpc_python_out=test/generated + find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 python -m grpc_tools.protoc "${PROTOC_ARGS[@]}" --grpc_python_out=test/generated_sync_only + find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 python -m grpc_tools.protoc "${PROTOC_ARGS[@]}" --grpc_python_out=test/generated_async_only ) # Run mypy on unit tests / generated output @@ -168,12 +170,12 @@ for PY_VER in $PY_VER_UNIT_TESTS; do MYPYPATH=$MYPYPATH:test/generated_concrete mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --report-deprecated-as-note --no-incremental --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${CONCRETE_MODULES[@]}" # Run sync_only mypy - SYNC_ONLY_MODULES=( -m test.test_sync_only ) - MYPYPATH=$MYPYPATH:test/generated-sync-only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${SYNC_ONLY_MODULES[@]}" + SYNC_ONLY_MODULES=( -m test.sync_only.test_sync_only ) + MYPYPATH=$MYPYPATH:test/generated_sync_only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${SYNC_ONLY_MODULES[@]}" # Run async_only mypy - ASYNC_ONLY_MODULES=( -m test.test_async_only ) - MYPYPATH=$MYPYPATH:test/generated-async-only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${ASYNC_ONLY_MODULES[@]}" + ASYNC_ONLY_MODULES=( -m test.async_only.test_async_only ) + MYPYPATH=$MYPYPATH:test/generated_async_only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${ASYNC_ONLY_MODULES[@]}" export MYPYPATH=$MYPYPATH:test/generated @@ -223,7 +225,7 @@ for PY_VER in $PY_VER_UNIT_TESTS; do ( # Run unit tests. source "$UNIT_TESTS_VENV"/bin/activate - PYTHONPATH=test/generated py.test --ignore=test/generated --ignore=test/generated-sync-only --ignore=test/generated-async-only -v + PYTHONPATH=test/generated py.test --ignore=test/generated --ignore=test/generated_sync_only --ignore=test/generated_async_only -v ) done diff --git a/test/async_only/test_async_only.py b/test/async_only/test_async_only.py new file mode 100644 index 00000000..57e45674 --- /dev/null +++ b/test/async_only/test_async_only.py @@ -0,0 +1,29 @@ +""" +Type-checking test for async_only GRPC stubs. + +This module is run through mypy to validate that stubs generated with the +only_async flag have the correct types: +- Regular (non-generic) Stub class that only accepts grpc.aio.Channel +- No AsyncStub type alias (the stub itself is async-only) +- Servicer methods use AsyncIterator for client streaming (not _MaybeAsyncIterator) +- add_XXXServicer_to_server accepts grpc.aio.Server +""" + +from typing import Awaitable +import grpc.aio +from testproto.grpc import dummy_pb2_grpc, dummy_pb2 + + +class AsyncOnlyServicer(dummy_pb2_grpc.DummyServiceServicer): + async def UnaryUnary( + self, + request: dummy_pb2.DummyRequest, + context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, Awaitable[dummy_pb2.DummyReply]], + ) -> dummy_pb2.DummyReply: + await context.abort(grpc.StatusCode.UNIMPLEMENTED, "Not implemented") + return dummy_pb2.DummyReply(value=request.value[::-1]) + + +async def main(): + stub = dummy_pb2_grpc.DummyServiceStub(channel=grpc.aio.insecure_channel("localhost:50051")) + await stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) diff --git a/test/generated-async-only/__init__.py b/test/generated-async-only/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.py b/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.py deleted file mode 100644 index 6fddb96c..00000000 --- a/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/Capitalized/Capitalized.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/Capitalized/Capitalized.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'testproto/Capitalized/Capitalized.proto\x12\x0b\x43\x61pitalized\"\x12\n\x05lower\x12\t\n\x01\x61\x18\x01 \x01(\x03\"*\n\x05Upper\x12!\n\x05Lower\x18\x01 \x01(\x0b\x32\x12.Capitalized.lower\"+\n\x06lower2\x12!\n\x05upper\x18\x01 \x01(\x0b\x32\x12.Capitalized.Upperb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.Capitalized.Capitalized_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_LOWER']._serialized_start=56 - _globals['_LOWER']._serialized_end=74 - _globals['_UPPER']._serialized_start=76 - _globals['_UPPER']._serialized_end=118 - _globals['_LOWER2']._serialized_start=120 - _globals['_LOWER2']._serialized_end=163 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.pyi b/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.pyi deleted file mode 100644 index 828d26f2..00000000 --- a/test/generated-async-only/testproto/Capitalized/Capitalized_pb2.pyi +++ /dev/null @@ -1,66 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class lower(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_FIELD_NUMBER: builtins.int - a: builtins.int - def __init__( - self, - *, - a: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... - -Global___lower: typing_extensions.TypeAlias = lower - -@typing.final -class Upper(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - LOWER_FIELD_NUMBER: builtins.int - @property - def Lower(self) -> Global___lower: ... - def __init__( - self, - *, - Lower: Global___lower | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["Lower", b"Lower"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["Lower", b"Lower"]) -> None: ... - -Global___Upper: typing_extensions.TypeAlias = Upper - -@typing.final -class lower2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - UPPER_FIELD_NUMBER: builtins.int - @property - def upper(self) -> Global___Upper: ... - def __init__( - self, - *, - upper: Global___Upper | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["upper", b"upper"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["upper", b"upper"]) -> None: ... - -Global___lower2: typing_extensions.TypeAlias = lower2 diff --git a/test/generated-async-only/testproto/Capitalized/__init__.py b/test/generated-async-only/testproto/Capitalized/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-async-only/testproto/__init__.py b/test/generated-async-only/testproto/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-async-only/testproto/comment_special_chars_pb2.py b/test/generated-async-only/testproto/comment_special_chars_pb2.py deleted file mode 100644 index 74655702..00000000 --- a/test/generated-async-only/testproto/comment_special_chars_pb2.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/comment_special_chars.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/comment_special_chars.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%testproto/comment_special_chars.proto\x12\x15\x63omment_special_chars\"\x7f\n\x04Test\x12\t\n\x01\x61\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\t\x12\t\n\x01\x63\x18\x03 \x01(\t\x12\t\n\x01\x64\x18\x04 \x01(\t\x12\t\n\x01\x65\x18\x05 \x01(\t\x12\t\n\x01\x66\x18\x06 \x01(\t\x12\t\n\x01g\x18\x07 \x01(\t\x12\t\n\x01h\x18\x08 \x01(\t\x12\t\n\x01i\x18\t \x01(\t\x12\t\n\x01j\x18\n \x01(\t\x12\t\n\x01k\x18\x0b \x01(\tb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.comment_special_chars_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_TEST']._serialized_start=64 - _globals['_TEST']._serialized_end=191 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/comment_special_chars_pb2.pyi b/test/generated-async-only/testproto/comment_special_chars_pb2.pyi deleted file mode 100644 index 21823424..00000000 --- a/test/generated-async-only/testproto/comment_special_chars_pb2.pyi +++ /dev/null @@ -1,82 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Test(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_FIELD_NUMBER: builtins.int - B_FIELD_NUMBER: builtins.int - C_FIELD_NUMBER: builtins.int - D_FIELD_NUMBER: builtins.int - E_FIELD_NUMBER: builtins.int - F_FIELD_NUMBER: builtins.int - G_FIELD_NUMBER: builtins.int - H_FIELD_NUMBER: builtins.int - I_FIELD_NUMBER: builtins.int - J_FIELD_NUMBER: builtins.int - K_FIELD_NUMBER: builtins.int - a: builtins.str - """Ending with " """ - b: builtins.str - """Ending with "" """ - c: builtins.str - """Ending with \"\"\" """ - d: builtins.str - """Ending with \\ """ - e: builtins.str - """Containing bad escape: \\x""" - f: builtins.str - """Containing \"\"\"" quadruple""" - g: builtins.str - """Containing \"\"\""" quintuple""" - h: builtins.str - """Containing \"\"\"\"\"\" sextuple""" - i: builtins.str - """\"\"\" Multiple \"\"\" triples \"\"\" """ - j: builtins.str - """"quotes" can be a problem in comments. - \"\"\"Triple quotes\"\"\" just as well - """ - k: builtins.str - """\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" - " " - " Super Duper comments with surrounding edges! " - " " - " Pay attention to me!!!! " - " " - \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" - """ - def __init__( - self, - *, - a: builtins.str = ..., - b: builtins.str = ..., - c: builtins.str = ..., - d: builtins.str = ..., - e: builtins.str = ..., - f: builtins.str = ..., - g: builtins.str = ..., - h: builtins.str = ..., - i: builtins.str = ..., - j: builtins.str = ..., - k: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.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: ... - -Global___Test: typing_extensions.TypeAlias = Test diff --git a/test/generated-async-only/testproto/dot/__init__.py b/test/generated-async-only/testproto/dot/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-async-only/testproto/dot/com/__init__.py b/test/generated-async-only/testproto/dot/com/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-async-only/testproto/dot/com/test_pb2.py b/test/generated-async-only/testproto/dot/com/test_pb2.py deleted file mode 100644 index de4a85eb..00000000 --- a/test/generated-async-only/testproto/dot/com/test_pb2.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/dot.com/test.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/dot.com/test.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ctestproto/dot.com/test.proto\x12\x04test\"\x1a\n\x0bTestMessage\x12\x0b\n\x03\x66oo\x18\x01 \x01(\tb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.dot.com.test_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_TESTMESSAGE']._serialized_start=38 - _globals['_TESTMESSAGE']._serialized_end=64 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/dot/com/test_pb2.pyi b/test/generated-async-only/testproto/dot/com/test_pb2.pyi deleted file mode 100644 index bb7e86c1..00000000 --- a/test/generated-async-only/testproto/dot/com/test_pb2.pyi +++ /dev/null @@ -1,32 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class TestMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FOO_FIELD_NUMBER: builtins.int - foo: builtins.str - def __init__( - self, - *, - foo: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["foo", b"foo"]) -> None: ... - -Global___TestMessage: typing_extensions.TypeAlias = TestMessage diff --git a/test/generated-async-only/testproto/edition2024_pb2.py b/test/generated-async-only/testproto/edition2024_pb2.py deleted file mode 100644 index 40e73646..00000000 --- a/test/generated-async-only/testproto/edition2024_pb2.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/edition2024.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/edition2024.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/edition2024.proto\x12\x04test\"\'\n\x16\x45\x64itions2024SubMessage\x12\r\n\x05thing\x18\x01 \x01(\t\"\xc3\x01\n\x10\x45\x64itions2024Test\x12\x15\n\x06legacy\x18\x01 \x01(\tB\x05\xaa\x01\x02\x08\x03\x12 \n\x11\x65xplicit_singular\x18\x02 \x01(\tB\x05\xaa\x01\x02\x08\x01\x12:\n\rmessage_field\x18\x03 \x01(\x0b\x32\x1c.test.Editions2024SubMessageB\x05\xaa\x01\x02\x08\x01\x12 \n\x11implicit_singular\x18\x04 \x01(\tB\x05\xaa\x01\x02\x08\x02\x12\x18\n\x10\x64\x65\x66\x61ult_singular\x18\x05 \x01(\tB\x05\x92\x03\x02 \x03\x62\x08\x65\x64itionsp\xe9\x07') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.edition2024_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\222\003\002 \003' - _globals['_EDITIONS2024TEST'].fields_by_name['legacy']._loaded_options = None - _globals['_EDITIONS2024TEST'].fields_by_name['legacy']._serialized_options = b'\252\001\002\010\003' - _globals['_EDITIONS2024TEST'].fields_by_name['explicit_singular']._loaded_options = None - _globals['_EDITIONS2024TEST'].fields_by_name['explicit_singular']._serialized_options = b'\252\001\002\010\001' - _globals['_EDITIONS2024TEST'].fields_by_name['message_field']._loaded_options = None - _globals['_EDITIONS2024TEST'].fields_by_name['message_field']._serialized_options = b'\252\001\002\010\001' - _globals['_EDITIONS2024TEST'].fields_by_name['implicit_singular']._loaded_options = None - _globals['_EDITIONS2024TEST'].fields_by_name['implicit_singular']._serialized_options = b'\252\001\002\010\002' - _globals['_EDITIONS2024SUBMESSAGE']._serialized_start=37 - _globals['_EDITIONS2024SUBMESSAGE']._serialized_end=76 - _globals['_EDITIONS2024TEST']._serialized_start=79 - _globals['_EDITIONS2024TEST']._serialized_end=274 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/edition2024_pb2.pyi b/test/generated-async-only/testproto/edition2024_pb2.pyi deleted file mode 100644 index 6de2ba64..00000000 --- a/test/generated-async-only/testproto/edition2024_pb2.pyi +++ /dev/null @@ -1,68 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -Edition version of proto2 file""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Editions2024SubMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - THING_FIELD_NUMBER: builtins.int - thing: builtins.str - def __init__( - self, - *, - thing: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["thing", b"thing"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["thing", b"thing"]) -> None: ... - -Global___Editions2024SubMessage: typing_extensions.TypeAlias = Editions2024SubMessage - -@typing.final -class Editions2024Test(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - LEGACY_FIELD_NUMBER: builtins.int - EXPLICIT_SINGULAR_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_FIELD_NUMBER: builtins.int - IMPLICIT_SINGULAR_FIELD_NUMBER: builtins.int - DEFAULT_SINGULAR_FIELD_NUMBER: builtins.int - legacy: builtins.str - """Expect to be always set""" - explicit_singular: builtins.str - """Expect HasField generated""" - implicit_singular: builtins.str - """Expect implicit field presence, no HasField generated""" - default_singular: builtins.str - """Not set, should default to EXPLICIT""" - @property - def message_field(self) -> Global___Editions2024SubMessage: - """Expect HasField generated?""" - - def __init__( - self, - *, - legacy: builtins.str | None = ..., - explicit_singular: builtins.str | None = ..., - message_field: Global___Editions2024SubMessage | None = ..., - implicit_singular: builtins.str = ..., - default_singular: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> None: ... - -Global___Editions2024Test: typing_extensions.TypeAlias = Editions2024Test diff --git a/test/generated-async-only/testproto/grpc/__init__.py b/test/generated-async-only/testproto/grpc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-async-only/testproto/inner/__init__.py b/test/generated-async-only/testproto/inner/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-async-only/testproto/inner/inner_pb2.py b/test/generated-async-only/testproto/inner/inner_pb2.py deleted file mode 100644 index fa5eac66..00000000 --- a/test/generated-async-only/testproto/inner/inner_pb2.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/inner/inner.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/inner/inner.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test3_pb2 as testproto_dot_test3__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/inner/inner.proto\x12\x05inner\x1a\x15testproto/test3.proto\"$\n\x05Inner\x12\x1b\n\x01\x61\x18\x01 \x01(\x0e\x32\x10.test3.OuterEnumb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.inner.inner_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_INNER']._serialized_start=61 - _globals['_INNER']._serialized_end=97 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/inner/inner_pb2.pyi b/test/generated-async-only/testproto/inner/inner_pb2.pyi deleted file mode 100644 index dc705d20..00000000 --- a/test/generated-async-only/testproto/inner/inner_pb2.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import testproto.test3_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Inner(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_FIELD_NUMBER: builtins.int - a: testproto.test3_pb2.OuterEnum.ValueType - def __init__( - self, - *, - a: testproto.test3_pb2.OuterEnum.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... - -Global___Inner: typing_extensions.TypeAlias = Inner diff --git a/test/generated-async-only/testproto/nested/__init__.py b/test/generated-async-only/testproto/nested/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-async-only/testproto/nested/nested_pb2.py b/test/generated-async-only/testproto/nested/nested_pb2.py deleted file mode 100644 index 4e269210..00000000 --- a/test/generated-async-only/testproto/nested/nested_pb2.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/nested/nested.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/nested/nested.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test3_pb2 as testproto_dot_test3__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dtestproto/nested/nested.proto\x12\x13test.nested_package\x1a\x15testproto/test3.proto\"%\n\x06Nested\x12\x1b\n\x01\x61\x18\x01 \x01(\x0e\x32\x10.test3.OuterEnum\"\xac\x02\n\rAnotherNested\x1a\xed\x01\n\rNestedMessage\x12\t\n\x01s\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\x08\x12\x39\n\x02ne\x18\x03 \x01(\x0e\x32-.test.nested_package.AnotherNested.NestedEnum\x12I\n\x03ne2\x18\x04 \x01(\x0e\x32<.test.nested_package.AnotherNested.NestedMessage.NestedEnum2\"@\n\x0bNestedEnum2\x12\r\n\tUNDEFINED\x10\x00\x12\x10\n\x0cNESTED_ENUM1\x10\x01\x12\x10\n\x0cNESTED_ENUM2\x10\x02\"+\n\nNestedEnum\x12\x0b\n\x07INVALID\x10\x00\x12\x07\n\x03ONE\x10\x01\x12\x07\n\x03TWO\x10\x02\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.nested.nested_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_NESTED']._serialized_start=77 - _globals['_NESTED']._serialized_end=114 - _globals['_ANOTHERNESTED']._serialized_start=117 - _globals['_ANOTHERNESTED']._serialized_end=417 - _globals['_ANOTHERNESTED_NESTEDMESSAGE']._serialized_start=135 - _globals['_ANOTHERNESTED_NESTEDMESSAGE']._serialized_end=372 - _globals['_ANOTHERNESTED_NESTEDMESSAGE_NESTEDENUM2']._serialized_start=308 - _globals['_ANOTHERNESTED_NESTEDMESSAGE_NESTEDENUM2']._serialized_end=372 - _globals['_ANOTHERNESTED_NESTEDENUM']._serialized_start=374 - _globals['_ANOTHERNESTED_NESTEDENUM']._serialized_end=417 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/nested/nested_pb2.pyi b/test/generated-async-only/testproto/nested/nested_pb2.pyi deleted file mode 100644 index e382df0a..00000000 --- a/test/generated-async-only/testproto/nested/nested_pb2.pyi +++ /dev/null @@ -1,96 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import testproto.test3_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Nested(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_FIELD_NUMBER: builtins.int - a: testproto.test3_pb2.OuterEnum.ValueType - def __init__( - self, - *, - a: testproto.test3_pb2.OuterEnum.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... - -Global___Nested: typing_extensions.TypeAlias = Nested - -@typing.final -class AnotherNested(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _NestedEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _NestedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested._NestedEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - INVALID: AnotherNested._NestedEnum.ValueType # 0 - ONE: AnotherNested._NestedEnum.ValueType # 1 - TWO: AnotherNested._NestedEnum.ValueType # 2 - - class NestedEnum(_NestedEnum, metaclass=_NestedEnumEnumTypeWrapper): ... - INVALID: AnotherNested.NestedEnum.ValueType # 0 - ONE: AnotherNested.NestedEnum.ValueType # 1 - TWO: AnotherNested.NestedEnum.ValueType # 2 - - @typing.final - class NestedMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _NestedEnum2: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _NestedEnum2EnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested.NestedMessage._NestedEnum2.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNDEFINED: AnotherNested.NestedMessage._NestedEnum2.ValueType # 0 - NESTED_ENUM1: AnotherNested.NestedMessage._NestedEnum2.ValueType # 1 - NESTED_ENUM2: AnotherNested.NestedMessage._NestedEnum2.ValueType # 2 - - class NestedEnum2(_NestedEnum2, metaclass=_NestedEnum2EnumTypeWrapper): ... - UNDEFINED: AnotherNested.NestedMessage.NestedEnum2.ValueType # 0 - NESTED_ENUM1: AnotherNested.NestedMessage.NestedEnum2.ValueType # 1 - NESTED_ENUM2: AnotherNested.NestedMessage.NestedEnum2.ValueType # 2 - - S_FIELD_NUMBER: builtins.int - B_FIELD_NUMBER: builtins.int - NE_FIELD_NUMBER: builtins.int - NE2_FIELD_NUMBER: builtins.int - s: builtins.str - b: builtins.bool - ne: Global___AnotherNested.NestedEnum.ValueType - ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType - def __init__( - self, - *, - s: builtins.str = ..., - b: builtins.bool = ..., - ne: Global___AnotherNested.NestedEnum.ValueType = ..., - ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["b", b"b", "ne", b"ne", "ne2", b"ne2", "s", b"s"]) -> None: ... - - def __init__( - self, - ) -> None: ... - -Global___AnotherNested: typing_extensions.TypeAlias = AnotherNested diff --git a/test/generated-async-only/testproto/nopackage_pb2.py b/test/generated-async-only/testproto/nopackage_pb2.py deleted file mode 100644 index 25e501fb..00000000 --- a/test/generated-async-only/testproto/nopackage_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/nopackage.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/nopackage.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19testproto/nopackage.proto\"\x0b\n\tNoPackage\"@\n\nNoPackage2\x12\x16\n\x02np\x18\x01 \x01(\x0b\x32\n.NoPackage\x12\x1a\n\x06np_rep\x18\x02 \x03(\x0b\x32\n.NoPackageb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.nopackage_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_NOPACKAGE']._serialized_start=29 - _globals['_NOPACKAGE']._serialized_end=40 - _globals['_NOPACKAGE2']._serialized_start=42 - _globals['_NOPACKAGE2']._serialized_end=106 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/nopackage_pb2.pyi b/test/generated-async-only/testproto/nopackage_pb2.pyi deleted file mode 100644 index 7925439c..00000000 --- a/test/generated-async-only/testproto/nopackage_pb2.pyi +++ /dev/null @@ -1,52 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class NoPackage(google.protobuf.message.Message): - """Intentionally don't set a package - just to make sure we can handle it.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___NoPackage: typing_extensions.TypeAlias = NoPackage - -@typing.final -class NoPackage2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NP_FIELD_NUMBER: builtins.int - NP_REP_FIELD_NUMBER: builtins.int - @property - def np(self) -> Global___NoPackage: ... - @property - def np_rep(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NoPackage]: ... - def __init__( - self, - *, - np: Global___NoPackage | None = ..., - np_rep: collections.abc.Iterable[Global___NoPackage] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["np", b"np"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["np", b"np", "np_rep", b"np_rep"]) -> None: ... - -Global___NoPackage2: typing_extensions.TypeAlias = NoPackage2 diff --git a/test/generated-async-only/testproto/readme_enum_pb2.py b/test/generated-async-only/testproto/readme_enum_pb2.py deleted file mode 100644 index bfce5038..00000000 --- a/test/generated-async-only/testproto/readme_enum_pb2.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/readme_enum.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/readme_enum.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/readme_enum.proto\x12\x04test*\x1e\n\x06MyEnum\x12\t\n\x05HELLO\x10\x00\x12\t\n\x05WORLD\x10\x01\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.readme_enum_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_MYENUM']._serialized_start=37 - _globals['_MYENUM']._serialized_end=67 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/readme_enum_pb2.pyi b/test/generated-async-only/testproto/readme_enum_pb2.pyi deleted file mode 100644 index be8369c4..00000000 --- a/test/generated-async-only/testproto/readme_enum_pb2.pyi +++ /dev/null @@ -1,32 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _MyEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _MyEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MyEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - HELLO: _MyEnum.ValueType # 0 - WORLD: _MyEnum.ValueType # 1 - -class MyEnum(_MyEnum, metaclass=_MyEnumEnumTypeWrapper): ... - -HELLO: MyEnum.ValueType # 0 -WORLD: MyEnum.ValueType # 1 -Global___MyEnum: typing_extensions.TypeAlias = MyEnum diff --git a/test/generated-async-only/testproto/reexport_pb2.py b/test/generated-async-only/testproto/reexport_pb2.py deleted file mode 100644 index bebe651b..00000000 --- a/test/generated-async-only/testproto/reexport_pb2.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/reexport.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/reexport.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test3_pb2 as testproto_dot_test3__pb2 -from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -from testproto.inner import inner_pb2 as testproto_dot_inner_dot_inner__pb2 - -from testproto.test3_pb2 import * -from google.protobuf.empty_pb2 import * - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18testproto/reexport.proto\x12\x05test3\x1a\x15testproto/test3.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1btestproto/inner/inner.protoP\x00P\x01\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.reexport_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/reexport_pb2.pyi b/test/generated-async-only/testproto/reexport_pb2.pyi deleted file mode 100644 index 9702c2bd..00000000 --- a/test/generated-async-only/testproto/reexport_pb2.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import google.protobuf.descriptor -from google.protobuf.empty_pb2 import ( - Empty as Empty, -) -from testproto.test3_pb2 import ( - BAR3 as BAR3, - FOO3 as FOO3, - OuterEnum as OuterEnum, - OuterMessage3 as OuterMessage3, - SimpleProto3 as SimpleProto3, - UNKNOWN as UNKNOWN, -) - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated-async-only/testproto/test3_pb2.py b/test/generated-async-only/testproto/test3_pb2.py deleted file mode 100644 index 3b164270..00000000 --- a/test/generated-async-only/testproto/test3_pb2.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test3.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test3.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from mypy_protobuf import extensions_pb2 as mypy__protobuf_dot_extensions__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15testproto/test3.proto\x12\x05test3\x1a\x1emypy_protobuf/extensions.proto\"!\n\rOuterMessage3\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\"\xb3\t\n\x0cSimpleProto3\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\x12\x19\n\x11\x61_repeated_string\x18\x02 \x03(\t\x12&\n\x0c\x61_outer_enum\x18\x03 \x01(\x0e\x32\x10.test3.OuterEnum\x12+\n\router_message\x18\x04 \x01(\x0b\x32\x14.test3.OuterMessage3\x12\x31\n\ninner_enum\x18\x0f \x01(\x0e\x32\x1d.test3.SimpleProto3.InnerEnum\x12\x13\n\ta_oneof_1\x18\x05 \x01(\tH\x00\x12\x13\n\ta_oneof_2\x18\x06 \x01(\tH\x00\x12\x36\n\x16outer_message_in_oneof\x18\x0c \x01(\x0b\x32\x14.test3.OuterMessage3H\x00\x12/\n\x13outer_enum_in_oneof\x18\r \x01(\x0e\x32\x10.test3.OuterEnumH\x00\x12<\n\x13inner_enum_in_oneof\x18\x0e \x01(\x0e\x32\x1d.test3.SimpleProto3.InnerEnumH\x00\x12\x13\n\tb_oneof_1\x18\x07 \x01(\tH\x01\x12\x13\n\tb_oneof_2\x18\x08 \x01(\tH\x01\x12\"\n\x04\x62ool\x18\t \x01(\x0b\x32\x14.test3.OuterMessage3\x12#\n\tOuterEnum\x18\n \x01(\x0e\x32\x10.test3.OuterEnum\x12+\n\rOuterMessage3\x18\x0b \x01(\x0b\x32\x14.test3.OuterMessage3\x12\x36\n\nmap_scalar\x18\x10 \x03(\x0b\x32\".test3.SimpleProto3.MapScalarEntry\x12\x38\n\x0bmap_message\x18\x11 \x03(\x0b\x32#.test3.SimpleProto3.MapMessageEntry\x12\x1f\n\x12\x61n_optional_string\x18\x12 \x01(\tH\x02\x88\x01\x01\x12\x35\n\x07user_id\x18\x13 \x01(\rB$\x92H!\n\x1ftest/test_generated_mypy.UserId\x12\x32\n\x05\x65mail\x18\x14 \x01(\tB#\x92H \n\x1etest/test_generated_mypy.Email\x12\x7f\n\x0c\x65mail_by_uid\x18\x15 \x03(\x0b\x32#.test3.SimpleProto3.EmailByUidEntryBD\x92HA\x12\x1ftest/test_generated_mypy.UserId\x1a\x1etest/test_generated_mypy.Email\x1a\x30\n\x0eMapScalarEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aG\n\x0fMapMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.test3.OuterMessage3:\x02\x38\x01\x1a\x31\n\x0f\x45mailByUidEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"#\n\tInnerEnum\x12\n\n\x06INNER1\x10\x00\x12\n\n\x06INNER2\x10\x01\x42\t\n\x07\x61_oneofB\t\n\x07\x62_oneofB\x15\n\x13_an_optional_string*,\n\tOuterEnum\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x46OO3\x10\x01\x12\x08\n\x04\x42\x41R3\x10\x02\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test3_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._loaded_options = None - _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_options = b'8\001' - _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._loaded_options = None - _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_options = b'8\001' - _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._loaded_options = None - _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_options = b'8\001' - _globals['_SIMPLEPROTO3'].fields_by_name['user_id']._loaded_options = None - _globals['_SIMPLEPROTO3'].fields_by_name['user_id']._serialized_options = b'\222H!\n\037test/test_generated_mypy.UserId' - _globals['_SIMPLEPROTO3'].fields_by_name['email']._loaded_options = None - _globals['_SIMPLEPROTO3'].fields_by_name['email']._serialized_options = b'\222H \n\036test/test_generated_mypy.Email' - _globals['_SIMPLEPROTO3'].fields_by_name['email_by_uid']._loaded_options = None - _globals['_SIMPLEPROTO3'].fields_by_name['email_by_uid']._serialized_options = b'\222HA\022\037test/test_generated_mypy.UserId\032\036test/test_generated_mypy.Email' - _globals['_OUTERENUM']._serialized_start=1305 - _globals['_OUTERENUM']._serialized_end=1349 - _globals['_OUTERMESSAGE3']._serialized_start=64 - _globals['_OUTERMESSAGE3']._serialized_end=97 - _globals['_SIMPLEPROTO3']._serialized_start=100 - _globals['_SIMPLEPROTO3']._serialized_end=1303 - _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_start=1049 - _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_end=1097 - _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_start=1099 - _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_end=1170 - _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_start=1172 - _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_end=1221 - _globals['_SIMPLEPROTO3_INNERENUM']._serialized_start=1223 - _globals['_SIMPLEPROTO3_INNERENUM']._serialized_end=1258 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test3_pb2.pyi b/test/generated-async-only/testproto/test3_pb2.pyi deleted file mode 100644 index f239d860..00000000 --- a/test/generated-async-only/testproto/test3_pb2.pyi +++ /dev/null @@ -1,209 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -package test3""" - -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import test.test_generated_mypy -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _OuterEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNKNOWN: _OuterEnum.ValueType # 0 - FOO3: _OuterEnum.ValueType # 1 - BAR3: _OuterEnum.ValueType # 2 - -class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): ... - -UNKNOWN: OuterEnum.ValueType # 0 -FOO3: OuterEnum.ValueType # 1 -BAR3: OuterEnum.ValueType # 2 -Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum - -@typing.final -class OuterMessage3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___OuterMessage3: typing_extensions.TypeAlias = OuterMessage3 - -@typing.final -class SimpleProto3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _InnerEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SimpleProto3._InnerEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - INNER1: SimpleProto3._InnerEnum.ValueType # 0 - INNER2: SimpleProto3._InnerEnum.ValueType # 1 - - class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): ... - INNER1: SimpleProto3.InnerEnum.ValueType # 0 - INNER2: SimpleProto3.InnerEnum.ValueType # 1 - - @typing.final - class MapScalarEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.int - value: builtins.str - def __init__( - self, - *, - key: builtins.int = ..., - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - - @typing.final - class MapMessageEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.int - @property - def value(self) -> Global___OuterMessage3: ... - def __init__( - self, - *, - key: builtins.int = ..., - value: Global___OuterMessage3 | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - - @typing.final - class EmailByUidEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.int - value: builtins.str - def __init__( - self, - *, - key: builtins.int = ..., - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - - A_STRING_FIELD_NUMBER: builtins.int - A_REPEATED_STRING_FIELD_NUMBER: builtins.int - A_OUTER_ENUM_FIELD_NUMBER: builtins.int - OUTER_MESSAGE_FIELD_NUMBER: builtins.int - INNER_ENUM_FIELD_NUMBER: builtins.int - A_ONEOF_1_FIELD_NUMBER: builtins.int - A_ONEOF_2_FIELD_NUMBER: builtins.int - OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int - OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int - INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int - B_ONEOF_1_FIELD_NUMBER: builtins.int - B_ONEOF_2_FIELD_NUMBER: builtins.int - BOOL_FIELD_NUMBER: builtins.int - OUTERENUM_FIELD_NUMBER: builtins.int - OUTERMESSAGE3_FIELD_NUMBER: builtins.int - MAP_SCALAR_FIELD_NUMBER: builtins.int - MAP_MESSAGE_FIELD_NUMBER: builtins.int - AN_OPTIONAL_STRING_FIELD_NUMBER: builtins.int - USER_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - EMAIL_BY_UID_FIELD_NUMBER: builtins.int - a_string: builtins.str - a_outer_enum: Global___OuterEnum.ValueType - inner_enum: Global___SimpleProto3.InnerEnum.ValueType - a_oneof_1: builtins.str - a_oneof_2: builtins.str - outer_enum_in_oneof: Global___OuterEnum.ValueType - inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType - b_oneof_1: builtins.str - b_oneof_2: builtins.str - OuterEnum: Global___OuterEnum.ValueType - """Test having fieldname match messagename""" - an_optional_string: builtins.str - user_id: test.test_generated_mypy.UserId - email: test.test_generated_mypy.Email - @property - def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def outer_message(self) -> Global___OuterMessage3: ... - @property - def outer_message_in_oneof(self) -> Global___OuterMessage3: ... - @property - def bool(self) -> Global___OuterMessage3: ... - @property - def OuterMessage3(self) -> Global___OuterMessage3: ... - @property - def map_scalar(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.str]: - """Test generation of map""" - - @property - def map_message(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, Global___OuterMessage3]: ... - @property - def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... - def __init__( - self, - *, - a_string: builtins.str = ..., - a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., - a_outer_enum: Global___OuterEnum.ValueType = ..., - outer_message: Global___OuterMessage3 | None = ..., - inner_enum: Global___SimpleProto3.InnerEnum.ValueType = ..., - a_oneof_1: builtins.str = ..., - a_oneof_2: builtins.str = ..., - outer_message_in_oneof: Global___OuterMessage3 | None = ..., - outer_enum_in_oneof: Global___OuterEnum.ValueType = ..., - inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType = ..., - b_oneof_1: builtins.str = ..., - b_oneof_2: builtins.str = ..., - bool: Global___OuterMessage3 | None = ..., - OuterEnum: Global___OuterEnum.ValueType = ..., - OuterMessage3: Global___OuterMessage3 | None = ..., - map_scalar: collections.abc.Mapping[builtins.int, builtins.str] | None = ..., - map_message: collections.abc.Mapping[builtins.int, Global___OuterMessage3] | None = ..., - an_optional_string: builtins.str | None = ..., - user_id: test.test_generated_mypy.UserId = ..., - email: test.test_generated_mypy.Email = ..., - email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "inner_enum_in_oneof", b"inner_enum_in_oneof", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["OuterEnum", b"OuterEnum", "OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_outer_enum", b"a_outer_enum", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "map_message", b"map_message", "map_scalar", b"map_scalar", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["_an_optional_string", b"_an_optional_string"]) -> typing.Literal["an_optional_string"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["a_oneof", b"a_oneof"]) -> typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["b_oneof", b"b_oneof"]) -> typing.Literal["b_oneof_1", "b_oneof_2"] | None: ... - -Global___SimpleProto3: typing_extensions.TypeAlias = SimpleProto3 diff --git a/test/generated-async-only/testproto/test_extensions2_pb2.py b/test/generated-async-only/testproto/test_extensions2_pb2.py deleted file mode 100644 index 58c277cb..00000000 --- a/test/generated-async-only/testproto/test_extensions2_pb2.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test_extensions2.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test_extensions2.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test_pb2 as testproto_dot_test__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n testproto/test_extensions2.proto\x12\x04test\x1a\x14testproto/test.proto\"_\n\x15SeparateFileExtension\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x08\x32\x38\n\x03\x65xt\x12\r.test.Simple2\x18\xe9\x07 \x01(\x0b\x32\x1b.test.SeparateFileExtension') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_extensions2_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_SEPARATEFILEEXTENSION']._serialized_start=64 - _globals['_SEPARATEFILEEXTENSION']._serialized_end=159 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test_extensions2_pb2.pyi b/test/generated-async-only/testproto/test_extensions2_pb2.pyi deleted file mode 100644 index b8e9f652..00000000 --- a/test/generated-async-only/testproto/test_extensions2_pb2.pyi +++ /dev/null @@ -1,37 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.extension_dict -import google.protobuf.message -import sys -import testproto.test_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class SeparateFileExtension(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FLAG_FIELD_NUMBER: builtins.int - flag: builtins.bool - EXT_FIELD_NUMBER: builtins.int - ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[testproto.test_pb2.Simple2, Global___SeparateFileExtension] - def __init__( - self, - *, - flag: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["flag", b"flag"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["flag", b"flag"]) -> None: ... - -Global___SeparateFileExtension: typing_extensions.TypeAlias = SeparateFileExtension diff --git a/test/generated-async-only/testproto/test_extensions3_pb2.py b/test/generated-async-only/testproto/test_extensions3_pb2.py deleted file mode 100644 index 4bc39093..00000000 --- a/test/generated-async-only/testproto/test_extensions3_pb2.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test_extensions3.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test_extensions3.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -from testproto import test3_pb2 as testproto_dot_test3__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n testproto/test_extensions3.proto\x12\x05test3\x1a google/protobuf/descriptor.proto\x1a\x15testproto/test3.proto\"\x91\x01\n\x15MessageOptionsTestMsg:x\x92\x82\x19\x0cHello world!\x9a\x82\x19\x01\x41\x9a\x82\x19\x01\x42\x9a\x82\x19\x01\x43\xa0\x82\x19\x01\xaa\x82\x19\x02\x01\x02\xb2\x82\x19\x15\n\x13Hello OuterMessage3\xba\x82\x19\x17\n\x15Hello OuterMessage3 A\xba\x82\x19\x17\n\x15Hello OuterMessage3 B:=\n\x14test_field_extension\x12\x1d.google.protobuf.FieldOptions\x18\xd0\x86\x03 \x01(\t:8\n\rscalar_option\x12\x1f.google.protobuf.MessageOptions\x18\xa2\x90\x03 \x01(\t:A\n\x16repeated_scalar_option\x12\x1f.google.protobuf.MessageOptions\x18\xa3\x90\x03 \x03(\t:H\n\x0b\x65num_option\x12\x1f.google.protobuf.MessageOptions\x18\xa4\x90\x03 \x01(\x0e\x32\x10.test3.OuterEnum:Q\n\x14repeated_enum_option\x12\x1f.google.protobuf.MessageOptions\x18\xa5\x90\x03 \x03(\x0e\x32\x10.test3.OuterEnum:K\n\nmsg_option\x12\x1f.google.protobuf.MessageOptions\x18\xa6\x90\x03 \x01(\x0b\x32\x14.test3.OuterMessage3:T\n\x13repeated_msg_option\x12\x1f.google.protobuf.MessageOptions\x18\xa7\x90\x03 \x03(\x0b\x32\x14.test3.OuterMessage3b\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_extensions3_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_MESSAGEOPTIONSTESTMSG']._loaded_options = None - _globals['_MESSAGEOPTIONSTESTMSG']._serialized_options = b'\222\202\031\014Hello world!\232\202\031\001A\232\202\031\001B\232\202\031\001C\240\202\031\001\252\202\031\002\001\002\262\202\031\025\n\023Hello OuterMessage3\272\202\031\027\n\025Hello OuterMessage3 A\272\202\031\027\n\025Hello OuterMessage3 B' - _globals['_MESSAGEOPTIONSTESTMSG']._serialized_start=101 - _globals['_MESSAGEOPTIONSTESTMSG']._serialized_end=246 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test_extensions3_pb2.pyi b/test/generated-async-only/testproto/test_extensions3_pb2.pyi deleted file mode 100644 index f2292855..00000000 --- a/test/generated-async-only/testproto/test_extensions3_pb2.pyi +++ /dev/null @@ -1,46 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.descriptor_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.extension_dict -import google.protobuf.message -import sys -import testproto.test3_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class MessageOptionsTestMsg(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___MessageOptionsTestMsg: typing_extensions.TypeAlias = MessageOptionsTestMsg - -TEST_FIELD_EXTENSION_FIELD_NUMBER: builtins.int -SCALAR_OPTION_FIELD_NUMBER: builtins.int -REPEATED_SCALAR_OPTION_FIELD_NUMBER: builtins.int -ENUM_OPTION_FIELD_NUMBER: builtins.int -REPEATED_ENUM_OPTION_FIELD_NUMBER: builtins.int -MSG_OPTION_FIELD_NUMBER: builtins.int -REPEATED_MSG_OPTION_FIELD_NUMBER: builtins.int -test_field_extension: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str] -scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.str] -repeated_scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]] -enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterEnum.ValueType] -repeated_enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[testproto.test3_pb2.OuterEnum.ValueType]] -msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterMessage3] -repeated_msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedCompositeFieldContainer[testproto.test3_pb2.OuterMessage3]] diff --git a/test/generated-async-only/testproto/test_no_generic_services_pb2.py b/test/generated-async-only/testproto/test_no_generic_services_pb2.py deleted file mode 100644 index 532c253b..00000000 --- a/test/generated-async-only/testproto/test_no_generic_services_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test_no_generic_services.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test_no_generic_services.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(testproto/test_no_generic_services.proto\x12\x04test\"\x1b\n\x07Simple3\x12\x10\n\x08\x61_string\x18\x01 \x02(\t27\n\rATestService2\x12&\n\x04\x45\x63ho\x12\r.test.Simple3\x1a\r.test.Simple3\"\x00') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_no_generic_services_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_SIMPLE3']._serialized_start=50 - _globals['_SIMPLE3']._serialized_end=77 - _globals['_ATESTSERVICE2']._serialized_start=79 - _globals['_ATESTSERVICE2']._serialized_end=134 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test_no_generic_services_pb2.pyi b/test/generated-async-only/testproto/test_no_generic_services_pb2.pyi deleted file mode 100644 index 3a350109..00000000 --- a/test/generated-async-only/testproto/test_no_generic_services_pb2.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Simple3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___Simple3: typing_extensions.TypeAlias = Simple3 diff --git a/test/generated-async-only/testproto/test_pb2.py b/test/generated-async-only/testproto/test_pb2.py deleted file mode 100644 index cfeef244..00000000 --- a/test/generated-async-only/testproto/test_pb2.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from mypy_protobuf import extensions_pb2 as mypy__protobuf_dot_extensions__pb2 -from testproto.inner import inner_pb2 as testproto_dot_inner_dot_inner__pb2 -from testproto.nested import nested_pb2 as testproto_dot_nested_dot_nested__pb2 -from testproto import nopackage_pb2 as testproto_dot_nopackage__pb2 -from testproto import test3_pb2 as testproto_dot_test3__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14testproto/test.proto\x12\x04test\x1a\x1emypy_protobuf/extensions.proto\x1a\x1btestproto/inner/inner.proto\x1a\x1dtestproto/nested/nested.proto\x1a\x19testproto/nopackage.proto\x1a\x15testproto/test3.proto\"\x8d\t\n\x07Simple1\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\x12\x19\n\x11\x61_repeated_string\x18\x02 \x03(\t\x12\x11\n\ta_boolean\x18\x03 \x01(\x08\x12\x10\n\x08\x61_uint32\x18\x04 \x01(\r\x12\x1f\n\x06\x61_enum\x18\x05 \x01(\x0e\x32\x0f.test.OuterEnum\x12)\n\x0f\x61_external_enum\x18\x06 \x01(\x0e\x32\x10.test3.OuterEnum\x12\x1d\n\x07\x61_inner\x18\x07 \x01(\x0b\x32\x0c.inner.Inner\x12-\n\x08\x61_nested\x18\x0c \x01(\x0b\x32\x1b.test.nested_package.Nested\x12+\n\ninner_enum\x18\x08 \x01(\x0e\x32\x17.test.Simple1.InnerEnum\x12/\n\x0erep_inner_enum\x18\t \x03(\x0e\x32\x17.test.Simple1.InnerEnum\x12\x31\n\rinner_message\x18\n \x01(\x0b\x32\x1a.test.Simple1.InnerMessage\x12\x35\n\x11rep_inner_message\x18\x0b \x03(\x0b\x32\x1a.test.Simple1.InnerMessage\x12\x1e\n\nno_package\x18\r \x01(\x0b\x32\n.NoPackage\x12\x42\n\x0bnested_enum\x18\x0e \x01(\x0e\x32-.test.nested_package.AnotherNested.NestedEnum\x12H\n\x0enested_message\x18\x0f \x01(\x0b\x32\x30.test.nested_package.AnotherNested.NestedMessage\x12\x13\n\ta_oneof_1\x18\x10 \x01(\tH\x00\x12\x13\n\ta_oneof_2\x18\x11 \x01(\tH\x00\x12/\n\x16outer_message_in_oneof\x18\x12 \x01(\x0b\x32\r.test.Simple2H\x00\x12.\n\x13outer_enum_in_oneof\x18\x13 \x01(\x0e\x32\x0f.test.OuterEnumH\x00\x12\x36\n\x13inner_enum_in_oneof\x18\x14 \x01(\x0e\x32\x17.test.Simple1.InnerEnumH\x00\x12\x33\n\x07user_id\x18\x15 \x01(\rB\"\xfaG\x1ftest/test_generated_mypy.UserId\x12\x30\n\x05\x65mail\x18\x16 \x01(\tB!\xfaG\x1etest/test_generated_mypy.Email\x12x\n\x0c\x65mail_by_uid\x18\x17 \x03(\x0b\x32\x1d.test.Simple1.EmailByUidEntryBC\x82H\x1ftest/test_generated_mypy.UserId\x8aH\x1etest/test_generated_mypy.Email\x1a\x0e\n\x0cInnerMessage\x1a\x31\n\x0f\x45mailByUidEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"#\n\tInnerEnum\x12\n\n\x06INNER1\x10\x01\x12\n\n\x06INNER2\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\t\n\x07\x61_oneof\"&\n\x07Simple2\x12\x10\n\x08\x61_string\x18\x01 \x02(\t*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"R\n\x0b\x45xtensions1\x12\x13\n\x0b\x65xt1_string\x18\x01 \x01(\t2.\n\x03\x65xt\x12\r.test.Simple1\x18\xe8\x07 \x01(\x0b\x32\x11.test.Extensions1\"K\n\x0b\x45xtensions2\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x08\x32.\n\x03\x66oo\x12\r.test.Simple1\x18\xe4\x0f \x01(\x0b\x32\x11.test.Extensions2\"\x15\n\x04None\x12\r\n\x05valid\x18\x01 \x01(\x03\"\x80\x05\n\x16PythonReservedKeywords\x12\x0c\n\x04\x66rom\x18\x01 \x02(\x03\x12\x19\n\x02in\x18\x02 \x01(\x0b\x32\r.test.Simple2\x12\x30\n\x02is\x18\x03 \x01(\x0e\x32$.test.PythonReservedKeywords.finally\x12\x0b\n\x03\x66or\x18\x05 \x01(\x03\x12\x0b\n\x03try\x18\x06 \x01(\x03\x12\x0b\n\x03\x64\x65\x66\x18\x07 \x01(\x03\x12\x10\n\x08nonlocal\x18\x08 \x01(\x03\x12\r\n\x05while\x18\t \x01(\x03\x12\x0b\n\x03\x61nd\x18\n \x01(\x03\x12\x0b\n\x03\x64\x65l\x18\x0b \x01(\x03\x12\x0e\n\x06global\x18\x0c \x01(\x03\x12\x0b\n\x03not\x18\r \x01(\x03\x12\x0c\n\x04with\x18\x0e \x01(\x03\x12\n\n\x02\x61s\x18\x0f \x01(\x03\x12\x0c\n\x04\x65lif\x18\x10 \x01(\x03\x12\n\n\x02if\x18\x11 \x01(\x03\x12\n\n\x02or\x18\x12 \x01(\x03\x12\r\n\x05yield\x18\x13 \x01(\x03\x12\x0e\n\x06\x61ssert\x18\x14 \x01(\x03\x12\x0c\n\x04\x65lse\x18\x15 \x01(\x03\x12\x0e\n\x06import\x18\x16 \x01(\x03\x12\x0c\n\x04pass\x18\x17 \x01(\x03\x12\r\n\x05\x62reak\x18\x18 \x01(\x03\x12\x0e\n\x06\x65xcept\x18\x19 \x01(\x03\x12\r\n\x05raise\x18\x1a \x01(\x03\x12\r\n\x05\x46\x61lse\x18\x1b \x01(\x03\x12\x0c\n\x04True\x18\x1d \x01(\x03\x12\r\n\x05\x63lass\x18\x1e \x01(\x03\x12\x18\n\x04none\x18\x1c \x01(\x0b\x32\n.test.None\x12\x33\n\x05valid\x18\x1f \x01(\x0e\x32$.test.PythonReservedKeywords.finally\x1a)\n\x06lambda\x12\x10\n\x08\x63ontinue\x18\x01 \x01(\x03\x12\r\n\x05valid\x18\x02 \x01(\x03\"-\n\x07\x66inally\x12\x0c\n\x08\x63ontinue\x10\x01\x12\x14\n\x10valid_in_finally\x10\x02\"+\n\x1bPythonReservedKeywordsSmall\x12\x0c\n\x04\x66rom\x18\x01 \x02(\x03\"\x19\n\tSelfField\x12\x0c\n\x04self\x18\x01 \x01(\x03\")\n\x11\x44\x65precatedMessage\x12\x10\n\x08\x61_string\x18\x01 \x01(\t:\x02\x18\x01\"3\n\x1b\x44\x65precatedMessageBadComment\x12\x10\n\x08\x61_string\x18\x01 \x01(\t:\x02\x18\x01*\x1d\n\tOuterEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02*G\n\x0fNamingConflicts\x12\x08\n\x04Name\x10\x01\x12\t\n\x05Value\x10\x02\x12\x08\n\x04keys\x10\x03\x12\n\n\x06values\x10\x04\x12\t\n\x05items\x10\x05*<\n\x0e\x44\x65precatedEnum\x12\x12\n\x0e\x44\x45PRECATED_ONE\x10\x01\x12\x12\n\x0e\x44\x45PRECATED_TWO\x10\x02\x1a\x02\x18\x01\x32\xde\x01\n\x1dPythonReservedKeywordsService\x12>\n\x06lambda\x12\r.test.Simple1\x1a#.test.PythonReservedKeywords.lambda\"\x00\x12\x31\n\x12valid_method_name1\x12\r.test.Simple1\x1a\n.test.None\"\x00\x12J\n\x12valid_method_name2\x12\r.test.Simple1\x1a#.test.PythonReservedKeywords.lambda\"\x00') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_DEPRECATEDENUM']._loaded_options = None - _globals['_DEPRECATEDENUM']._serialized_options = b'\030\001' - _globals['_SIMPLE1_EMAILBYUIDENTRY']._loaded_options = None - _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_options = b'8\001' - _globals['_SIMPLE1'].fields_by_name['user_id']._loaded_options = None - _globals['_SIMPLE1'].fields_by_name['user_id']._serialized_options = b'\372G\037test/test_generated_mypy.UserId' - _globals['_SIMPLE1'].fields_by_name['email']._loaded_options = None - _globals['_SIMPLE1'].fields_by_name['email']._serialized_options = b'\372G\036test/test_generated_mypy.Email' - _globals['_SIMPLE1'].fields_by_name['email_by_uid']._loaded_options = None - _globals['_SIMPLE1'].fields_by_name['email_by_uid']._serialized_options = b'\202H\037test/test_generated_mypy.UserId\212H\036test/test_generated_mypy.Email' - _globals['_DEPRECATEDMESSAGE']._loaded_options = None - _globals['_DEPRECATEDMESSAGE']._serialized_options = b'\030\001' - _globals['_DEPRECATEDMESSAGEBADCOMMENT']._loaded_options = None - _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_options = b'\030\001' - _globals['_OUTERENUM']._serialized_start=2375 - _globals['_OUTERENUM']._serialized_end=2404 - _globals['_NAMINGCONFLICTS']._serialized_start=2406 - _globals['_NAMINGCONFLICTS']._serialized_end=2477 - _globals['_DEPRECATEDENUM']._serialized_start=2479 - _globals['_DEPRECATEDENUM']._serialized_end=2539 - _globals['_SIMPLE1']._serialized_start=173 - _globals['_SIMPLE1']._serialized_end=1338 - _globals['_SIMPLE1_INNERMESSAGE']._serialized_start=1214 - _globals['_SIMPLE1_INNERMESSAGE']._serialized_end=1228 - _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_start=1230 - _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_end=1279 - _globals['_SIMPLE1_INNERENUM']._serialized_start=1281 - _globals['_SIMPLE1_INNERENUM']._serialized_end=1316 - _globals['_SIMPLE2']._serialized_start=1340 - _globals['_SIMPLE2']._serialized_end=1378 - _globals['_EXTENSIONS1']._serialized_start=1380 - _globals['_EXTENSIONS1']._serialized_end=1462 - _globals['_EXTENSIONS2']._serialized_start=1464 - _globals['_EXTENSIONS2']._serialized_end=1539 - _globals['_NONE']._serialized_start=1541 - _globals['_NONE']._serialized_end=1562 - _globals['_PYTHONRESERVEDKEYWORDS']._serialized_start=1565 - _globals['_PYTHONRESERVEDKEYWORDS']._serialized_end=2205 - _globals['_PYTHONRESERVEDKEYWORDS_LAMBDA']._serialized_start=2117 - _globals['_PYTHONRESERVEDKEYWORDS_LAMBDA']._serialized_end=2158 - _globals['_PYTHONRESERVEDKEYWORDS_FINALLY']._serialized_start=2160 - _globals['_PYTHONRESERVEDKEYWORDS_FINALLY']._serialized_end=2205 - _globals['_PYTHONRESERVEDKEYWORDSSMALL']._serialized_start=2207 - _globals['_PYTHONRESERVEDKEYWORDSSMALL']._serialized_end=2250 - _globals['_SELFFIELD']._serialized_start=2252 - _globals['_SELFFIELD']._serialized_end=2277 - _globals['_DEPRECATEDMESSAGE']._serialized_start=2279 - _globals['_DEPRECATEDMESSAGE']._serialized_end=2320 - _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_start=2322 - _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_end=2373 - _globals['_PYTHONRESERVEDKEYWORDSSERVICE']._serialized_start=2542 - _globals['_PYTHONRESERVEDKEYWORDSSERVICE']._serialized_end=2764 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-async-only/testproto/test_pb2.pyi b/test/generated-async-only/testproto/test_pb2.pyi deleted file mode 100644 index 3058335b..00000000 --- a/test/generated-async-only/testproto/test_pb2.pyi +++ /dev/null @@ -1,439 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -Proto 2 test file.""" - -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.internal.extension_dict -import google.protobuf.message -import sys -import test.test_generated_mypy -import testproto.inner.inner_pb2 -import testproto.nested.nested_pb2 -import testproto.nopackage_pb2 -import testproto.test3_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -if sys.version_info >= (3, 13): - from warnings import deprecated -else: - from typing_extensions import deprecated - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _OuterEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - FOO: _OuterEnum.ValueType # 1 - """FOO""" - BAR: _OuterEnum.ValueType # 2 - """BAR""" - -class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): - """Outer Enum""" - -FOO: OuterEnum.ValueType # 1 -"""FOO""" -BAR: OuterEnum.ValueType # 2 -"""BAR""" -Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum - -class _NamingConflicts: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _NamingConflictsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NamingConflicts.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - -class NamingConflicts(_NamingConflicts, metaclass=_NamingConflictsEnumTypeWrapper): - """Naming conflicts!""" - -Name: NamingConflicts.ValueType # 1 -Value: NamingConflicts.ValueType # 2 -keys: NamingConflicts.ValueType # 3 -values: NamingConflicts.ValueType # 4 -items: NamingConflicts.ValueType # 5 -"""See https://github.com/protocolbuffers/protobuf/issues/8803 -proto itself generates broken code when DESCRIPTOR is there -DESCRIPTOR = 8; -""" -Global___NamingConflicts: typing_extensions.TypeAlias = NamingConflicts - -class _DeprecatedEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _DeprecatedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeprecatedEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - DEPRECATED_ONE: _DeprecatedEnum.ValueType # 1 - DEPRECATED_TWO: _DeprecatedEnum.ValueType # 2 - -@deprecated("""This enum is deprecated\n2 lines of comments\n"Quotes in comments"\nand 'single quotes'\nTrailing comment""") -class DeprecatedEnum(_DeprecatedEnum, metaclass=_DeprecatedEnumEnumTypeWrapper): ... - -DEPRECATED_ONE: DeprecatedEnum.ValueType # 1 -DEPRECATED_TWO: DeprecatedEnum.ValueType # 2 -Global___DeprecatedEnum: typing_extensions.TypeAlias = DeprecatedEnum - -@typing.final -class Simple1(google.protobuf.message.Message): - """Message with one of everything""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _InnerEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Simple1._InnerEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - INNER1: Simple1._InnerEnum.ValueType # 1 - """INNER1""" - INNER2: Simple1._InnerEnum.ValueType # 2 - """INNER2""" - - class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): - """Inner Enum""" - - INNER1: Simple1.InnerEnum.ValueType # 1 - """INNER1""" - INNER2: Simple1.InnerEnum.ValueType # 2 - """INNER2""" - - @typing.final - class InnerMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - - @typing.final - class EmailByUidEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.int - value: builtins.str - def __init__( - self, - *, - key: builtins.int | None = ..., - value: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - - A_STRING_FIELD_NUMBER: builtins.int - A_REPEATED_STRING_FIELD_NUMBER: builtins.int - A_BOOLEAN_FIELD_NUMBER: builtins.int - A_UINT32_FIELD_NUMBER: builtins.int - A_ENUM_FIELD_NUMBER: builtins.int - A_EXTERNAL_ENUM_FIELD_NUMBER: builtins.int - A_INNER_FIELD_NUMBER: builtins.int - A_NESTED_FIELD_NUMBER: builtins.int - INNER_ENUM_FIELD_NUMBER: builtins.int - REP_INNER_ENUM_FIELD_NUMBER: builtins.int - INNER_MESSAGE_FIELD_NUMBER: builtins.int - REP_INNER_MESSAGE_FIELD_NUMBER: builtins.int - NO_PACKAGE_FIELD_NUMBER: builtins.int - NESTED_ENUM_FIELD_NUMBER: builtins.int - NESTED_MESSAGE_FIELD_NUMBER: builtins.int - A_ONEOF_1_FIELD_NUMBER: builtins.int - A_ONEOF_2_FIELD_NUMBER: builtins.int - OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int - OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int - INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int - USER_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - EMAIL_BY_UID_FIELD_NUMBER: builtins.int - a_string: builtins.str - a_boolean: builtins.bool - a_uint32: builtins.int - a_enum: Global___OuterEnum.ValueType - a_external_enum: testproto.test3_pb2.OuterEnum.ValueType - inner_enum: Global___Simple1.InnerEnum.ValueType - nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType - a_oneof_1: builtins.str - a_oneof_2: builtins.str - outer_enum_in_oneof: Global___OuterEnum.ValueType - inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType - user_id: test.test_generated_mypy.UserId - email: test.test_generated_mypy.Email - @property - def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def a_inner(self) -> testproto.inner.inner_pb2.Inner: ... - @property - def a_nested(self) -> testproto.nested.nested_pb2.Nested: ... - @property - def rep_inner_enum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[Global___Simple1.InnerEnum.ValueType]: ... - @property - def inner_message(self) -> Global___Simple1.InnerMessage: ... - @property - def rep_inner_message(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Simple1.InnerMessage]: ... - @property - def no_package(self) -> testproto.nopackage_pb2.NoPackage: ... - @property - def nested_message(self) -> testproto.nested.nested_pb2.AnotherNested.NestedMessage: ... - @property - def outer_message_in_oneof(self) -> Global___Simple2: ... - @property - def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... - def __init__( - self, - *, - a_string: builtins.str | None = ..., - a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., - a_boolean: builtins.bool | None = ..., - a_uint32: builtins.int | None = ..., - a_enum: Global___OuterEnum.ValueType | None = ..., - a_external_enum: testproto.test3_pb2.OuterEnum.ValueType | None = ..., - a_inner: testproto.inner.inner_pb2.Inner | None = ..., - a_nested: testproto.nested.nested_pb2.Nested | None = ..., - inner_enum: Global___Simple1.InnerEnum.ValueType | None = ..., - rep_inner_enum: collections.abc.Iterable[Global___Simple1.InnerEnum.ValueType] | None = ..., - inner_message: Global___Simple1.InnerMessage | None = ..., - rep_inner_message: collections.abc.Iterable[Global___Simple1.InnerMessage] | None = ..., - no_package: testproto.nopackage_pb2.NoPackage | None = ..., - nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType | None = ..., - nested_message: testproto.nested.nested_pb2.AnotherNested.NestedMessage | None = ..., - a_oneof_1: builtins.str | None = ..., - a_oneof_2: builtins.str | None = ..., - outer_message_in_oneof: Global___Simple2 | None = ..., - outer_enum_in_oneof: Global___OuterEnum.ValueType | None = ..., - inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType | None = ..., - user_id: test.test_generated_mypy.UserId | None = ..., - email: test.test_generated_mypy.Email | None = ..., - email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "rep_inner_enum", b"rep_inner_enum", "rep_inner_message", b"rep_inner_message", "user_id", b"user_id"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["a_oneof", b"a_oneof"]) -> typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] | None: ... - -Global___Simple1: typing_extensions.TypeAlias = Simple1 - -@typing.final -class Simple2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___Simple2: typing_extensions.TypeAlias = Simple2 - -@typing.final -class Extensions1(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - EXT1_STRING_FIELD_NUMBER: builtins.int - ext1_string: builtins.str - EXT_FIELD_NUMBER: builtins.int - ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions1] - """ext""" - def __init__( - self, - *, - ext1_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["ext1_string", b"ext1_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["ext1_string", b"ext1_string"]) -> None: ... - -Global___Extensions1: typing_extensions.TypeAlias = Extensions1 - -@typing.final -class Extensions2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FLAG_FIELD_NUMBER: builtins.int - flag: builtins.bool - FOO_FIELD_NUMBER: builtins.int - foo: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions2] - """foo""" - def __init__( - self, - *, - flag: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["flag", b"flag"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["flag", b"flag"]) -> None: ... - -Global___Extensions2: typing_extensions.TypeAlias = Extensions2 - -@typing.final -class _r_None(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VALID_FIELD_NUMBER: builtins.int - valid: builtins.int - def __init__( - self, - *, - valid: builtins.int | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["valid", b"valid"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["valid", b"valid"]) -> None: ... - -Global____r_None: typing_extensions.TypeAlias = _r_None - -@typing.final -class PythonReservedKeywords(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _finally: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _finallyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PythonReservedKeywords._finally.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - valid_in_finally: PythonReservedKeywords._finally.ValueType # 2 - - class _r_finally(_finally, metaclass=_finallyEnumTypeWrapper): ... - valid_in_finally: PythonReservedKeywords._r_finally.ValueType # 2 - - @typing.final - class _r_lambda(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONTINUE_FIELD_NUMBER: builtins.int - VALID_FIELD_NUMBER: builtins.int - valid: builtins.int - def __init__( - self, - *, - valid: builtins.int | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["continue", b"continue", "valid", b"valid"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["continue", b"continue", "valid", b"valid"]) -> None: ... - - FROM_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - IS_FIELD_NUMBER: builtins.int - FOR_FIELD_NUMBER: builtins.int - TRY_FIELD_NUMBER: builtins.int - DEF_FIELD_NUMBER: builtins.int - NONLOCAL_FIELD_NUMBER: builtins.int - WHILE_FIELD_NUMBER: builtins.int - AND_FIELD_NUMBER: builtins.int - DEL_FIELD_NUMBER: builtins.int - GLOBAL_FIELD_NUMBER: builtins.int - NOT_FIELD_NUMBER: builtins.int - WITH_FIELD_NUMBER: builtins.int - AS_FIELD_NUMBER: builtins.int - ELIF_FIELD_NUMBER: builtins.int - IF_FIELD_NUMBER: builtins.int - OR_FIELD_NUMBER: builtins.int - YIELD_FIELD_NUMBER: builtins.int - ASSERT_FIELD_NUMBER: builtins.int - ELSE_FIELD_NUMBER: builtins.int - IMPORT_FIELD_NUMBER: builtins.int - PASS_FIELD_NUMBER: builtins.int - BREAK_FIELD_NUMBER: builtins.int - EXCEPT_FIELD_NUMBER: builtins.int - RAISE_FIELD_NUMBER: builtins.int - FALSE_FIELD_NUMBER: builtins.int - TRUE_FIELD_NUMBER: builtins.int - CLASS_FIELD_NUMBER: builtins.int - NONE_FIELD_NUMBER: builtins.int - VALID_FIELD_NUMBER: builtins.int - valid: Global___PythonReservedKeywords._r_finally.ValueType - @property - def none(self) -> Global____r_None: - """Test unreserved identifiers w/ reserved message names""" - - def __init__( - self, - *, - none: Global____r_None | None = ..., - valid: Global___PythonReservedKeywords._r_finally.ValueType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"]) -> None: ... - -Global___PythonReservedKeywords: typing_extensions.TypeAlias = PythonReservedKeywords - -@typing.final -class PythonReservedKeywordsSmall(google.protobuf.message.Message): - """Do one with just one arg - to make sure it's syntactically correct""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FROM_FIELD_NUMBER: builtins.int - def __init__( - self, - ) -> None: ... - def HasField(self, field_name: typing.Literal["from", b"from"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["from", b"from"]) -> None: ... - -Global___PythonReservedKeywordsSmall: typing_extensions.TypeAlias = PythonReservedKeywordsSmall - -@typing.final -class SelfField(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SELF_FIELD_NUMBER: builtins.int - self: builtins.int - """Field self -> must generate an __init__ method w/ different name""" - def __init__( - self_, # pyright: ignore[reportSelfClsParameterName] - *, - self: builtins.int | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["self", b"self"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["self", b"self"]) -> None: ... - -Global___SelfField: typing_extensions.TypeAlias = SelfField - -@deprecated("""This message is deprecated""") -@typing.final -class DeprecatedMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___DeprecatedMessage: typing_extensions.TypeAlias = DeprecatedMessage - -@deprecated("""This message has been marked as deprecated using proto message options.""") -@typing.final -class DeprecatedMessageBadComment(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___DeprecatedMessageBadComment: typing_extensions.TypeAlias = DeprecatedMessageBadComment diff --git a/test/generated-sync-only/__init__.py b/test/generated-sync-only/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.py b/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.py deleted file mode 100644 index 6fddb96c..00000000 --- a/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/Capitalized/Capitalized.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/Capitalized/Capitalized.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'testproto/Capitalized/Capitalized.proto\x12\x0b\x43\x61pitalized\"\x12\n\x05lower\x12\t\n\x01\x61\x18\x01 \x01(\x03\"*\n\x05Upper\x12!\n\x05Lower\x18\x01 \x01(\x0b\x32\x12.Capitalized.lower\"+\n\x06lower2\x12!\n\x05upper\x18\x01 \x01(\x0b\x32\x12.Capitalized.Upperb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.Capitalized.Capitalized_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_LOWER']._serialized_start=56 - _globals['_LOWER']._serialized_end=74 - _globals['_UPPER']._serialized_start=76 - _globals['_UPPER']._serialized_end=118 - _globals['_LOWER2']._serialized_start=120 - _globals['_LOWER2']._serialized_end=163 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.pyi b/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.pyi deleted file mode 100644 index 828d26f2..00000000 --- a/test/generated-sync-only/testproto/Capitalized/Capitalized_pb2.pyi +++ /dev/null @@ -1,66 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class lower(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_FIELD_NUMBER: builtins.int - a: builtins.int - def __init__( - self, - *, - a: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... - -Global___lower: typing_extensions.TypeAlias = lower - -@typing.final -class Upper(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - LOWER_FIELD_NUMBER: builtins.int - @property - def Lower(self) -> Global___lower: ... - def __init__( - self, - *, - Lower: Global___lower | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["Lower", b"Lower"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["Lower", b"Lower"]) -> None: ... - -Global___Upper: typing_extensions.TypeAlias = Upper - -@typing.final -class lower2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - UPPER_FIELD_NUMBER: builtins.int - @property - def upper(self) -> Global___Upper: ... - def __init__( - self, - *, - upper: Global___Upper | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["upper", b"upper"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["upper", b"upper"]) -> None: ... - -Global___lower2: typing_extensions.TypeAlias = lower2 diff --git a/test/generated-sync-only/testproto/Capitalized/__init__.py b/test/generated-sync-only/testproto/Capitalized/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-sync-only/testproto/__init__.py b/test/generated-sync-only/testproto/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-sync-only/testproto/comment_special_chars_pb2.py b/test/generated-sync-only/testproto/comment_special_chars_pb2.py deleted file mode 100644 index 74655702..00000000 --- a/test/generated-sync-only/testproto/comment_special_chars_pb2.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/comment_special_chars.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/comment_special_chars.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%testproto/comment_special_chars.proto\x12\x15\x63omment_special_chars\"\x7f\n\x04Test\x12\t\n\x01\x61\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\t\x12\t\n\x01\x63\x18\x03 \x01(\t\x12\t\n\x01\x64\x18\x04 \x01(\t\x12\t\n\x01\x65\x18\x05 \x01(\t\x12\t\n\x01\x66\x18\x06 \x01(\t\x12\t\n\x01g\x18\x07 \x01(\t\x12\t\n\x01h\x18\x08 \x01(\t\x12\t\n\x01i\x18\t \x01(\t\x12\t\n\x01j\x18\n \x01(\t\x12\t\n\x01k\x18\x0b \x01(\tb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.comment_special_chars_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_TEST']._serialized_start=64 - _globals['_TEST']._serialized_end=191 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/comment_special_chars_pb2.pyi b/test/generated-sync-only/testproto/comment_special_chars_pb2.pyi deleted file mode 100644 index 21823424..00000000 --- a/test/generated-sync-only/testproto/comment_special_chars_pb2.pyi +++ /dev/null @@ -1,82 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Test(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_FIELD_NUMBER: builtins.int - B_FIELD_NUMBER: builtins.int - C_FIELD_NUMBER: builtins.int - D_FIELD_NUMBER: builtins.int - E_FIELD_NUMBER: builtins.int - F_FIELD_NUMBER: builtins.int - G_FIELD_NUMBER: builtins.int - H_FIELD_NUMBER: builtins.int - I_FIELD_NUMBER: builtins.int - J_FIELD_NUMBER: builtins.int - K_FIELD_NUMBER: builtins.int - a: builtins.str - """Ending with " """ - b: builtins.str - """Ending with "" """ - c: builtins.str - """Ending with \"\"\" """ - d: builtins.str - """Ending with \\ """ - e: builtins.str - """Containing bad escape: \\x""" - f: builtins.str - """Containing \"\"\"" quadruple""" - g: builtins.str - """Containing \"\"\""" quintuple""" - h: builtins.str - """Containing \"\"\"\"\"\" sextuple""" - i: builtins.str - """\"\"\" Multiple \"\"\" triples \"\"\" """ - j: builtins.str - """"quotes" can be a problem in comments. - \"\"\"Triple quotes\"\"\" just as well - """ - k: builtins.str - """\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" - " " - " Super Duper comments with surrounding edges! " - " " - " Pay attention to me!!!! " - " " - \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" - """ - def __init__( - self, - *, - a: builtins.str = ..., - b: builtins.str = ..., - c: builtins.str = ..., - d: builtins.str = ..., - e: builtins.str = ..., - f: builtins.str = ..., - g: builtins.str = ..., - h: builtins.str = ..., - i: builtins.str = ..., - j: builtins.str = ..., - k: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.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: ... - -Global___Test: typing_extensions.TypeAlias = Test diff --git a/test/generated-sync-only/testproto/dot/__init__.py b/test/generated-sync-only/testproto/dot/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-sync-only/testproto/dot/com/__init__.py b/test/generated-sync-only/testproto/dot/com/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-sync-only/testproto/dot/com/test_pb2.py b/test/generated-sync-only/testproto/dot/com/test_pb2.py deleted file mode 100644 index de4a85eb..00000000 --- a/test/generated-sync-only/testproto/dot/com/test_pb2.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/dot.com/test.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/dot.com/test.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1ctestproto/dot.com/test.proto\x12\x04test\"\x1a\n\x0bTestMessage\x12\x0b\n\x03\x66oo\x18\x01 \x01(\tb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.dot.com.test_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_TESTMESSAGE']._serialized_start=38 - _globals['_TESTMESSAGE']._serialized_end=64 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/dot/com/test_pb2.pyi b/test/generated-sync-only/testproto/dot/com/test_pb2.pyi deleted file mode 100644 index bb7e86c1..00000000 --- a/test/generated-sync-only/testproto/dot/com/test_pb2.pyi +++ /dev/null @@ -1,32 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class TestMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FOO_FIELD_NUMBER: builtins.int - foo: builtins.str - def __init__( - self, - *, - foo: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["foo", b"foo"]) -> None: ... - -Global___TestMessage: typing_extensions.TypeAlias = TestMessage diff --git a/test/generated-sync-only/testproto/edition2024_pb2.py b/test/generated-sync-only/testproto/edition2024_pb2.py deleted file mode 100644 index 40e73646..00000000 --- a/test/generated-sync-only/testproto/edition2024_pb2.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/edition2024.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/edition2024.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/edition2024.proto\x12\x04test\"\'\n\x16\x45\x64itions2024SubMessage\x12\r\n\x05thing\x18\x01 \x01(\t\"\xc3\x01\n\x10\x45\x64itions2024Test\x12\x15\n\x06legacy\x18\x01 \x01(\tB\x05\xaa\x01\x02\x08\x03\x12 \n\x11\x65xplicit_singular\x18\x02 \x01(\tB\x05\xaa\x01\x02\x08\x01\x12:\n\rmessage_field\x18\x03 \x01(\x0b\x32\x1c.test.Editions2024SubMessageB\x05\xaa\x01\x02\x08\x01\x12 \n\x11implicit_singular\x18\x04 \x01(\tB\x05\xaa\x01\x02\x08\x02\x12\x18\n\x10\x64\x65\x66\x61ult_singular\x18\x05 \x01(\tB\x05\x92\x03\x02 \x03\x62\x08\x65\x64itionsp\xe9\x07') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.edition2024_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\222\003\002 \003' - _globals['_EDITIONS2024TEST'].fields_by_name['legacy']._loaded_options = None - _globals['_EDITIONS2024TEST'].fields_by_name['legacy']._serialized_options = b'\252\001\002\010\003' - _globals['_EDITIONS2024TEST'].fields_by_name['explicit_singular']._loaded_options = None - _globals['_EDITIONS2024TEST'].fields_by_name['explicit_singular']._serialized_options = b'\252\001\002\010\001' - _globals['_EDITIONS2024TEST'].fields_by_name['message_field']._loaded_options = None - _globals['_EDITIONS2024TEST'].fields_by_name['message_field']._serialized_options = b'\252\001\002\010\001' - _globals['_EDITIONS2024TEST'].fields_by_name['implicit_singular']._loaded_options = None - _globals['_EDITIONS2024TEST'].fields_by_name['implicit_singular']._serialized_options = b'\252\001\002\010\002' - _globals['_EDITIONS2024SUBMESSAGE']._serialized_start=37 - _globals['_EDITIONS2024SUBMESSAGE']._serialized_end=76 - _globals['_EDITIONS2024TEST']._serialized_start=79 - _globals['_EDITIONS2024TEST']._serialized_end=274 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/edition2024_pb2.pyi b/test/generated-sync-only/testproto/edition2024_pb2.pyi deleted file mode 100644 index 6de2ba64..00000000 --- a/test/generated-sync-only/testproto/edition2024_pb2.pyi +++ /dev/null @@ -1,68 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -Edition version of proto2 file""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Editions2024SubMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - THING_FIELD_NUMBER: builtins.int - thing: builtins.str - def __init__( - self, - *, - thing: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["thing", b"thing"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["thing", b"thing"]) -> None: ... - -Global___Editions2024SubMessage: typing_extensions.TypeAlias = Editions2024SubMessage - -@typing.final -class Editions2024Test(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - LEGACY_FIELD_NUMBER: builtins.int - EXPLICIT_SINGULAR_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_FIELD_NUMBER: builtins.int - IMPLICIT_SINGULAR_FIELD_NUMBER: builtins.int - DEFAULT_SINGULAR_FIELD_NUMBER: builtins.int - legacy: builtins.str - """Expect to be always set""" - explicit_singular: builtins.str - """Expect HasField generated""" - implicit_singular: builtins.str - """Expect implicit field presence, no HasField generated""" - default_singular: builtins.str - """Not set, should default to EXPLICIT""" - @property - def message_field(self) -> Global___Editions2024SubMessage: - """Expect HasField generated?""" - - def __init__( - self, - *, - legacy: builtins.str | None = ..., - explicit_singular: builtins.str | None = ..., - message_field: Global___Editions2024SubMessage | None = ..., - implicit_singular: builtins.str = ..., - default_singular: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> None: ... - -Global___Editions2024Test: typing_extensions.TypeAlias = Editions2024Test diff --git a/test/generated-sync-only/testproto/grpc/__init__.py b/test/generated-sync-only/testproto/grpc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-sync-only/testproto/inner/__init__.py b/test/generated-sync-only/testproto/inner/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-sync-only/testproto/inner/inner_pb2.py b/test/generated-sync-only/testproto/inner/inner_pb2.py deleted file mode 100644 index fa5eac66..00000000 --- a/test/generated-sync-only/testproto/inner/inner_pb2.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/inner/inner.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/inner/inner.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test3_pb2 as testproto_dot_test3__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/inner/inner.proto\x12\x05inner\x1a\x15testproto/test3.proto\"$\n\x05Inner\x12\x1b\n\x01\x61\x18\x01 \x01(\x0e\x32\x10.test3.OuterEnumb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.inner.inner_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_INNER']._serialized_start=61 - _globals['_INNER']._serialized_end=97 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/inner/inner_pb2.pyi b/test/generated-sync-only/testproto/inner/inner_pb2.pyi deleted file mode 100644 index dc705d20..00000000 --- a/test/generated-sync-only/testproto/inner/inner_pb2.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import testproto.test3_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Inner(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_FIELD_NUMBER: builtins.int - a: testproto.test3_pb2.OuterEnum.ValueType - def __init__( - self, - *, - a: testproto.test3_pb2.OuterEnum.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... - -Global___Inner: typing_extensions.TypeAlias = Inner diff --git a/test/generated-sync-only/testproto/nested/__init__.py b/test/generated-sync-only/testproto/nested/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated-sync-only/testproto/nested/nested_pb2.py b/test/generated-sync-only/testproto/nested/nested_pb2.py deleted file mode 100644 index 4e269210..00000000 --- a/test/generated-sync-only/testproto/nested/nested_pb2.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/nested/nested.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/nested/nested.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test3_pb2 as testproto_dot_test3__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dtestproto/nested/nested.proto\x12\x13test.nested_package\x1a\x15testproto/test3.proto\"%\n\x06Nested\x12\x1b\n\x01\x61\x18\x01 \x01(\x0e\x32\x10.test3.OuterEnum\"\xac\x02\n\rAnotherNested\x1a\xed\x01\n\rNestedMessage\x12\t\n\x01s\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\x08\x12\x39\n\x02ne\x18\x03 \x01(\x0e\x32-.test.nested_package.AnotherNested.NestedEnum\x12I\n\x03ne2\x18\x04 \x01(\x0e\x32<.test.nested_package.AnotherNested.NestedMessage.NestedEnum2\"@\n\x0bNestedEnum2\x12\r\n\tUNDEFINED\x10\x00\x12\x10\n\x0cNESTED_ENUM1\x10\x01\x12\x10\n\x0cNESTED_ENUM2\x10\x02\"+\n\nNestedEnum\x12\x0b\n\x07INVALID\x10\x00\x12\x07\n\x03ONE\x10\x01\x12\x07\n\x03TWO\x10\x02\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.nested.nested_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_NESTED']._serialized_start=77 - _globals['_NESTED']._serialized_end=114 - _globals['_ANOTHERNESTED']._serialized_start=117 - _globals['_ANOTHERNESTED']._serialized_end=417 - _globals['_ANOTHERNESTED_NESTEDMESSAGE']._serialized_start=135 - _globals['_ANOTHERNESTED_NESTEDMESSAGE']._serialized_end=372 - _globals['_ANOTHERNESTED_NESTEDMESSAGE_NESTEDENUM2']._serialized_start=308 - _globals['_ANOTHERNESTED_NESTEDMESSAGE_NESTEDENUM2']._serialized_end=372 - _globals['_ANOTHERNESTED_NESTEDENUM']._serialized_start=374 - _globals['_ANOTHERNESTED_NESTEDENUM']._serialized_end=417 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/nested/nested_pb2.pyi b/test/generated-sync-only/testproto/nested/nested_pb2.pyi deleted file mode 100644 index e382df0a..00000000 --- a/test/generated-sync-only/testproto/nested/nested_pb2.pyi +++ /dev/null @@ -1,96 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import testproto.test3_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Nested(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_FIELD_NUMBER: builtins.int - a: testproto.test3_pb2.OuterEnum.ValueType - def __init__( - self, - *, - a: testproto.test3_pb2.OuterEnum.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["a", b"a"]) -> None: ... - -Global___Nested: typing_extensions.TypeAlias = Nested - -@typing.final -class AnotherNested(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _NestedEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _NestedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested._NestedEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - INVALID: AnotherNested._NestedEnum.ValueType # 0 - ONE: AnotherNested._NestedEnum.ValueType # 1 - TWO: AnotherNested._NestedEnum.ValueType # 2 - - class NestedEnum(_NestedEnum, metaclass=_NestedEnumEnumTypeWrapper): ... - INVALID: AnotherNested.NestedEnum.ValueType # 0 - ONE: AnotherNested.NestedEnum.ValueType # 1 - TWO: AnotherNested.NestedEnum.ValueType # 2 - - @typing.final - class NestedMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _NestedEnum2: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _NestedEnum2EnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested.NestedMessage._NestedEnum2.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNDEFINED: AnotherNested.NestedMessage._NestedEnum2.ValueType # 0 - NESTED_ENUM1: AnotherNested.NestedMessage._NestedEnum2.ValueType # 1 - NESTED_ENUM2: AnotherNested.NestedMessage._NestedEnum2.ValueType # 2 - - class NestedEnum2(_NestedEnum2, metaclass=_NestedEnum2EnumTypeWrapper): ... - UNDEFINED: AnotherNested.NestedMessage.NestedEnum2.ValueType # 0 - NESTED_ENUM1: AnotherNested.NestedMessage.NestedEnum2.ValueType # 1 - NESTED_ENUM2: AnotherNested.NestedMessage.NestedEnum2.ValueType # 2 - - S_FIELD_NUMBER: builtins.int - B_FIELD_NUMBER: builtins.int - NE_FIELD_NUMBER: builtins.int - NE2_FIELD_NUMBER: builtins.int - s: builtins.str - b: builtins.bool - ne: Global___AnotherNested.NestedEnum.ValueType - ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType - def __init__( - self, - *, - s: builtins.str = ..., - b: builtins.bool = ..., - ne: Global___AnotherNested.NestedEnum.ValueType = ..., - ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["b", b"b", "ne", b"ne", "ne2", b"ne2", "s", b"s"]) -> None: ... - - def __init__( - self, - ) -> None: ... - -Global___AnotherNested: typing_extensions.TypeAlias = AnotherNested diff --git a/test/generated-sync-only/testproto/nopackage_pb2.py b/test/generated-sync-only/testproto/nopackage_pb2.py deleted file mode 100644 index 25e501fb..00000000 --- a/test/generated-sync-only/testproto/nopackage_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/nopackage.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/nopackage.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19testproto/nopackage.proto\"\x0b\n\tNoPackage\"@\n\nNoPackage2\x12\x16\n\x02np\x18\x01 \x01(\x0b\x32\n.NoPackage\x12\x1a\n\x06np_rep\x18\x02 \x03(\x0b\x32\n.NoPackageb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.nopackage_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_NOPACKAGE']._serialized_start=29 - _globals['_NOPACKAGE']._serialized_end=40 - _globals['_NOPACKAGE2']._serialized_start=42 - _globals['_NOPACKAGE2']._serialized_end=106 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/nopackage_pb2.pyi b/test/generated-sync-only/testproto/nopackage_pb2.pyi deleted file mode 100644 index 7925439c..00000000 --- a/test/generated-sync-only/testproto/nopackage_pb2.pyi +++ /dev/null @@ -1,52 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class NoPackage(google.protobuf.message.Message): - """Intentionally don't set a package - just to make sure we can handle it.""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___NoPackage: typing_extensions.TypeAlias = NoPackage - -@typing.final -class NoPackage2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - NP_FIELD_NUMBER: builtins.int - NP_REP_FIELD_NUMBER: builtins.int - @property - def np(self) -> Global___NoPackage: ... - @property - def np_rep(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NoPackage]: ... - def __init__( - self, - *, - np: Global___NoPackage | None = ..., - np_rep: collections.abc.Iterable[Global___NoPackage] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["np", b"np"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["np", b"np", "np_rep", b"np_rep"]) -> None: ... - -Global___NoPackage2: typing_extensions.TypeAlias = NoPackage2 diff --git a/test/generated-sync-only/testproto/readme_enum_pb2.py b/test/generated-sync-only/testproto/readme_enum_pb2.py deleted file mode 100644 index bfce5038..00000000 --- a/test/generated-sync-only/testproto/readme_enum_pb2.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/readme_enum.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/readme_enum.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/readme_enum.proto\x12\x04test*\x1e\n\x06MyEnum\x12\t\n\x05HELLO\x10\x00\x12\t\n\x05WORLD\x10\x01\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.readme_enum_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_MYENUM']._serialized_start=37 - _globals['_MYENUM']._serialized_end=67 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/readme_enum_pb2.pyi b/test/generated-sync-only/testproto/readme_enum_pb2.pyi deleted file mode 100644 index be8369c4..00000000 --- a/test/generated-sync-only/testproto/readme_enum_pb2.pyi +++ /dev/null @@ -1,32 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _MyEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _MyEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MyEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - HELLO: _MyEnum.ValueType # 0 - WORLD: _MyEnum.ValueType # 1 - -class MyEnum(_MyEnum, metaclass=_MyEnumEnumTypeWrapper): ... - -HELLO: MyEnum.ValueType # 0 -WORLD: MyEnum.ValueType # 1 -Global___MyEnum: typing_extensions.TypeAlias = MyEnum diff --git a/test/generated-sync-only/testproto/reexport_pb2.py b/test/generated-sync-only/testproto/reexport_pb2.py deleted file mode 100644 index bebe651b..00000000 --- a/test/generated-sync-only/testproto/reexport_pb2.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/reexport.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/reexport.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test3_pb2 as testproto_dot_test3__pb2 -from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -from testproto.inner import inner_pb2 as testproto_dot_inner_dot_inner__pb2 - -from testproto.test3_pb2 import * -from google.protobuf.empty_pb2 import * - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18testproto/reexport.proto\x12\x05test3\x1a\x15testproto/test3.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1btestproto/inner/inner.protoP\x00P\x01\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.reexport_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/reexport_pb2.pyi b/test/generated-sync-only/testproto/reexport_pb2.pyi deleted file mode 100644 index 9702c2bd..00000000 --- a/test/generated-sync-only/testproto/reexport_pb2.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import google.protobuf.descriptor -from google.protobuf.empty_pb2 import ( - Empty as Empty, -) -from testproto.test3_pb2 import ( - BAR3 as BAR3, - FOO3 as FOO3, - OuterEnum as OuterEnum, - OuterMessage3 as OuterMessage3, - SimpleProto3 as SimpleProto3, - UNKNOWN as UNKNOWN, -) - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated-sync-only/testproto/test3_pb2.py b/test/generated-sync-only/testproto/test3_pb2.py deleted file mode 100644 index 3b164270..00000000 --- a/test/generated-sync-only/testproto/test3_pb2.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test3.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test3.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from mypy_protobuf import extensions_pb2 as mypy__protobuf_dot_extensions__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15testproto/test3.proto\x12\x05test3\x1a\x1emypy_protobuf/extensions.proto\"!\n\rOuterMessage3\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\"\xb3\t\n\x0cSimpleProto3\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\x12\x19\n\x11\x61_repeated_string\x18\x02 \x03(\t\x12&\n\x0c\x61_outer_enum\x18\x03 \x01(\x0e\x32\x10.test3.OuterEnum\x12+\n\router_message\x18\x04 \x01(\x0b\x32\x14.test3.OuterMessage3\x12\x31\n\ninner_enum\x18\x0f \x01(\x0e\x32\x1d.test3.SimpleProto3.InnerEnum\x12\x13\n\ta_oneof_1\x18\x05 \x01(\tH\x00\x12\x13\n\ta_oneof_2\x18\x06 \x01(\tH\x00\x12\x36\n\x16outer_message_in_oneof\x18\x0c \x01(\x0b\x32\x14.test3.OuterMessage3H\x00\x12/\n\x13outer_enum_in_oneof\x18\r \x01(\x0e\x32\x10.test3.OuterEnumH\x00\x12<\n\x13inner_enum_in_oneof\x18\x0e \x01(\x0e\x32\x1d.test3.SimpleProto3.InnerEnumH\x00\x12\x13\n\tb_oneof_1\x18\x07 \x01(\tH\x01\x12\x13\n\tb_oneof_2\x18\x08 \x01(\tH\x01\x12\"\n\x04\x62ool\x18\t \x01(\x0b\x32\x14.test3.OuterMessage3\x12#\n\tOuterEnum\x18\n \x01(\x0e\x32\x10.test3.OuterEnum\x12+\n\rOuterMessage3\x18\x0b \x01(\x0b\x32\x14.test3.OuterMessage3\x12\x36\n\nmap_scalar\x18\x10 \x03(\x0b\x32\".test3.SimpleProto3.MapScalarEntry\x12\x38\n\x0bmap_message\x18\x11 \x03(\x0b\x32#.test3.SimpleProto3.MapMessageEntry\x12\x1f\n\x12\x61n_optional_string\x18\x12 \x01(\tH\x02\x88\x01\x01\x12\x35\n\x07user_id\x18\x13 \x01(\rB$\x92H!\n\x1ftest/test_generated_mypy.UserId\x12\x32\n\x05\x65mail\x18\x14 \x01(\tB#\x92H \n\x1etest/test_generated_mypy.Email\x12\x7f\n\x0c\x65mail_by_uid\x18\x15 \x03(\x0b\x32#.test3.SimpleProto3.EmailByUidEntryBD\x92HA\x12\x1ftest/test_generated_mypy.UserId\x1a\x1etest/test_generated_mypy.Email\x1a\x30\n\x0eMapScalarEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aG\n\x0fMapMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.test3.OuterMessage3:\x02\x38\x01\x1a\x31\n\x0f\x45mailByUidEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"#\n\tInnerEnum\x12\n\n\x06INNER1\x10\x00\x12\n\n\x06INNER2\x10\x01\x42\t\n\x07\x61_oneofB\t\n\x07\x62_oneofB\x15\n\x13_an_optional_string*,\n\tOuterEnum\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04\x46OO3\x10\x01\x12\x08\n\x04\x42\x41R3\x10\x02\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test3_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._loaded_options = None - _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_options = b'8\001' - _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._loaded_options = None - _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_options = b'8\001' - _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._loaded_options = None - _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_options = b'8\001' - _globals['_SIMPLEPROTO3'].fields_by_name['user_id']._loaded_options = None - _globals['_SIMPLEPROTO3'].fields_by_name['user_id']._serialized_options = b'\222H!\n\037test/test_generated_mypy.UserId' - _globals['_SIMPLEPROTO3'].fields_by_name['email']._loaded_options = None - _globals['_SIMPLEPROTO3'].fields_by_name['email']._serialized_options = b'\222H \n\036test/test_generated_mypy.Email' - _globals['_SIMPLEPROTO3'].fields_by_name['email_by_uid']._loaded_options = None - _globals['_SIMPLEPROTO3'].fields_by_name['email_by_uid']._serialized_options = b'\222HA\022\037test/test_generated_mypy.UserId\032\036test/test_generated_mypy.Email' - _globals['_OUTERENUM']._serialized_start=1305 - _globals['_OUTERENUM']._serialized_end=1349 - _globals['_OUTERMESSAGE3']._serialized_start=64 - _globals['_OUTERMESSAGE3']._serialized_end=97 - _globals['_SIMPLEPROTO3']._serialized_start=100 - _globals['_SIMPLEPROTO3']._serialized_end=1303 - _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_start=1049 - _globals['_SIMPLEPROTO3_MAPSCALARENTRY']._serialized_end=1097 - _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_start=1099 - _globals['_SIMPLEPROTO3_MAPMESSAGEENTRY']._serialized_end=1170 - _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_start=1172 - _globals['_SIMPLEPROTO3_EMAILBYUIDENTRY']._serialized_end=1221 - _globals['_SIMPLEPROTO3_INNERENUM']._serialized_start=1223 - _globals['_SIMPLEPROTO3_INNERENUM']._serialized_end=1258 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test3_pb2.pyi b/test/generated-sync-only/testproto/test3_pb2.pyi deleted file mode 100644 index f239d860..00000000 --- a/test/generated-sync-only/testproto/test3_pb2.pyi +++ /dev/null @@ -1,209 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -package test3""" - -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import sys -import test.test_generated_mypy -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _OuterEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNKNOWN: _OuterEnum.ValueType # 0 - FOO3: _OuterEnum.ValueType # 1 - BAR3: _OuterEnum.ValueType # 2 - -class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): ... - -UNKNOWN: OuterEnum.ValueType # 0 -FOO3: OuterEnum.ValueType # 1 -BAR3: OuterEnum.ValueType # 2 -Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum - -@typing.final -class OuterMessage3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___OuterMessage3: typing_extensions.TypeAlias = OuterMessage3 - -@typing.final -class SimpleProto3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _InnerEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SimpleProto3._InnerEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - INNER1: SimpleProto3._InnerEnum.ValueType # 0 - INNER2: SimpleProto3._InnerEnum.ValueType # 1 - - class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): ... - INNER1: SimpleProto3.InnerEnum.ValueType # 0 - INNER2: SimpleProto3.InnerEnum.ValueType # 1 - - @typing.final - class MapScalarEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.int - value: builtins.str - def __init__( - self, - *, - key: builtins.int = ..., - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - - @typing.final - class MapMessageEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.int - @property - def value(self) -> Global___OuterMessage3: ... - def __init__( - self, - *, - key: builtins.int = ..., - value: Global___OuterMessage3 | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - - @typing.final - class EmailByUidEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.int - value: builtins.str - def __init__( - self, - *, - key: builtins.int = ..., - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - - A_STRING_FIELD_NUMBER: builtins.int - A_REPEATED_STRING_FIELD_NUMBER: builtins.int - A_OUTER_ENUM_FIELD_NUMBER: builtins.int - OUTER_MESSAGE_FIELD_NUMBER: builtins.int - INNER_ENUM_FIELD_NUMBER: builtins.int - A_ONEOF_1_FIELD_NUMBER: builtins.int - A_ONEOF_2_FIELD_NUMBER: builtins.int - OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int - OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int - INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int - B_ONEOF_1_FIELD_NUMBER: builtins.int - B_ONEOF_2_FIELD_NUMBER: builtins.int - BOOL_FIELD_NUMBER: builtins.int - OUTERENUM_FIELD_NUMBER: builtins.int - OUTERMESSAGE3_FIELD_NUMBER: builtins.int - MAP_SCALAR_FIELD_NUMBER: builtins.int - MAP_MESSAGE_FIELD_NUMBER: builtins.int - AN_OPTIONAL_STRING_FIELD_NUMBER: builtins.int - USER_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - EMAIL_BY_UID_FIELD_NUMBER: builtins.int - a_string: builtins.str - a_outer_enum: Global___OuterEnum.ValueType - inner_enum: Global___SimpleProto3.InnerEnum.ValueType - a_oneof_1: builtins.str - a_oneof_2: builtins.str - outer_enum_in_oneof: Global___OuterEnum.ValueType - inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType - b_oneof_1: builtins.str - b_oneof_2: builtins.str - OuterEnum: Global___OuterEnum.ValueType - """Test having fieldname match messagename""" - an_optional_string: builtins.str - user_id: test.test_generated_mypy.UserId - email: test.test_generated_mypy.Email - @property - def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def outer_message(self) -> Global___OuterMessage3: ... - @property - def outer_message_in_oneof(self) -> Global___OuterMessage3: ... - @property - def bool(self) -> Global___OuterMessage3: ... - @property - def OuterMessage3(self) -> Global___OuterMessage3: ... - @property - def map_scalar(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.str]: - """Test generation of map""" - - @property - def map_message(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, Global___OuterMessage3]: ... - @property - def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... - def __init__( - self, - *, - a_string: builtins.str = ..., - a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., - a_outer_enum: Global___OuterEnum.ValueType = ..., - outer_message: Global___OuterMessage3 | None = ..., - inner_enum: Global___SimpleProto3.InnerEnum.ValueType = ..., - a_oneof_1: builtins.str = ..., - a_oneof_2: builtins.str = ..., - outer_message_in_oneof: Global___OuterMessage3 | None = ..., - outer_enum_in_oneof: Global___OuterEnum.ValueType = ..., - inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType = ..., - b_oneof_1: builtins.str = ..., - b_oneof_2: builtins.str = ..., - bool: Global___OuterMessage3 | None = ..., - OuterEnum: Global___OuterEnum.ValueType = ..., - OuterMessage3: Global___OuterMessage3 | None = ..., - map_scalar: collections.abc.Mapping[builtins.int, builtins.str] | None = ..., - map_message: collections.abc.Mapping[builtins.int, Global___OuterMessage3] | None = ..., - an_optional_string: builtins.str | None = ..., - user_id: test.test_generated_mypy.UserId = ..., - email: test.test_generated_mypy.Email = ..., - email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "inner_enum_in_oneof", b"inner_enum_in_oneof", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["OuterEnum", b"OuterEnum", "OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_outer_enum", b"a_outer_enum", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "map_message", b"map_message", "map_scalar", b"map_scalar", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["_an_optional_string", b"_an_optional_string"]) -> typing.Literal["an_optional_string"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["a_oneof", b"a_oneof"]) -> typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["b_oneof", b"b_oneof"]) -> typing.Literal["b_oneof_1", "b_oneof_2"] | None: ... - -Global___SimpleProto3: typing_extensions.TypeAlias = SimpleProto3 diff --git a/test/generated-sync-only/testproto/test_extensions2_pb2.py b/test/generated-sync-only/testproto/test_extensions2_pb2.py deleted file mode 100644 index 58c277cb..00000000 --- a/test/generated-sync-only/testproto/test_extensions2_pb2.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test_extensions2.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test_extensions2.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test_pb2 as testproto_dot_test__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n testproto/test_extensions2.proto\x12\x04test\x1a\x14testproto/test.proto\"_\n\x15SeparateFileExtension\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x08\x32\x38\n\x03\x65xt\x12\r.test.Simple2\x18\xe9\x07 \x01(\x0b\x32\x1b.test.SeparateFileExtension') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_extensions2_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_SEPARATEFILEEXTENSION']._serialized_start=64 - _globals['_SEPARATEFILEEXTENSION']._serialized_end=159 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test_extensions2_pb2.pyi b/test/generated-sync-only/testproto/test_extensions2_pb2.pyi deleted file mode 100644 index b8e9f652..00000000 --- a/test/generated-sync-only/testproto/test_extensions2_pb2.pyi +++ /dev/null @@ -1,37 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.extension_dict -import google.protobuf.message -import sys -import testproto.test_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class SeparateFileExtension(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FLAG_FIELD_NUMBER: builtins.int - flag: builtins.bool - EXT_FIELD_NUMBER: builtins.int - ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[testproto.test_pb2.Simple2, Global___SeparateFileExtension] - def __init__( - self, - *, - flag: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["flag", b"flag"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["flag", b"flag"]) -> None: ... - -Global___SeparateFileExtension: typing_extensions.TypeAlias = SeparateFileExtension diff --git a/test/generated-sync-only/testproto/test_extensions3_pb2.py b/test/generated-sync-only/testproto/test_extensions3_pb2.py deleted file mode 100644 index 4bc39093..00000000 --- a/test/generated-sync-only/testproto/test_extensions3_pb2.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test_extensions3.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test_extensions3.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -from testproto import test3_pb2 as testproto_dot_test3__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n testproto/test_extensions3.proto\x12\x05test3\x1a google/protobuf/descriptor.proto\x1a\x15testproto/test3.proto\"\x91\x01\n\x15MessageOptionsTestMsg:x\x92\x82\x19\x0cHello world!\x9a\x82\x19\x01\x41\x9a\x82\x19\x01\x42\x9a\x82\x19\x01\x43\xa0\x82\x19\x01\xaa\x82\x19\x02\x01\x02\xb2\x82\x19\x15\n\x13Hello OuterMessage3\xba\x82\x19\x17\n\x15Hello OuterMessage3 A\xba\x82\x19\x17\n\x15Hello OuterMessage3 B:=\n\x14test_field_extension\x12\x1d.google.protobuf.FieldOptions\x18\xd0\x86\x03 \x01(\t:8\n\rscalar_option\x12\x1f.google.protobuf.MessageOptions\x18\xa2\x90\x03 \x01(\t:A\n\x16repeated_scalar_option\x12\x1f.google.protobuf.MessageOptions\x18\xa3\x90\x03 \x03(\t:H\n\x0b\x65num_option\x12\x1f.google.protobuf.MessageOptions\x18\xa4\x90\x03 \x01(\x0e\x32\x10.test3.OuterEnum:Q\n\x14repeated_enum_option\x12\x1f.google.protobuf.MessageOptions\x18\xa5\x90\x03 \x03(\x0e\x32\x10.test3.OuterEnum:K\n\nmsg_option\x12\x1f.google.protobuf.MessageOptions\x18\xa6\x90\x03 \x01(\x0b\x32\x14.test3.OuterMessage3:T\n\x13repeated_msg_option\x12\x1f.google.protobuf.MessageOptions\x18\xa7\x90\x03 \x03(\x0b\x32\x14.test3.OuterMessage3b\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_extensions3_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_MESSAGEOPTIONSTESTMSG']._loaded_options = None - _globals['_MESSAGEOPTIONSTESTMSG']._serialized_options = b'\222\202\031\014Hello world!\232\202\031\001A\232\202\031\001B\232\202\031\001C\240\202\031\001\252\202\031\002\001\002\262\202\031\025\n\023Hello OuterMessage3\272\202\031\027\n\025Hello OuterMessage3 A\272\202\031\027\n\025Hello OuterMessage3 B' - _globals['_MESSAGEOPTIONSTESTMSG']._serialized_start=101 - _globals['_MESSAGEOPTIONSTESTMSG']._serialized_end=246 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test_extensions3_pb2.pyi b/test/generated-sync-only/testproto/test_extensions3_pb2.pyi deleted file mode 100644 index f2292855..00000000 --- a/test/generated-sync-only/testproto/test_extensions3_pb2.pyi +++ /dev/null @@ -1,46 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.descriptor_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.extension_dict -import google.protobuf.message -import sys -import testproto.test3_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class MessageOptionsTestMsg(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___MessageOptionsTestMsg: typing_extensions.TypeAlias = MessageOptionsTestMsg - -TEST_FIELD_EXTENSION_FIELD_NUMBER: builtins.int -SCALAR_OPTION_FIELD_NUMBER: builtins.int -REPEATED_SCALAR_OPTION_FIELD_NUMBER: builtins.int -ENUM_OPTION_FIELD_NUMBER: builtins.int -REPEATED_ENUM_OPTION_FIELD_NUMBER: builtins.int -MSG_OPTION_FIELD_NUMBER: builtins.int -REPEATED_MSG_OPTION_FIELD_NUMBER: builtins.int -test_field_extension: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str] -scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.str] -repeated_scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]] -enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterEnum.ValueType] -repeated_enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[testproto.test3_pb2.OuterEnum.ValueType]] -msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterMessage3] -repeated_msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedCompositeFieldContainer[testproto.test3_pb2.OuterMessage3]] diff --git a/test/generated-sync-only/testproto/test_no_generic_services_pb2.py b/test/generated-sync-only/testproto/test_no_generic_services_pb2.py deleted file mode 100644 index 532c253b..00000000 --- a/test/generated-sync-only/testproto/test_no_generic_services_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test_no_generic_services.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test_no_generic_services.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(testproto/test_no_generic_services.proto\x12\x04test\"\x1b\n\x07Simple3\x12\x10\n\x08\x61_string\x18\x01 \x02(\t27\n\rATestService2\x12&\n\x04\x45\x63ho\x12\r.test.Simple3\x1a\r.test.Simple3\"\x00') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_no_generic_services_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_SIMPLE3']._serialized_start=50 - _globals['_SIMPLE3']._serialized_end=77 - _globals['_ATESTSERVICE2']._serialized_start=79 - _globals['_ATESTSERVICE2']._serialized_end=134 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test_no_generic_services_pb2.pyi b/test/generated-sync-only/testproto/test_no_generic_services_pb2.pyi deleted file mode 100644 index 3a350109..00000000 --- a/test/generated-sync-only/testproto/test_no_generic_services_pb2.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Simple3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___Simple3: typing_extensions.TypeAlias = Simple3 diff --git a/test/generated-sync-only/testproto/test_pb2.py b/test/generated-sync-only/testproto/test_pb2.py deleted file mode 100644 index cfeef244..00000000 --- a/test/generated-sync-only/testproto/test_pb2.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/test.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/test.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from mypy_protobuf import extensions_pb2 as mypy__protobuf_dot_extensions__pb2 -from testproto.inner import inner_pb2 as testproto_dot_inner_dot_inner__pb2 -from testproto.nested import nested_pb2 as testproto_dot_nested_dot_nested__pb2 -from testproto import nopackage_pb2 as testproto_dot_nopackage__pb2 -from testproto import test3_pb2 as testproto_dot_test3__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14testproto/test.proto\x12\x04test\x1a\x1emypy_protobuf/extensions.proto\x1a\x1btestproto/inner/inner.proto\x1a\x1dtestproto/nested/nested.proto\x1a\x19testproto/nopackage.proto\x1a\x15testproto/test3.proto\"\x8d\t\n\x07Simple1\x12\x10\n\x08\x61_string\x18\x01 \x01(\t\x12\x19\n\x11\x61_repeated_string\x18\x02 \x03(\t\x12\x11\n\ta_boolean\x18\x03 \x01(\x08\x12\x10\n\x08\x61_uint32\x18\x04 \x01(\r\x12\x1f\n\x06\x61_enum\x18\x05 \x01(\x0e\x32\x0f.test.OuterEnum\x12)\n\x0f\x61_external_enum\x18\x06 \x01(\x0e\x32\x10.test3.OuterEnum\x12\x1d\n\x07\x61_inner\x18\x07 \x01(\x0b\x32\x0c.inner.Inner\x12-\n\x08\x61_nested\x18\x0c \x01(\x0b\x32\x1b.test.nested_package.Nested\x12+\n\ninner_enum\x18\x08 \x01(\x0e\x32\x17.test.Simple1.InnerEnum\x12/\n\x0erep_inner_enum\x18\t \x03(\x0e\x32\x17.test.Simple1.InnerEnum\x12\x31\n\rinner_message\x18\n \x01(\x0b\x32\x1a.test.Simple1.InnerMessage\x12\x35\n\x11rep_inner_message\x18\x0b \x03(\x0b\x32\x1a.test.Simple1.InnerMessage\x12\x1e\n\nno_package\x18\r \x01(\x0b\x32\n.NoPackage\x12\x42\n\x0bnested_enum\x18\x0e \x01(\x0e\x32-.test.nested_package.AnotherNested.NestedEnum\x12H\n\x0enested_message\x18\x0f \x01(\x0b\x32\x30.test.nested_package.AnotherNested.NestedMessage\x12\x13\n\ta_oneof_1\x18\x10 \x01(\tH\x00\x12\x13\n\ta_oneof_2\x18\x11 \x01(\tH\x00\x12/\n\x16outer_message_in_oneof\x18\x12 \x01(\x0b\x32\r.test.Simple2H\x00\x12.\n\x13outer_enum_in_oneof\x18\x13 \x01(\x0e\x32\x0f.test.OuterEnumH\x00\x12\x36\n\x13inner_enum_in_oneof\x18\x14 \x01(\x0e\x32\x17.test.Simple1.InnerEnumH\x00\x12\x33\n\x07user_id\x18\x15 \x01(\rB\"\xfaG\x1ftest/test_generated_mypy.UserId\x12\x30\n\x05\x65mail\x18\x16 \x01(\tB!\xfaG\x1etest/test_generated_mypy.Email\x12x\n\x0c\x65mail_by_uid\x18\x17 \x03(\x0b\x32\x1d.test.Simple1.EmailByUidEntryBC\x82H\x1ftest/test_generated_mypy.UserId\x8aH\x1etest/test_generated_mypy.Email\x1a\x0e\n\x0cInnerMessage\x1a\x31\n\x0f\x45mailByUidEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"#\n\tInnerEnum\x12\n\n\x06INNER1\x10\x01\x12\n\n\x06INNER2\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\t\n\x07\x61_oneof\"&\n\x07Simple2\x12\x10\n\x08\x61_string\x18\x01 \x02(\t*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"R\n\x0b\x45xtensions1\x12\x13\n\x0b\x65xt1_string\x18\x01 \x01(\t2.\n\x03\x65xt\x12\r.test.Simple1\x18\xe8\x07 \x01(\x0b\x32\x11.test.Extensions1\"K\n\x0b\x45xtensions2\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x08\x32.\n\x03\x66oo\x12\r.test.Simple1\x18\xe4\x0f \x01(\x0b\x32\x11.test.Extensions2\"\x15\n\x04None\x12\r\n\x05valid\x18\x01 \x01(\x03\"\x80\x05\n\x16PythonReservedKeywords\x12\x0c\n\x04\x66rom\x18\x01 \x02(\x03\x12\x19\n\x02in\x18\x02 \x01(\x0b\x32\r.test.Simple2\x12\x30\n\x02is\x18\x03 \x01(\x0e\x32$.test.PythonReservedKeywords.finally\x12\x0b\n\x03\x66or\x18\x05 \x01(\x03\x12\x0b\n\x03try\x18\x06 \x01(\x03\x12\x0b\n\x03\x64\x65\x66\x18\x07 \x01(\x03\x12\x10\n\x08nonlocal\x18\x08 \x01(\x03\x12\r\n\x05while\x18\t \x01(\x03\x12\x0b\n\x03\x61nd\x18\n \x01(\x03\x12\x0b\n\x03\x64\x65l\x18\x0b \x01(\x03\x12\x0e\n\x06global\x18\x0c \x01(\x03\x12\x0b\n\x03not\x18\r \x01(\x03\x12\x0c\n\x04with\x18\x0e \x01(\x03\x12\n\n\x02\x61s\x18\x0f \x01(\x03\x12\x0c\n\x04\x65lif\x18\x10 \x01(\x03\x12\n\n\x02if\x18\x11 \x01(\x03\x12\n\n\x02or\x18\x12 \x01(\x03\x12\r\n\x05yield\x18\x13 \x01(\x03\x12\x0e\n\x06\x61ssert\x18\x14 \x01(\x03\x12\x0c\n\x04\x65lse\x18\x15 \x01(\x03\x12\x0e\n\x06import\x18\x16 \x01(\x03\x12\x0c\n\x04pass\x18\x17 \x01(\x03\x12\r\n\x05\x62reak\x18\x18 \x01(\x03\x12\x0e\n\x06\x65xcept\x18\x19 \x01(\x03\x12\r\n\x05raise\x18\x1a \x01(\x03\x12\r\n\x05\x46\x61lse\x18\x1b \x01(\x03\x12\x0c\n\x04True\x18\x1d \x01(\x03\x12\r\n\x05\x63lass\x18\x1e \x01(\x03\x12\x18\n\x04none\x18\x1c \x01(\x0b\x32\n.test.None\x12\x33\n\x05valid\x18\x1f \x01(\x0e\x32$.test.PythonReservedKeywords.finally\x1a)\n\x06lambda\x12\x10\n\x08\x63ontinue\x18\x01 \x01(\x03\x12\r\n\x05valid\x18\x02 \x01(\x03\"-\n\x07\x66inally\x12\x0c\n\x08\x63ontinue\x10\x01\x12\x14\n\x10valid_in_finally\x10\x02\"+\n\x1bPythonReservedKeywordsSmall\x12\x0c\n\x04\x66rom\x18\x01 \x02(\x03\"\x19\n\tSelfField\x12\x0c\n\x04self\x18\x01 \x01(\x03\")\n\x11\x44\x65precatedMessage\x12\x10\n\x08\x61_string\x18\x01 \x01(\t:\x02\x18\x01\"3\n\x1b\x44\x65precatedMessageBadComment\x12\x10\n\x08\x61_string\x18\x01 \x01(\t:\x02\x18\x01*\x1d\n\tOuterEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02*G\n\x0fNamingConflicts\x12\x08\n\x04Name\x10\x01\x12\t\n\x05Value\x10\x02\x12\x08\n\x04keys\x10\x03\x12\n\n\x06values\x10\x04\x12\t\n\x05items\x10\x05*<\n\x0e\x44\x65precatedEnum\x12\x12\n\x0e\x44\x45PRECATED_ONE\x10\x01\x12\x12\n\x0e\x44\x45PRECATED_TWO\x10\x02\x1a\x02\x18\x01\x32\xde\x01\n\x1dPythonReservedKeywordsService\x12>\n\x06lambda\x12\r.test.Simple1\x1a#.test.PythonReservedKeywords.lambda\"\x00\x12\x31\n\x12valid_method_name1\x12\r.test.Simple1\x1a\n.test.None\"\x00\x12J\n\x12valid_method_name2\x12\r.test.Simple1\x1a#.test.PythonReservedKeywords.lambda\"\x00') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.test_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_DEPRECATEDENUM']._loaded_options = None - _globals['_DEPRECATEDENUM']._serialized_options = b'\030\001' - _globals['_SIMPLE1_EMAILBYUIDENTRY']._loaded_options = None - _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_options = b'8\001' - _globals['_SIMPLE1'].fields_by_name['user_id']._loaded_options = None - _globals['_SIMPLE1'].fields_by_name['user_id']._serialized_options = b'\372G\037test/test_generated_mypy.UserId' - _globals['_SIMPLE1'].fields_by_name['email']._loaded_options = None - _globals['_SIMPLE1'].fields_by_name['email']._serialized_options = b'\372G\036test/test_generated_mypy.Email' - _globals['_SIMPLE1'].fields_by_name['email_by_uid']._loaded_options = None - _globals['_SIMPLE1'].fields_by_name['email_by_uid']._serialized_options = b'\202H\037test/test_generated_mypy.UserId\212H\036test/test_generated_mypy.Email' - _globals['_DEPRECATEDMESSAGE']._loaded_options = None - _globals['_DEPRECATEDMESSAGE']._serialized_options = b'\030\001' - _globals['_DEPRECATEDMESSAGEBADCOMMENT']._loaded_options = None - _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_options = b'\030\001' - _globals['_OUTERENUM']._serialized_start=2375 - _globals['_OUTERENUM']._serialized_end=2404 - _globals['_NAMINGCONFLICTS']._serialized_start=2406 - _globals['_NAMINGCONFLICTS']._serialized_end=2477 - _globals['_DEPRECATEDENUM']._serialized_start=2479 - _globals['_DEPRECATEDENUM']._serialized_end=2539 - _globals['_SIMPLE1']._serialized_start=173 - _globals['_SIMPLE1']._serialized_end=1338 - _globals['_SIMPLE1_INNERMESSAGE']._serialized_start=1214 - _globals['_SIMPLE1_INNERMESSAGE']._serialized_end=1228 - _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_start=1230 - _globals['_SIMPLE1_EMAILBYUIDENTRY']._serialized_end=1279 - _globals['_SIMPLE1_INNERENUM']._serialized_start=1281 - _globals['_SIMPLE1_INNERENUM']._serialized_end=1316 - _globals['_SIMPLE2']._serialized_start=1340 - _globals['_SIMPLE2']._serialized_end=1378 - _globals['_EXTENSIONS1']._serialized_start=1380 - _globals['_EXTENSIONS1']._serialized_end=1462 - _globals['_EXTENSIONS2']._serialized_start=1464 - _globals['_EXTENSIONS2']._serialized_end=1539 - _globals['_NONE']._serialized_start=1541 - _globals['_NONE']._serialized_end=1562 - _globals['_PYTHONRESERVEDKEYWORDS']._serialized_start=1565 - _globals['_PYTHONRESERVEDKEYWORDS']._serialized_end=2205 - _globals['_PYTHONRESERVEDKEYWORDS_LAMBDA']._serialized_start=2117 - _globals['_PYTHONRESERVEDKEYWORDS_LAMBDA']._serialized_end=2158 - _globals['_PYTHONRESERVEDKEYWORDS_FINALLY']._serialized_start=2160 - _globals['_PYTHONRESERVEDKEYWORDS_FINALLY']._serialized_end=2205 - _globals['_PYTHONRESERVEDKEYWORDSSMALL']._serialized_start=2207 - _globals['_PYTHONRESERVEDKEYWORDSSMALL']._serialized_end=2250 - _globals['_SELFFIELD']._serialized_start=2252 - _globals['_SELFFIELD']._serialized_end=2277 - _globals['_DEPRECATEDMESSAGE']._serialized_start=2279 - _globals['_DEPRECATEDMESSAGE']._serialized_end=2320 - _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_start=2322 - _globals['_DEPRECATEDMESSAGEBADCOMMENT']._serialized_end=2373 - _globals['_PYTHONRESERVEDKEYWORDSSERVICE']._serialized_start=2542 - _globals['_PYTHONRESERVEDKEYWORDSSERVICE']._serialized_end=2764 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated-sync-only/testproto/test_pb2.pyi b/test/generated-sync-only/testproto/test_pb2.pyi deleted file mode 100644 index 3058335b..00000000 --- a/test/generated-sync-only/testproto/test_pb2.pyi +++ /dev/null @@ -1,439 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -Proto 2 test file.""" - -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.internal.extension_dict -import google.protobuf.message -import sys -import test.test_generated_mypy -import testproto.inner.inner_pb2 -import testproto.nested.nested_pb2 -import testproto.nopackage_pb2 -import testproto.test3_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -if sys.version_info >= (3, 13): - from warnings import deprecated -else: - from typing_extensions import deprecated - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -class _OuterEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - FOO: _OuterEnum.ValueType # 1 - """FOO""" - BAR: _OuterEnum.ValueType # 2 - """BAR""" - -class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): - """Outer Enum""" - -FOO: OuterEnum.ValueType # 1 -"""FOO""" -BAR: OuterEnum.ValueType # 2 -"""BAR""" -Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum - -class _NamingConflicts: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _NamingConflictsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NamingConflicts.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - -class NamingConflicts(_NamingConflicts, metaclass=_NamingConflictsEnumTypeWrapper): - """Naming conflicts!""" - -Name: NamingConflicts.ValueType # 1 -Value: NamingConflicts.ValueType # 2 -keys: NamingConflicts.ValueType # 3 -values: NamingConflicts.ValueType # 4 -items: NamingConflicts.ValueType # 5 -"""See https://github.com/protocolbuffers/protobuf/issues/8803 -proto itself generates broken code when DESCRIPTOR is there -DESCRIPTOR = 8; -""" -Global___NamingConflicts: typing_extensions.TypeAlias = NamingConflicts - -class _DeprecatedEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _DeprecatedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeprecatedEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - DEPRECATED_ONE: _DeprecatedEnum.ValueType # 1 - DEPRECATED_TWO: _DeprecatedEnum.ValueType # 2 - -@deprecated("""This enum is deprecated\n2 lines of comments\n"Quotes in comments"\nand 'single quotes'\nTrailing comment""") -class DeprecatedEnum(_DeprecatedEnum, metaclass=_DeprecatedEnumEnumTypeWrapper): ... - -DEPRECATED_ONE: DeprecatedEnum.ValueType # 1 -DEPRECATED_TWO: DeprecatedEnum.ValueType # 2 -Global___DeprecatedEnum: typing_extensions.TypeAlias = DeprecatedEnum - -@typing.final -class Simple1(google.protobuf.message.Message): - """Message with one of everything""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _InnerEnum: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Simple1._InnerEnum.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - INNER1: Simple1._InnerEnum.ValueType # 1 - """INNER1""" - INNER2: Simple1._InnerEnum.ValueType # 2 - """INNER2""" - - class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): - """Inner Enum""" - - INNER1: Simple1.InnerEnum.ValueType # 1 - """INNER1""" - INNER2: Simple1.InnerEnum.ValueType # 2 - """INNER2""" - - @typing.final - class InnerMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - - @typing.final - class EmailByUidEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.int - value: builtins.str - def __init__( - self, - *, - key: builtins.int | None = ..., - value: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - - A_STRING_FIELD_NUMBER: builtins.int - A_REPEATED_STRING_FIELD_NUMBER: builtins.int - A_BOOLEAN_FIELD_NUMBER: builtins.int - A_UINT32_FIELD_NUMBER: builtins.int - A_ENUM_FIELD_NUMBER: builtins.int - A_EXTERNAL_ENUM_FIELD_NUMBER: builtins.int - A_INNER_FIELD_NUMBER: builtins.int - A_NESTED_FIELD_NUMBER: builtins.int - INNER_ENUM_FIELD_NUMBER: builtins.int - REP_INNER_ENUM_FIELD_NUMBER: builtins.int - INNER_MESSAGE_FIELD_NUMBER: builtins.int - REP_INNER_MESSAGE_FIELD_NUMBER: builtins.int - NO_PACKAGE_FIELD_NUMBER: builtins.int - NESTED_ENUM_FIELD_NUMBER: builtins.int - NESTED_MESSAGE_FIELD_NUMBER: builtins.int - A_ONEOF_1_FIELD_NUMBER: builtins.int - A_ONEOF_2_FIELD_NUMBER: builtins.int - OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int - OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int - INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int - USER_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - EMAIL_BY_UID_FIELD_NUMBER: builtins.int - a_string: builtins.str - a_boolean: builtins.bool - a_uint32: builtins.int - a_enum: Global___OuterEnum.ValueType - a_external_enum: testproto.test3_pb2.OuterEnum.ValueType - inner_enum: Global___Simple1.InnerEnum.ValueType - nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType - a_oneof_1: builtins.str - a_oneof_2: builtins.str - outer_enum_in_oneof: Global___OuterEnum.ValueType - inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType - user_id: test.test_generated_mypy.UserId - email: test.test_generated_mypy.Email - @property - def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def a_inner(self) -> testproto.inner.inner_pb2.Inner: ... - @property - def a_nested(self) -> testproto.nested.nested_pb2.Nested: ... - @property - def rep_inner_enum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[Global___Simple1.InnerEnum.ValueType]: ... - @property - def inner_message(self) -> Global___Simple1.InnerMessage: ... - @property - def rep_inner_message(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Simple1.InnerMessage]: ... - @property - def no_package(self) -> testproto.nopackage_pb2.NoPackage: ... - @property - def nested_message(self) -> testproto.nested.nested_pb2.AnotherNested.NestedMessage: ... - @property - def outer_message_in_oneof(self) -> Global___Simple2: ... - @property - def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... - def __init__( - self, - *, - a_string: builtins.str | None = ..., - a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., - a_boolean: builtins.bool | None = ..., - a_uint32: builtins.int | None = ..., - a_enum: Global___OuterEnum.ValueType | None = ..., - a_external_enum: testproto.test3_pb2.OuterEnum.ValueType | None = ..., - a_inner: testproto.inner.inner_pb2.Inner | None = ..., - a_nested: testproto.nested.nested_pb2.Nested | None = ..., - inner_enum: Global___Simple1.InnerEnum.ValueType | None = ..., - rep_inner_enum: collections.abc.Iterable[Global___Simple1.InnerEnum.ValueType] | None = ..., - inner_message: Global___Simple1.InnerMessage | None = ..., - rep_inner_message: collections.abc.Iterable[Global___Simple1.InnerMessage] | None = ..., - no_package: testproto.nopackage_pb2.NoPackage | None = ..., - nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType | None = ..., - nested_message: testproto.nested.nested_pb2.AnotherNested.NestedMessage | None = ..., - a_oneof_1: builtins.str | None = ..., - a_oneof_2: builtins.str | None = ..., - outer_message_in_oneof: Global___Simple2 | None = ..., - outer_enum_in_oneof: Global___OuterEnum.ValueType | None = ..., - inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType | None = ..., - user_id: test.test_generated_mypy.UserId | None = ..., - email: test.test_generated_mypy.Email | None = ..., - email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "rep_inner_enum", b"rep_inner_enum", "rep_inner_message", b"rep_inner_message", "user_id", b"user_id"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["a_oneof", b"a_oneof"]) -> typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] | None: ... - -Global___Simple1: typing_extensions.TypeAlias = Simple1 - -@typing.final -class Simple2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___Simple2: typing_extensions.TypeAlias = Simple2 - -@typing.final -class Extensions1(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - EXT1_STRING_FIELD_NUMBER: builtins.int - ext1_string: builtins.str - EXT_FIELD_NUMBER: builtins.int - ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions1] - """ext""" - def __init__( - self, - *, - ext1_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["ext1_string", b"ext1_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["ext1_string", b"ext1_string"]) -> None: ... - -Global___Extensions1: typing_extensions.TypeAlias = Extensions1 - -@typing.final -class Extensions2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FLAG_FIELD_NUMBER: builtins.int - flag: builtins.bool - FOO_FIELD_NUMBER: builtins.int - foo: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions2] - """foo""" - def __init__( - self, - *, - flag: builtins.bool | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["flag", b"flag"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["flag", b"flag"]) -> None: ... - -Global___Extensions2: typing_extensions.TypeAlias = Extensions2 - -@typing.final -class _r_None(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VALID_FIELD_NUMBER: builtins.int - valid: builtins.int - def __init__( - self, - *, - valid: builtins.int | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["valid", b"valid"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["valid", b"valid"]) -> None: ... - -Global____r_None: typing_extensions.TypeAlias = _r_None - -@typing.final -class PythonReservedKeywords(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - class _finally: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - - class _finallyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PythonReservedKeywords._finally.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - valid_in_finally: PythonReservedKeywords._finally.ValueType # 2 - - class _r_finally(_finally, metaclass=_finallyEnumTypeWrapper): ... - valid_in_finally: PythonReservedKeywords._r_finally.ValueType # 2 - - @typing.final - class _r_lambda(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - CONTINUE_FIELD_NUMBER: builtins.int - VALID_FIELD_NUMBER: builtins.int - valid: builtins.int - def __init__( - self, - *, - valid: builtins.int | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["continue", b"continue", "valid", b"valid"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["continue", b"continue", "valid", b"valid"]) -> None: ... - - FROM_FIELD_NUMBER: builtins.int - IN_FIELD_NUMBER: builtins.int - IS_FIELD_NUMBER: builtins.int - FOR_FIELD_NUMBER: builtins.int - TRY_FIELD_NUMBER: builtins.int - DEF_FIELD_NUMBER: builtins.int - NONLOCAL_FIELD_NUMBER: builtins.int - WHILE_FIELD_NUMBER: builtins.int - AND_FIELD_NUMBER: builtins.int - DEL_FIELD_NUMBER: builtins.int - GLOBAL_FIELD_NUMBER: builtins.int - NOT_FIELD_NUMBER: builtins.int - WITH_FIELD_NUMBER: builtins.int - AS_FIELD_NUMBER: builtins.int - ELIF_FIELD_NUMBER: builtins.int - IF_FIELD_NUMBER: builtins.int - OR_FIELD_NUMBER: builtins.int - YIELD_FIELD_NUMBER: builtins.int - ASSERT_FIELD_NUMBER: builtins.int - ELSE_FIELD_NUMBER: builtins.int - IMPORT_FIELD_NUMBER: builtins.int - PASS_FIELD_NUMBER: builtins.int - BREAK_FIELD_NUMBER: builtins.int - EXCEPT_FIELD_NUMBER: builtins.int - RAISE_FIELD_NUMBER: builtins.int - FALSE_FIELD_NUMBER: builtins.int - TRUE_FIELD_NUMBER: builtins.int - CLASS_FIELD_NUMBER: builtins.int - NONE_FIELD_NUMBER: builtins.int - VALID_FIELD_NUMBER: builtins.int - valid: Global___PythonReservedKeywords._r_finally.ValueType - @property - def none(self) -> Global____r_None: - """Test unreserved identifiers w/ reserved message names""" - - def __init__( - self, - *, - none: Global____r_None | None = ..., - valid: Global___PythonReservedKeywords._r_finally.ValueType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"]) -> None: ... - -Global___PythonReservedKeywords: typing_extensions.TypeAlias = PythonReservedKeywords - -@typing.final -class PythonReservedKeywordsSmall(google.protobuf.message.Message): - """Do one with just one arg - to make sure it's syntactically correct""" - - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - FROM_FIELD_NUMBER: builtins.int - def __init__( - self, - ) -> None: ... - def HasField(self, field_name: typing.Literal["from", b"from"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["from", b"from"]) -> None: ... - -Global___PythonReservedKeywordsSmall: typing_extensions.TypeAlias = PythonReservedKeywordsSmall - -@typing.final -class SelfField(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - SELF_FIELD_NUMBER: builtins.int - self: builtins.int - """Field self -> must generate an __init__ method w/ different name""" - def __init__( - self_, # pyright: ignore[reportSelfClsParameterName] - *, - self: builtins.int | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["self", b"self"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["self", b"self"]) -> None: ... - -Global___SelfField: typing_extensions.TypeAlias = SelfField - -@deprecated("""This message is deprecated""") -@typing.final -class DeprecatedMessage(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___DeprecatedMessage: typing_extensions.TypeAlias = DeprecatedMessage - -@deprecated("""This message has been marked as deprecated using proto message options.""") -@typing.final -class DeprecatedMessageBadComment(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - A_STRING_FIELD_NUMBER: builtins.int - a_string: builtins.str - def __init__( - self, - *, - a_string: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["a_string", b"a_string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["a_string", b"a_string"]) -> None: ... - -Global___DeprecatedMessageBadComment: typing_extensions.TypeAlias = DeprecatedMessageBadComment diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2.py b/test/generated_async_only/testproto/grpc/dummy_pb2.py similarity index 100% rename from test/generated-async-only/testproto/grpc/dummy_pb2.py rename to test/generated_async_only/testproto/grpc/dummy_pb2.py diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2.pyi similarity index 100% rename from test/generated-async-only/testproto/grpc/dummy_pb2.pyi rename to test/generated_async_only/testproto/grpc/dummy_pb2.pyi diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.py b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.py similarity index 100% rename from test/generated-async-only/testproto/grpc/dummy_pb2_grpc.py rename to test/generated_async_only/testproto/grpc/dummy_pb2_grpc.py index eef0f7f6..1e06e396 100644 --- a/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.py +++ b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.py @@ -1,8 +1,8 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" +import grpc import warnings -import grpc from testproto.grpc import dummy_pb2 as testproto_dot_grpc_dot_dummy__pb2 GRPC_GENERATED_VERSION = '1.76.0' diff --git a/test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi similarity index 100% rename from test/generated-async-only/testproto/grpc/dummy_pb2_grpc.pyi rename to test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi diff --git a/test/generated-async-only/testproto/grpc/import_pb2.py b/test/generated_async_only/testproto/grpc/import_pb2.py similarity index 100% rename from test/generated-async-only/testproto/grpc/import_pb2.py rename to test/generated_async_only/testproto/grpc/import_pb2.py diff --git a/test/generated-async-only/testproto/grpc/import_pb2.pyi b/test/generated_async_only/testproto/grpc/import_pb2.pyi similarity index 100% rename from test/generated-async-only/testproto/grpc/import_pb2.pyi rename to test/generated_async_only/testproto/grpc/import_pb2.pyi diff --git a/test/generated-async-only/testproto/grpc/import_pb2_grpc.py b/test/generated_async_only/testproto/grpc/import_pb2_grpc.py similarity index 100% rename from test/generated-async-only/testproto/grpc/import_pb2_grpc.py rename to test/generated_async_only/testproto/grpc/import_pb2_grpc.py index 0a09fd20..2c1755d6 100644 --- a/test/generated-async-only/testproto/grpc/import_pb2_grpc.py +++ b/test/generated_async_only/testproto/grpc/import_pb2_grpc.py @@ -1,8 +1,8 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" +import grpc import warnings -import grpc from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from testproto import test_pb2 as testproto_dot_test__pb2 diff --git a/test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi similarity index 100% rename from test/generated-async-only/testproto/grpc/import_pb2_grpc.pyi rename to test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi diff --git a/test/generated_concrete/testproto/edition2024_pb2.pyi b/test/generated_concrete/testproto/edition2024_pb2.pyi index 02e9c3fb..6de2ba64 100644 --- a/test/generated_concrete/testproto/edition2024_pb2.pyi +++ b/test/generated_concrete/testproto/edition2024_pb2.pyi @@ -27,10 +27,8 @@ class Editions2024SubMessage(google.protobuf.message.Message): *, thing: builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["thing", b"thing"] - def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... - _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["thing", b"thing"] - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing.Literal["thing", b"thing"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["thing", b"thing"]) -> None: ... Global___Editions2024SubMessage: typing_extensions.TypeAlias = Editions2024SubMessage @@ -64,9 +62,7 @@ class Editions2024Test(google.protobuf.message.Message): implicit_singular: builtins.str = ..., default_singular: builtins.str | None = ..., ) -> None: ... - _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"] - def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... - _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"] - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def HasField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> None: ... Global___Editions2024Test: typing_extensions.TypeAlias = Editions2024Test diff --git a/test/generated_concrete/testproto/grpc/dummy_pb2.pyi b/test/generated_concrete/testproto/grpc/dummy_pb2.pyi index 94987554..ce03f2a5 100644 --- a/test/generated_concrete/testproto/grpc/dummy_pb2.pyi +++ b/test/generated_concrete/testproto/grpc/dummy_pb2.pyi @@ -32,8 +32,7 @@ class DummyRequest(google.protobuf.message.Message): *, value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... Global___DummyRequest: typing_extensions.TypeAlias = DummyRequest @@ -48,8 +47,7 @@ class DummyReply(google.protobuf.message.Message): *, value: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... Global___DummyReply: typing_extensions.TypeAlias = DummyReply @@ -65,1987 +63,6 @@ class DeprecatedRequest(google.protobuf.message.Message): *, old_field: builtins.str = ..., ) -> None: ... - _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["old_field", b"old_field"] - def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + def ClearField(self, field_name: typing.Literal["old_field", b"old_field"]) -> None: ... Global___DeprecatedRequest: typing_extensions.TypeAlias = DeprecatedRequest - -@typing.final -class ManyRequest1(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest1: typing_extensions.TypeAlias = ManyRequest1 - -@typing.final -class ManyResponse1(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse1: typing_extensions.TypeAlias = ManyResponse1 - -@typing.final -class ManyRequest2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest2: typing_extensions.TypeAlias = ManyRequest2 - -@typing.final -class ManyResponse2(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse2: typing_extensions.TypeAlias = ManyResponse2 - -@typing.final -class ManyRequest3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest3: typing_extensions.TypeAlias = ManyRequest3 - -@typing.final -class ManyResponse3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse3: typing_extensions.TypeAlias = ManyResponse3 - -@typing.final -class ManyRequest4(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest4: typing_extensions.TypeAlias = ManyRequest4 - -@typing.final -class ManyResponse4(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse4: typing_extensions.TypeAlias = ManyResponse4 - -@typing.final -class ManyRequest5(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest5: typing_extensions.TypeAlias = ManyRequest5 - -@typing.final -class ManyResponse5(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse5: typing_extensions.TypeAlias = ManyResponse5 - -@typing.final -class ManyRequest6(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest6: typing_extensions.TypeAlias = ManyRequest6 - -@typing.final -class ManyResponse6(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse6: typing_extensions.TypeAlias = ManyResponse6 - -@typing.final -class ManyRequest7(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest7: typing_extensions.TypeAlias = ManyRequest7 - -@typing.final -class ManyResponse7(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse7: typing_extensions.TypeAlias = ManyResponse7 - -@typing.final -class ManyRequest8(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest8: typing_extensions.TypeAlias = ManyRequest8 - -@typing.final -class ManyResponse8(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse8: typing_extensions.TypeAlias = ManyResponse8 - -@typing.final -class ManyRequest9(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest9: typing_extensions.TypeAlias = ManyRequest9 - -@typing.final -class ManyResponse9(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse9: typing_extensions.TypeAlias = ManyResponse9 - -@typing.final -class ManyRequest10(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest10: typing_extensions.TypeAlias = ManyRequest10 - -@typing.final -class ManyResponse10(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse10: typing_extensions.TypeAlias = ManyResponse10 - -@typing.final -class ManyRequest11(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest11: typing_extensions.TypeAlias = ManyRequest11 - -@typing.final -class ManyResponse11(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse11: typing_extensions.TypeAlias = ManyResponse11 - -@typing.final -class ManyRequest12(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest12: typing_extensions.TypeAlias = ManyRequest12 - -@typing.final -class ManyResponse12(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse12: typing_extensions.TypeAlias = ManyResponse12 - -@typing.final -class ManyRequest13(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest13: typing_extensions.TypeAlias = ManyRequest13 - -@typing.final -class ManyResponse13(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse13: typing_extensions.TypeAlias = ManyResponse13 - -@typing.final -class ManyRequest14(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest14: typing_extensions.TypeAlias = ManyRequest14 - -@typing.final -class ManyResponse14(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse14: typing_extensions.TypeAlias = ManyResponse14 - -@typing.final -class ManyRequest15(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest15: typing_extensions.TypeAlias = ManyRequest15 - -@typing.final -class ManyResponse15(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse15: typing_extensions.TypeAlias = ManyResponse15 - -@typing.final -class ManyRequest16(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest16: typing_extensions.TypeAlias = ManyRequest16 - -@typing.final -class ManyResponse16(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse16: typing_extensions.TypeAlias = ManyResponse16 - -@typing.final -class ManyRequest17(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest17: typing_extensions.TypeAlias = ManyRequest17 - -@typing.final -class ManyResponse17(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse17: typing_extensions.TypeAlias = ManyResponse17 - -@typing.final -class ManyRequest18(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest18: typing_extensions.TypeAlias = ManyRequest18 - -@typing.final -class ManyResponse18(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse18: typing_extensions.TypeAlias = ManyResponse18 - -@typing.final -class ManyRequest19(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest19: typing_extensions.TypeAlias = ManyRequest19 - -@typing.final -class ManyResponse19(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse19: typing_extensions.TypeAlias = ManyResponse19 - -@typing.final -class ManyRequest20(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest20: typing_extensions.TypeAlias = ManyRequest20 - -@typing.final -class ManyResponse20(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse20: typing_extensions.TypeAlias = ManyResponse20 - -@typing.final -class ManyRequest21(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest21: typing_extensions.TypeAlias = ManyRequest21 - -@typing.final -class ManyResponse21(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse21: typing_extensions.TypeAlias = ManyResponse21 - -@typing.final -class ManyRequest22(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest22: typing_extensions.TypeAlias = ManyRequest22 - -@typing.final -class ManyResponse22(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse22: typing_extensions.TypeAlias = ManyResponse22 - -@typing.final -class ManyRequest23(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest23: typing_extensions.TypeAlias = ManyRequest23 - -@typing.final -class ManyResponse23(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse23: typing_extensions.TypeAlias = ManyResponse23 - -@typing.final -class ManyRequest24(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest24: typing_extensions.TypeAlias = ManyRequest24 - -@typing.final -class ManyResponse24(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse24: typing_extensions.TypeAlias = ManyResponse24 - -@typing.final -class ManyRequest25(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest25: typing_extensions.TypeAlias = ManyRequest25 - -@typing.final -class ManyResponse25(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse25: typing_extensions.TypeAlias = ManyResponse25 - -@typing.final -class ManyRequest26(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest26: typing_extensions.TypeAlias = ManyRequest26 - -@typing.final -class ManyResponse26(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse26: typing_extensions.TypeAlias = ManyResponse26 - -@typing.final -class ManyRequest27(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest27: typing_extensions.TypeAlias = ManyRequest27 - -@typing.final -class ManyResponse27(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse27: typing_extensions.TypeAlias = ManyResponse27 - -@typing.final -class ManyRequest28(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest28: typing_extensions.TypeAlias = ManyRequest28 - -@typing.final -class ManyResponse28(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse28: typing_extensions.TypeAlias = ManyResponse28 - -@typing.final -class ManyRequest29(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest29: typing_extensions.TypeAlias = ManyRequest29 - -@typing.final -class ManyResponse29(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse29: typing_extensions.TypeAlias = ManyResponse29 - -@typing.final -class ManyRequest30(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest30: typing_extensions.TypeAlias = ManyRequest30 - -@typing.final -class ManyResponse30(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse30: typing_extensions.TypeAlias = ManyResponse30 - -@typing.final -class ManyRequest31(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest31: typing_extensions.TypeAlias = ManyRequest31 - -@typing.final -class ManyResponse31(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse31: typing_extensions.TypeAlias = ManyResponse31 - -@typing.final -class ManyRequest32(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest32: typing_extensions.TypeAlias = ManyRequest32 - -@typing.final -class ManyResponse32(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse32: typing_extensions.TypeAlias = ManyResponse32 - -@typing.final -class ManyRequest33(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest33: typing_extensions.TypeAlias = ManyRequest33 - -@typing.final -class ManyResponse33(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse33: typing_extensions.TypeAlias = ManyResponse33 - -@typing.final -class ManyRequest34(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest34: typing_extensions.TypeAlias = ManyRequest34 - -@typing.final -class ManyResponse34(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse34: typing_extensions.TypeAlias = ManyResponse34 - -@typing.final -class ManyRequest35(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest35: typing_extensions.TypeAlias = ManyRequest35 - -@typing.final -class ManyResponse35(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse35: typing_extensions.TypeAlias = ManyResponse35 - -@typing.final -class ManyRequest36(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest36: typing_extensions.TypeAlias = ManyRequest36 - -@typing.final -class ManyResponse36(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse36: typing_extensions.TypeAlias = ManyResponse36 - -@typing.final -class ManyRequest37(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest37: typing_extensions.TypeAlias = ManyRequest37 - -@typing.final -class ManyResponse37(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse37: typing_extensions.TypeAlias = ManyResponse37 - -@typing.final -class ManyRequest38(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest38: typing_extensions.TypeAlias = ManyRequest38 - -@typing.final -class ManyResponse38(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse38: typing_extensions.TypeAlias = ManyResponse38 - -@typing.final -class ManyRequest39(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest39: typing_extensions.TypeAlias = ManyRequest39 - -@typing.final -class ManyResponse39(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse39: typing_extensions.TypeAlias = ManyResponse39 - -@typing.final -class ManyRequest40(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest40: typing_extensions.TypeAlias = ManyRequest40 - -@typing.final -class ManyResponse40(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse40: typing_extensions.TypeAlias = ManyResponse40 - -@typing.final -class ManyRequest41(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest41: typing_extensions.TypeAlias = ManyRequest41 - -@typing.final -class ManyResponse41(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse41: typing_extensions.TypeAlias = ManyResponse41 - -@typing.final -class ManyRequest42(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest42: typing_extensions.TypeAlias = ManyRequest42 - -@typing.final -class ManyResponse42(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse42: typing_extensions.TypeAlias = ManyResponse42 - -@typing.final -class ManyRequest43(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest43: typing_extensions.TypeAlias = ManyRequest43 - -@typing.final -class ManyResponse43(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse43: typing_extensions.TypeAlias = ManyResponse43 - -@typing.final -class ManyRequest44(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest44: typing_extensions.TypeAlias = ManyRequest44 - -@typing.final -class ManyResponse44(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse44: typing_extensions.TypeAlias = ManyResponse44 - -@typing.final -class ManyRequest45(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest45: typing_extensions.TypeAlias = ManyRequest45 - -@typing.final -class ManyResponse45(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse45: typing_extensions.TypeAlias = ManyResponse45 - -@typing.final -class ManyRequest46(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest46: typing_extensions.TypeAlias = ManyRequest46 - -@typing.final -class ManyResponse46(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse46: typing_extensions.TypeAlias = ManyResponse46 - -@typing.final -class ManyRequest47(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest47: typing_extensions.TypeAlias = ManyRequest47 - -@typing.final -class ManyResponse47(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse47: typing_extensions.TypeAlias = ManyResponse47 - -@typing.final -class ManyRequest48(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest48: typing_extensions.TypeAlias = ManyRequest48 - -@typing.final -class ManyResponse48(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse48: typing_extensions.TypeAlias = ManyResponse48 - -@typing.final -class ManyRequest49(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest49: typing_extensions.TypeAlias = ManyRequest49 - -@typing.final -class ManyResponse49(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse49: typing_extensions.TypeAlias = ManyResponse49 - -@typing.final -class ManyRequest50(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest50: typing_extensions.TypeAlias = ManyRequest50 - -@typing.final -class ManyResponse50(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse50: typing_extensions.TypeAlias = ManyResponse50 - -@typing.final -class ManyRequest51(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest51: typing_extensions.TypeAlias = ManyRequest51 - -@typing.final -class ManyResponse51(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse51: typing_extensions.TypeAlias = ManyResponse51 - -@typing.final -class ManyRequest52(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest52: typing_extensions.TypeAlias = ManyRequest52 - -@typing.final -class ManyResponse52(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse52: typing_extensions.TypeAlias = ManyResponse52 - -@typing.final -class ManyRequest53(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest53: typing_extensions.TypeAlias = ManyRequest53 - -@typing.final -class ManyResponse53(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse53: typing_extensions.TypeAlias = ManyResponse53 - -@typing.final -class ManyRequest54(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest54: typing_extensions.TypeAlias = ManyRequest54 - -@typing.final -class ManyResponse54(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse54: typing_extensions.TypeAlias = ManyResponse54 - -@typing.final -class ManyRequest55(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest55: typing_extensions.TypeAlias = ManyRequest55 - -@typing.final -class ManyResponse55(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse55: typing_extensions.TypeAlias = ManyResponse55 - -@typing.final -class ManyRequest56(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest56: typing_extensions.TypeAlias = ManyRequest56 - -@typing.final -class ManyResponse56(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse56: typing_extensions.TypeAlias = ManyResponse56 - -@typing.final -class ManyRequest57(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest57: typing_extensions.TypeAlias = ManyRequest57 - -@typing.final -class ManyResponse57(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse57: typing_extensions.TypeAlias = ManyResponse57 - -@typing.final -class ManyRequest58(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest58: typing_extensions.TypeAlias = ManyRequest58 - -@typing.final -class ManyResponse58(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse58: typing_extensions.TypeAlias = ManyResponse58 - -@typing.final -class ManyRequest59(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest59: typing_extensions.TypeAlias = ManyRequest59 - -@typing.final -class ManyResponse59(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse59: typing_extensions.TypeAlias = ManyResponse59 - -@typing.final -class ManyRequest60(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest60: typing_extensions.TypeAlias = ManyRequest60 - -@typing.final -class ManyResponse60(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse60: typing_extensions.TypeAlias = ManyResponse60 - -@typing.final -class ManyRequest61(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest61: typing_extensions.TypeAlias = ManyRequest61 - -@typing.final -class ManyResponse61(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse61: typing_extensions.TypeAlias = ManyResponse61 - -@typing.final -class ManyRequest62(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest62: typing_extensions.TypeAlias = ManyRequest62 - -@typing.final -class ManyResponse62(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse62: typing_extensions.TypeAlias = ManyResponse62 - -@typing.final -class ManyRequest63(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest63: typing_extensions.TypeAlias = ManyRequest63 - -@typing.final -class ManyResponse63(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse63: typing_extensions.TypeAlias = ManyResponse63 - -@typing.final -class ManyRequest64(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest64: typing_extensions.TypeAlias = ManyRequest64 - -@typing.final -class ManyResponse64(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse64: typing_extensions.TypeAlias = ManyResponse64 - -@typing.final -class ManyRequest65(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest65: typing_extensions.TypeAlias = ManyRequest65 - -@typing.final -class ManyResponse65(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse65: typing_extensions.TypeAlias = ManyResponse65 - -@typing.final -class ManyRequest66(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest66: typing_extensions.TypeAlias = ManyRequest66 - -@typing.final -class ManyResponse66(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse66: typing_extensions.TypeAlias = ManyResponse66 - -@typing.final -class ManyRequest67(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest67: typing_extensions.TypeAlias = ManyRequest67 - -@typing.final -class ManyResponse67(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse67: typing_extensions.TypeAlias = ManyResponse67 - -@typing.final -class ManyRequest68(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest68: typing_extensions.TypeAlias = ManyRequest68 - -@typing.final -class ManyResponse68(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse68: typing_extensions.TypeAlias = ManyResponse68 - -@typing.final -class ManyRequest69(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest69: typing_extensions.TypeAlias = ManyRequest69 - -@typing.final -class ManyResponse69(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse69: typing_extensions.TypeAlias = ManyResponse69 - -@typing.final -class ManyRequest70(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest70: typing_extensions.TypeAlias = ManyRequest70 - -@typing.final -class ManyResponse70(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse70: typing_extensions.TypeAlias = ManyResponse70 - -@typing.final -class ManyRequest71(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest71: typing_extensions.TypeAlias = ManyRequest71 - -@typing.final -class ManyResponse71(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse71: typing_extensions.TypeAlias = ManyResponse71 - -@typing.final -class ManyRequest72(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest72: typing_extensions.TypeAlias = ManyRequest72 - -@typing.final -class ManyResponse72(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse72: typing_extensions.TypeAlias = ManyResponse72 - -@typing.final -class ManyRequest73(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest73: typing_extensions.TypeAlias = ManyRequest73 - -@typing.final -class ManyResponse73(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse73: typing_extensions.TypeAlias = ManyResponse73 - -@typing.final -class ManyRequest74(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest74: typing_extensions.TypeAlias = ManyRequest74 - -@typing.final -class ManyResponse74(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse74: typing_extensions.TypeAlias = ManyResponse74 - -@typing.final -class ManyRequest75(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest75: typing_extensions.TypeAlias = ManyRequest75 - -@typing.final -class ManyResponse75(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse75: typing_extensions.TypeAlias = ManyResponse75 - -@typing.final -class ManyRequest76(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest76: typing_extensions.TypeAlias = ManyRequest76 - -@typing.final -class ManyResponse76(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse76: typing_extensions.TypeAlias = ManyResponse76 - -@typing.final -class ManyRequest77(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest77: typing_extensions.TypeAlias = ManyRequest77 - -@typing.final -class ManyResponse77(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse77: typing_extensions.TypeAlias = ManyResponse77 - -@typing.final -class ManyRequest78(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest78: typing_extensions.TypeAlias = ManyRequest78 - -@typing.final -class ManyResponse78(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse78: typing_extensions.TypeAlias = ManyResponse78 - -@typing.final -class ManyRequest79(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest79: typing_extensions.TypeAlias = ManyRequest79 - -@typing.final -class ManyResponse79(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse79: typing_extensions.TypeAlias = ManyResponse79 - -@typing.final -class ManyRequest80(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest80: typing_extensions.TypeAlias = ManyRequest80 - -@typing.final -class ManyResponse80(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse80: typing_extensions.TypeAlias = ManyResponse80 - -@typing.final -class ManyRequest81(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest81: typing_extensions.TypeAlias = ManyRequest81 - -@typing.final -class ManyResponse81(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse81: typing_extensions.TypeAlias = ManyResponse81 - -@typing.final -class ManyRequest82(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest82: typing_extensions.TypeAlias = ManyRequest82 - -@typing.final -class ManyResponse82(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse82: typing_extensions.TypeAlias = ManyResponse82 - -@typing.final -class ManyRequest83(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest83: typing_extensions.TypeAlias = ManyRequest83 - -@typing.final -class ManyResponse83(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse83: typing_extensions.TypeAlias = ManyResponse83 - -@typing.final -class ManyRequest84(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest84: typing_extensions.TypeAlias = ManyRequest84 - -@typing.final -class ManyResponse84(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse84: typing_extensions.TypeAlias = ManyResponse84 - -@typing.final -class ManyRequest85(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest85: typing_extensions.TypeAlias = ManyRequest85 - -@typing.final -class ManyResponse85(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse85: typing_extensions.TypeAlias = ManyResponse85 - -@typing.final -class ManyRequest86(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest86: typing_extensions.TypeAlias = ManyRequest86 - -@typing.final -class ManyResponse86(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse86: typing_extensions.TypeAlias = ManyResponse86 - -@typing.final -class ManyRequest87(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest87: typing_extensions.TypeAlias = ManyRequest87 - -@typing.final -class ManyResponse87(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse87: typing_extensions.TypeAlias = ManyResponse87 - -@typing.final -class ManyRequest88(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest88: typing_extensions.TypeAlias = ManyRequest88 - -@typing.final -class ManyResponse88(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse88: typing_extensions.TypeAlias = ManyResponse88 - -@typing.final -class ManyRequest89(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest89: typing_extensions.TypeAlias = ManyRequest89 - -@typing.final -class ManyResponse89(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse89: typing_extensions.TypeAlias = ManyResponse89 - -@typing.final -class ManyRequest90(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest90: typing_extensions.TypeAlias = ManyRequest90 - -@typing.final -class ManyResponse90(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse90: typing_extensions.TypeAlias = ManyResponse90 - -@typing.final -class ManyRequest91(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest91: typing_extensions.TypeAlias = ManyRequest91 - -@typing.final -class ManyResponse91(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse91: typing_extensions.TypeAlias = ManyResponse91 - -@typing.final -class ManyRequest92(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest92: typing_extensions.TypeAlias = ManyRequest92 - -@typing.final -class ManyResponse92(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse92: typing_extensions.TypeAlias = ManyResponse92 - -@typing.final -class ManyRequest93(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest93: typing_extensions.TypeAlias = ManyRequest93 - -@typing.final -class ManyResponse93(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse93: typing_extensions.TypeAlias = ManyResponse93 - -@typing.final -class ManyRequest94(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest94: typing_extensions.TypeAlias = ManyRequest94 - -@typing.final -class ManyResponse94(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse94: typing_extensions.TypeAlias = ManyResponse94 - -@typing.final -class ManyRequest95(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest95: typing_extensions.TypeAlias = ManyRequest95 - -@typing.final -class ManyResponse95(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse95: typing_extensions.TypeAlias = ManyResponse95 - -@typing.final -class ManyRequest96(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest96: typing_extensions.TypeAlias = ManyRequest96 - -@typing.final -class ManyResponse96(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse96: typing_extensions.TypeAlias = ManyResponse96 - -@typing.final -class ManyRequest97(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest97: typing_extensions.TypeAlias = ManyRequest97 - -@typing.final -class ManyResponse97(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse97: typing_extensions.TypeAlias = ManyResponse97 - -@typing.final -class ManyRequest98(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest98: typing_extensions.TypeAlias = ManyRequest98 - -@typing.final -class ManyResponse98(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse98: typing_extensions.TypeAlias = ManyResponse98 - -@typing.final -class ManyRequest99(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyRequest99: typing_extensions.TypeAlias = ManyRequest99 - -@typing.final -class ManyResponse99(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - def __init__( - self, - ) -> None: ... - -Global___ManyResponse99: typing_extensions.TypeAlias = ManyResponse99 diff --git a/test/generated_concrete/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_concrete/testproto/grpc/dummy_pb2_grpc.pyi index c0d70574..c9f53c74 100644 --- a/test/generated_concrete/testproto/grpc/dummy_pb2_grpc.pyi +++ b/test/generated_concrete/testproto/grpc/dummy_pb2_grpc.pyi @@ -11,6 +11,11 @@ import sys import testproto.grpc.dummy_pb2 import typing +if sys.version_info >= (3, 13): + import typing as typing_extensions +else: + import typing_extensions + if sys.version_info >= (3, 13): from warnings import deprecated else: @@ -25,37 +30,144 @@ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: GRPC_GENERATED_VERSION: str GRPC_VERSION: str - -class DummyServiceStub: +_DummyServiceUnaryUnaryType = typing_extensions.TypeVar( + '_DummyServiceUnaryUnaryType', + grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + default=grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], +) + +_DummyServiceUnaryStreamType = typing_extensions.TypeVar( + '_DummyServiceUnaryStreamType', + grpc.UnaryStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.UnaryStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + default=grpc.UnaryStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], +) + +_DummyServiceStreamUnaryType = typing_extensions.TypeVar( + '_DummyServiceStreamUnaryType', + grpc.StreamUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.StreamUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + default=grpc.StreamUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], +) + +_DummyServiceStreamStreamType = typing_extensions.TypeVar( + '_DummyServiceStreamStreamType', + grpc.StreamStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.StreamStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + default=grpc.StreamStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], +) + +class DummyServiceStub(typing.Generic[_DummyServiceUnaryUnaryType, _DummyServiceUnaryStreamType, _DummyServiceStreamUnaryType, _DummyServiceStreamStreamType]): """DummyService""" @typing.overload - def __new__(cls, channel: grpc.Channel) -> DummyServiceStub: ... + def __init__(self: DummyServiceStub[ + grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.UnaryStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.StreamUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.StreamStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + ], channel: grpc.Channel) -> None: ... + @typing.overload - def __new__(cls, channel: grpc.aio.Channel) -> DummyServiceAsyncStub: ... - UnaryUnary: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + def __init__(self: DummyServiceStub[ + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.UnaryStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.StreamUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.StreamStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + ], channel: grpc.aio.Channel) -> None: ... + + UnaryUnary: _DummyServiceUnaryUnaryType """UnaryUnary""" - UnaryStream: grpc.UnaryStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] - """UnaryStream""" - StreamUnary: grpc.StreamUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] - """StreamUnary""" - StreamStream: grpc.StreamStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] - """StreamStream""" -@typing.type_check_only -class DummyServiceAsyncStub(DummyServiceStub): - """DummyService""" - - def __init__(self, channel: grpc.aio.Channel) -> None: ... - UnaryUnary: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] - """UnaryUnary""" - UnaryStream: grpc.aio.UnaryStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + UnaryStream: _DummyServiceUnaryStreamType """UnaryStream""" - StreamUnary: grpc.aio.StreamUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + + StreamUnary: _DummyServiceStreamUnaryType """StreamUnary""" - StreamStream: grpc.aio.StreamStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + + StreamStream: _DummyServiceStreamStreamType """StreamStream""" +DummyServiceAsyncStub: typing_extensions.TypeAlias = DummyServiceStub[ + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.UnaryStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.StreamUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.StreamStreamMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], +] + class DummyServiceServicer: """DummyService""" @@ -89,30 +201,83 @@ class DummyServiceServicer: def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... +_DeprecatedServiceDeprecatedMethodType = typing_extensions.TypeVar( + '_DeprecatedServiceDeprecatedMethodType', + grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DeprecatedRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DeprecatedRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + default=grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DeprecatedRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], +) + +_DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType = typing_extensions.TypeVar( + '_DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType', + grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + default=grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], +) + @deprecated("""This service is deprecated""") -class DeprecatedServiceStub: +class DeprecatedServiceStub(typing.Generic[_DeprecatedServiceDeprecatedMethodType, _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType]): """Marking the service as deprecated""" @typing.overload - def __new__(cls, channel: grpc.Channel) -> DeprecatedServiceStub: ... + def __init__(self: DeprecatedServiceStub[ + grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DeprecatedRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + ], channel: grpc.Channel) -> None: ... + @typing.overload - def __new__(cls, channel: grpc.aio.Channel) -> DeprecatedServiceAsyncStub: ... - DeprecatedMethod: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DeprecatedRequest, testproto.grpc.dummy_pb2.DummyReply] + def __init__(self: DeprecatedServiceStub[ + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DeprecatedRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + ], channel: grpc.aio.Channel) -> None: ... + + DeprecatedMethod: _DeprecatedServiceDeprecatedMethodType """DeprecatedMethod""" - DeprecatedMethodNotDeprecatedRequest: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] - """DeprecatedMethodNotDeprecatedRequest""" -@deprecated("""This service is deprecated""") -@typing.type_check_only -class DeprecatedServiceAsyncStub(DeprecatedServiceStub): - """Marking the service as deprecated""" - - def __init__(self, channel: grpc.aio.Channel) -> None: ... - DeprecatedMethod: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DeprecatedRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] - """DeprecatedMethod""" - DeprecatedMethodNotDeprecatedRequest: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + DeprecatedMethodNotDeprecatedRequest: _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType """DeprecatedMethodNotDeprecatedRequest""" +DeprecatedServiceAsyncStub: typing_extensions.TypeAlias = DeprecatedServiceStub[ + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DeprecatedRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.grpc.dummy_pb2.DummyRequest, + testproto.grpc.dummy_pb2.DummyReply, + ], +] + @deprecated("""This service is deprecated""") class DeprecatedServiceServicer: """Marking the service as deprecated""" @@ -133,823 +298,3 @@ class DeprecatedServiceServicer: @deprecated("""This service is deprecated""") def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... - -class ManyRPCsServiceStub: - @typing.overload - def __new__(cls, channel: grpc.Channel) -> ManyRPCsServiceStub: ... - @typing.overload - def __new__(cls, channel: grpc.aio.Channel) -> ManyRPCsServiceAsyncStub: ... - Method1: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest1, testproto.grpc.dummy_pb2.ManyResponse1] - Method2: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest2, testproto.grpc.dummy_pb2.ManyResponse2] - Method3: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest3, testproto.grpc.dummy_pb2.ManyResponse3] - Method4: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest4, testproto.grpc.dummy_pb2.ManyResponse4] - Method5: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest5, testproto.grpc.dummy_pb2.ManyResponse5] - Method6: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest6, testproto.grpc.dummy_pb2.ManyResponse6] - Method7: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest7, testproto.grpc.dummy_pb2.ManyResponse7] - Method8: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest8, testproto.grpc.dummy_pb2.ManyResponse8] - Method9: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest9, testproto.grpc.dummy_pb2.ManyResponse9] - Method10: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest10, testproto.grpc.dummy_pb2.ManyResponse10] - Method11: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest11, testproto.grpc.dummy_pb2.ManyResponse11] - Method12: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest12, testproto.grpc.dummy_pb2.ManyResponse12] - Method13: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest13, testproto.grpc.dummy_pb2.ManyResponse13] - Method14: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest14, testproto.grpc.dummy_pb2.ManyResponse14] - Method15: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest15, testproto.grpc.dummy_pb2.ManyResponse15] - Method16: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest16, testproto.grpc.dummy_pb2.ManyResponse16] - Method17: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest17, testproto.grpc.dummy_pb2.ManyResponse17] - Method18: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest18, testproto.grpc.dummy_pb2.ManyResponse18] - Method19: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest19, testproto.grpc.dummy_pb2.ManyResponse19] - Method20: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest20, testproto.grpc.dummy_pb2.ManyResponse20] - Method21: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest21, testproto.grpc.dummy_pb2.ManyResponse21] - Method22: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest22, testproto.grpc.dummy_pb2.ManyResponse22] - Method23: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest23, testproto.grpc.dummy_pb2.ManyResponse23] - Method24: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest24, testproto.grpc.dummy_pb2.ManyResponse24] - Method25: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest25, testproto.grpc.dummy_pb2.ManyResponse25] - Method26: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest26, testproto.grpc.dummy_pb2.ManyResponse26] - Method27: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest27, testproto.grpc.dummy_pb2.ManyResponse27] - Method28: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest28, testproto.grpc.dummy_pb2.ManyResponse28] - Method29: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest29, testproto.grpc.dummy_pb2.ManyResponse29] - Method30: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest30, testproto.grpc.dummy_pb2.ManyResponse30] - Method31: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest31, testproto.grpc.dummy_pb2.ManyResponse31] - Method32: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest32, testproto.grpc.dummy_pb2.ManyResponse32] - Method33: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest33, testproto.grpc.dummy_pb2.ManyResponse33] - Method34: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest34, testproto.grpc.dummy_pb2.ManyResponse34] - Method35: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest35, testproto.grpc.dummy_pb2.ManyResponse35] - Method36: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest36, testproto.grpc.dummy_pb2.ManyResponse36] - Method37: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest37, testproto.grpc.dummy_pb2.ManyResponse37] - Method38: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest38, testproto.grpc.dummy_pb2.ManyResponse38] - Method39: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest39, testproto.grpc.dummy_pb2.ManyResponse39] - Method40: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest40, testproto.grpc.dummy_pb2.ManyResponse40] - Method41: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest41, testproto.grpc.dummy_pb2.ManyResponse41] - Method42: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest42, testproto.grpc.dummy_pb2.ManyResponse42] - Method43: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest43, testproto.grpc.dummy_pb2.ManyResponse43] - Method44: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest44, testproto.grpc.dummy_pb2.ManyResponse44] - Method45: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest45, testproto.grpc.dummy_pb2.ManyResponse45] - Method46: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest46, testproto.grpc.dummy_pb2.ManyResponse46] - Method47: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest47, testproto.grpc.dummy_pb2.ManyResponse47] - Method48: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest48, testproto.grpc.dummy_pb2.ManyResponse48] - Method49: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest49, testproto.grpc.dummy_pb2.ManyResponse49] - Method50: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest50, testproto.grpc.dummy_pb2.ManyResponse50] - Method51: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest51, testproto.grpc.dummy_pb2.ManyResponse51] - Method52: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest52, testproto.grpc.dummy_pb2.ManyResponse52] - Method53: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest53, testproto.grpc.dummy_pb2.ManyResponse53] - Method54: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest54, testproto.grpc.dummy_pb2.ManyResponse54] - Method55: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest55, testproto.grpc.dummy_pb2.ManyResponse55] - Method56: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest56, testproto.grpc.dummy_pb2.ManyResponse56] - Method57: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest57, testproto.grpc.dummy_pb2.ManyResponse57] - Method58: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest58, testproto.grpc.dummy_pb2.ManyResponse58] - Method59: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest59, testproto.grpc.dummy_pb2.ManyResponse59] - Method60: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest60, testproto.grpc.dummy_pb2.ManyResponse60] - Method61: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest61, testproto.grpc.dummy_pb2.ManyResponse61] - Method62: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest62, testproto.grpc.dummy_pb2.ManyResponse62] - Method63: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest63, testproto.grpc.dummy_pb2.ManyResponse63] - Method64: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest64, testproto.grpc.dummy_pb2.ManyResponse64] - Method65: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest65, testproto.grpc.dummy_pb2.ManyResponse65] - Method66: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest66, testproto.grpc.dummy_pb2.ManyResponse66] - Method67: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest67, testproto.grpc.dummy_pb2.ManyResponse67] - Method68: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest68, testproto.grpc.dummy_pb2.ManyResponse68] - Method69: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest69, testproto.grpc.dummy_pb2.ManyResponse69] - Method70: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest70, testproto.grpc.dummy_pb2.ManyResponse70] - Method71: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest71, testproto.grpc.dummy_pb2.ManyResponse71] - Method72: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest72, testproto.grpc.dummy_pb2.ManyResponse72] - Method73: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest73, testproto.grpc.dummy_pb2.ManyResponse73] - Method74: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest74, testproto.grpc.dummy_pb2.ManyResponse74] - Method75: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest75, testproto.grpc.dummy_pb2.ManyResponse75] - Method76: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest76, testproto.grpc.dummy_pb2.ManyResponse76] - Method77: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest77, testproto.grpc.dummy_pb2.ManyResponse77] - Method78: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest78, testproto.grpc.dummy_pb2.ManyResponse78] - Method79: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest79, testproto.grpc.dummy_pb2.ManyResponse79] - Method80: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest80, testproto.grpc.dummy_pb2.ManyResponse80] - Method81: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest81, testproto.grpc.dummy_pb2.ManyResponse81] - Method82: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest82, testproto.grpc.dummy_pb2.ManyResponse82] - Method83: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest83, testproto.grpc.dummy_pb2.ManyResponse83] - Method84: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest84, testproto.grpc.dummy_pb2.ManyResponse84] - Method85: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest85, testproto.grpc.dummy_pb2.ManyResponse85] - Method86: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest86, testproto.grpc.dummy_pb2.ManyResponse86] - Method87: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest87, testproto.grpc.dummy_pb2.ManyResponse87] - Method88: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest88, testproto.grpc.dummy_pb2.ManyResponse88] - Method89: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest89, testproto.grpc.dummy_pb2.ManyResponse89] - Method90: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest90, testproto.grpc.dummy_pb2.ManyResponse90] - Method91: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest91, testproto.grpc.dummy_pb2.ManyResponse91] - Method92: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest92, testproto.grpc.dummy_pb2.ManyResponse92] - Method93: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest93, testproto.grpc.dummy_pb2.ManyResponse93] - Method94: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest94, testproto.grpc.dummy_pb2.ManyResponse94] - Method95: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest95, testproto.grpc.dummy_pb2.ManyResponse95] - Method96: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest96, testproto.grpc.dummy_pb2.ManyResponse96] - Method97: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest97, testproto.grpc.dummy_pb2.ManyResponse97] - Method98: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest98, testproto.grpc.dummy_pb2.ManyResponse98] - Method99: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest99, testproto.grpc.dummy_pb2.ManyResponse99] - -@typing.type_check_only -class ManyRPCsServiceAsyncStub(ManyRPCsServiceStub): - def __init__(self, channel: grpc.aio.Channel) -> None: ... - Method1: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest1, testproto.grpc.dummy_pb2.ManyResponse1] # type: ignore[assignment] - Method2: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest2, testproto.grpc.dummy_pb2.ManyResponse2] # type: ignore[assignment] - Method3: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest3, testproto.grpc.dummy_pb2.ManyResponse3] # type: ignore[assignment] - Method4: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest4, testproto.grpc.dummy_pb2.ManyResponse4] # type: ignore[assignment] - Method5: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest5, testproto.grpc.dummy_pb2.ManyResponse5] # type: ignore[assignment] - Method6: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest6, testproto.grpc.dummy_pb2.ManyResponse6] # type: ignore[assignment] - Method7: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest7, testproto.grpc.dummy_pb2.ManyResponse7] # type: ignore[assignment] - Method8: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest8, testproto.grpc.dummy_pb2.ManyResponse8] # type: ignore[assignment] - Method9: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest9, testproto.grpc.dummy_pb2.ManyResponse9] # type: ignore[assignment] - Method10: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest10, testproto.grpc.dummy_pb2.ManyResponse10] # type: ignore[assignment] - Method11: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest11, testproto.grpc.dummy_pb2.ManyResponse11] # type: ignore[assignment] - Method12: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest12, testproto.grpc.dummy_pb2.ManyResponse12] # type: ignore[assignment] - Method13: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest13, testproto.grpc.dummy_pb2.ManyResponse13] # type: ignore[assignment] - Method14: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest14, testproto.grpc.dummy_pb2.ManyResponse14] # type: ignore[assignment] - Method15: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest15, testproto.grpc.dummy_pb2.ManyResponse15] # type: ignore[assignment] - Method16: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest16, testproto.grpc.dummy_pb2.ManyResponse16] # type: ignore[assignment] - Method17: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest17, testproto.grpc.dummy_pb2.ManyResponse17] # type: ignore[assignment] - Method18: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest18, testproto.grpc.dummy_pb2.ManyResponse18] # type: ignore[assignment] - Method19: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest19, testproto.grpc.dummy_pb2.ManyResponse19] # type: ignore[assignment] - Method20: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest20, testproto.grpc.dummy_pb2.ManyResponse20] # type: ignore[assignment] - Method21: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest21, testproto.grpc.dummy_pb2.ManyResponse21] # type: ignore[assignment] - Method22: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest22, testproto.grpc.dummy_pb2.ManyResponse22] # type: ignore[assignment] - Method23: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest23, testproto.grpc.dummy_pb2.ManyResponse23] # type: ignore[assignment] - Method24: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest24, testproto.grpc.dummy_pb2.ManyResponse24] # type: ignore[assignment] - Method25: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest25, testproto.grpc.dummy_pb2.ManyResponse25] # type: ignore[assignment] - Method26: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest26, testproto.grpc.dummy_pb2.ManyResponse26] # type: ignore[assignment] - Method27: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest27, testproto.grpc.dummy_pb2.ManyResponse27] # type: ignore[assignment] - Method28: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest28, testproto.grpc.dummy_pb2.ManyResponse28] # type: ignore[assignment] - Method29: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest29, testproto.grpc.dummy_pb2.ManyResponse29] # type: ignore[assignment] - Method30: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest30, testproto.grpc.dummy_pb2.ManyResponse30] # type: ignore[assignment] - Method31: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest31, testproto.grpc.dummy_pb2.ManyResponse31] # type: ignore[assignment] - Method32: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest32, testproto.grpc.dummy_pb2.ManyResponse32] # type: ignore[assignment] - Method33: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest33, testproto.grpc.dummy_pb2.ManyResponse33] # type: ignore[assignment] - Method34: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest34, testproto.grpc.dummy_pb2.ManyResponse34] # type: ignore[assignment] - Method35: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest35, testproto.grpc.dummy_pb2.ManyResponse35] # type: ignore[assignment] - Method36: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest36, testproto.grpc.dummy_pb2.ManyResponse36] # type: ignore[assignment] - Method37: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest37, testproto.grpc.dummy_pb2.ManyResponse37] # type: ignore[assignment] - Method38: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest38, testproto.grpc.dummy_pb2.ManyResponse38] # type: ignore[assignment] - Method39: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest39, testproto.grpc.dummy_pb2.ManyResponse39] # type: ignore[assignment] - Method40: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest40, testproto.grpc.dummy_pb2.ManyResponse40] # type: ignore[assignment] - Method41: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest41, testproto.grpc.dummy_pb2.ManyResponse41] # type: ignore[assignment] - Method42: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest42, testproto.grpc.dummy_pb2.ManyResponse42] # type: ignore[assignment] - Method43: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest43, testproto.grpc.dummy_pb2.ManyResponse43] # type: ignore[assignment] - Method44: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest44, testproto.grpc.dummy_pb2.ManyResponse44] # type: ignore[assignment] - Method45: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest45, testproto.grpc.dummy_pb2.ManyResponse45] # type: ignore[assignment] - Method46: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest46, testproto.grpc.dummy_pb2.ManyResponse46] # type: ignore[assignment] - Method47: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest47, testproto.grpc.dummy_pb2.ManyResponse47] # type: ignore[assignment] - Method48: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest48, testproto.grpc.dummy_pb2.ManyResponse48] # type: ignore[assignment] - Method49: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest49, testproto.grpc.dummy_pb2.ManyResponse49] # type: ignore[assignment] - Method50: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest50, testproto.grpc.dummy_pb2.ManyResponse50] # type: ignore[assignment] - Method51: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest51, testproto.grpc.dummy_pb2.ManyResponse51] # type: ignore[assignment] - Method52: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest52, testproto.grpc.dummy_pb2.ManyResponse52] # type: ignore[assignment] - Method53: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest53, testproto.grpc.dummy_pb2.ManyResponse53] # type: ignore[assignment] - Method54: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest54, testproto.grpc.dummy_pb2.ManyResponse54] # type: ignore[assignment] - Method55: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest55, testproto.grpc.dummy_pb2.ManyResponse55] # type: ignore[assignment] - Method56: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest56, testproto.grpc.dummy_pb2.ManyResponse56] # type: ignore[assignment] - Method57: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest57, testproto.grpc.dummy_pb2.ManyResponse57] # type: ignore[assignment] - Method58: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest58, testproto.grpc.dummy_pb2.ManyResponse58] # type: ignore[assignment] - Method59: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest59, testproto.grpc.dummy_pb2.ManyResponse59] # type: ignore[assignment] - Method60: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest60, testproto.grpc.dummy_pb2.ManyResponse60] # type: ignore[assignment] - Method61: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest61, testproto.grpc.dummy_pb2.ManyResponse61] # type: ignore[assignment] - Method62: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest62, testproto.grpc.dummy_pb2.ManyResponse62] # type: ignore[assignment] - Method63: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest63, testproto.grpc.dummy_pb2.ManyResponse63] # type: ignore[assignment] - Method64: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest64, testproto.grpc.dummy_pb2.ManyResponse64] # type: ignore[assignment] - Method65: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest65, testproto.grpc.dummy_pb2.ManyResponse65] # type: ignore[assignment] - Method66: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest66, testproto.grpc.dummy_pb2.ManyResponse66] # type: ignore[assignment] - Method67: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest67, testproto.grpc.dummy_pb2.ManyResponse67] # type: ignore[assignment] - Method68: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest68, testproto.grpc.dummy_pb2.ManyResponse68] # type: ignore[assignment] - Method69: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest69, testproto.grpc.dummy_pb2.ManyResponse69] # type: ignore[assignment] - Method70: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest70, testproto.grpc.dummy_pb2.ManyResponse70] # type: ignore[assignment] - Method71: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest71, testproto.grpc.dummy_pb2.ManyResponse71] # type: ignore[assignment] - Method72: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest72, testproto.grpc.dummy_pb2.ManyResponse72] # type: ignore[assignment] - Method73: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest73, testproto.grpc.dummy_pb2.ManyResponse73] # type: ignore[assignment] - Method74: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest74, testproto.grpc.dummy_pb2.ManyResponse74] # type: ignore[assignment] - Method75: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest75, testproto.grpc.dummy_pb2.ManyResponse75] # type: ignore[assignment] - Method76: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest76, testproto.grpc.dummy_pb2.ManyResponse76] # type: ignore[assignment] - Method77: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest77, testproto.grpc.dummy_pb2.ManyResponse77] # type: ignore[assignment] - Method78: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest78, testproto.grpc.dummy_pb2.ManyResponse78] # type: ignore[assignment] - Method79: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest79, testproto.grpc.dummy_pb2.ManyResponse79] # type: ignore[assignment] - Method80: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest80, testproto.grpc.dummy_pb2.ManyResponse80] # type: ignore[assignment] - Method81: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest81, testproto.grpc.dummy_pb2.ManyResponse81] # type: ignore[assignment] - Method82: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest82, testproto.grpc.dummy_pb2.ManyResponse82] # type: ignore[assignment] - Method83: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest83, testproto.grpc.dummy_pb2.ManyResponse83] # type: ignore[assignment] - Method84: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest84, testproto.grpc.dummy_pb2.ManyResponse84] # type: ignore[assignment] - Method85: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest85, testproto.grpc.dummy_pb2.ManyResponse85] # type: ignore[assignment] - Method86: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest86, testproto.grpc.dummy_pb2.ManyResponse86] # type: ignore[assignment] - Method87: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest87, testproto.grpc.dummy_pb2.ManyResponse87] # type: ignore[assignment] - Method88: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest88, testproto.grpc.dummy_pb2.ManyResponse88] # type: ignore[assignment] - Method89: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest89, testproto.grpc.dummy_pb2.ManyResponse89] # type: ignore[assignment] - Method90: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest90, testproto.grpc.dummy_pb2.ManyResponse90] # type: ignore[assignment] - Method91: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest91, testproto.grpc.dummy_pb2.ManyResponse91] # type: ignore[assignment] - Method92: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest92, testproto.grpc.dummy_pb2.ManyResponse92] # type: ignore[assignment] - Method93: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest93, testproto.grpc.dummy_pb2.ManyResponse93] # type: ignore[assignment] - Method94: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest94, testproto.grpc.dummy_pb2.ManyResponse94] # type: ignore[assignment] - Method95: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest95, testproto.grpc.dummy_pb2.ManyResponse95] # type: ignore[assignment] - Method96: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest96, testproto.grpc.dummy_pb2.ManyResponse96] # type: ignore[assignment] - Method97: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest97, testproto.grpc.dummy_pb2.ManyResponse97] # type: ignore[assignment] - Method98: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest98, testproto.grpc.dummy_pb2.ManyResponse98] # type: ignore[assignment] - Method99: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest99, testproto.grpc.dummy_pb2.ManyResponse99] # type: ignore[assignment] - -class ManyRPCsServiceServicer: - def Method1( - self, - request: testproto.grpc.dummy_pb2.ManyRequest1, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse1, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse1]]: ... - - def Method2( - self, - request: testproto.grpc.dummy_pb2.ManyRequest2, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse2, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse2]]: ... - - def Method3( - self, - request: testproto.grpc.dummy_pb2.ManyRequest3, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse3, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse3]]: ... - - def Method4( - self, - request: testproto.grpc.dummy_pb2.ManyRequest4, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse4, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse4]]: ... - - def Method5( - self, - request: testproto.grpc.dummy_pb2.ManyRequest5, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse5, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse5]]: ... - - def Method6( - self, - request: testproto.grpc.dummy_pb2.ManyRequest6, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse6, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse6]]: ... - - def Method7( - self, - request: testproto.grpc.dummy_pb2.ManyRequest7, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse7, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse7]]: ... - - def Method8( - self, - request: testproto.grpc.dummy_pb2.ManyRequest8, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse8, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse8]]: ... - - def Method9( - self, - request: testproto.grpc.dummy_pb2.ManyRequest9, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse9, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse9]]: ... - - def Method10( - self, - request: testproto.grpc.dummy_pb2.ManyRequest10, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse10, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse10]]: ... - - def Method11( - self, - request: testproto.grpc.dummy_pb2.ManyRequest11, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse11, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse11]]: ... - - def Method12( - self, - request: testproto.grpc.dummy_pb2.ManyRequest12, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse12, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse12]]: ... - - def Method13( - self, - request: testproto.grpc.dummy_pb2.ManyRequest13, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse13, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse13]]: ... - - def Method14( - self, - request: testproto.grpc.dummy_pb2.ManyRequest14, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse14, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse14]]: ... - - def Method15( - self, - request: testproto.grpc.dummy_pb2.ManyRequest15, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse15, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse15]]: ... - - def Method16( - self, - request: testproto.grpc.dummy_pb2.ManyRequest16, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse16, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse16]]: ... - - def Method17( - self, - request: testproto.grpc.dummy_pb2.ManyRequest17, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse17, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse17]]: ... - - def Method18( - self, - request: testproto.grpc.dummy_pb2.ManyRequest18, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse18, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse18]]: ... - - def Method19( - self, - request: testproto.grpc.dummy_pb2.ManyRequest19, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse19, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse19]]: ... - - def Method20( - self, - request: testproto.grpc.dummy_pb2.ManyRequest20, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse20, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse20]]: ... - - def Method21( - self, - request: testproto.grpc.dummy_pb2.ManyRequest21, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse21, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse21]]: ... - - def Method22( - self, - request: testproto.grpc.dummy_pb2.ManyRequest22, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse22, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse22]]: ... - - def Method23( - self, - request: testproto.grpc.dummy_pb2.ManyRequest23, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse23, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse23]]: ... - - def Method24( - self, - request: testproto.grpc.dummy_pb2.ManyRequest24, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse24, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse24]]: ... - - def Method25( - self, - request: testproto.grpc.dummy_pb2.ManyRequest25, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse25, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse25]]: ... - - def Method26( - self, - request: testproto.grpc.dummy_pb2.ManyRequest26, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse26, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse26]]: ... - - def Method27( - self, - request: testproto.grpc.dummy_pb2.ManyRequest27, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse27, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse27]]: ... - - def Method28( - self, - request: testproto.grpc.dummy_pb2.ManyRequest28, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse28, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse28]]: ... - - def Method29( - self, - request: testproto.grpc.dummy_pb2.ManyRequest29, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse29, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse29]]: ... - - def Method30( - self, - request: testproto.grpc.dummy_pb2.ManyRequest30, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse30, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse30]]: ... - - def Method31( - self, - request: testproto.grpc.dummy_pb2.ManyRequest31, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse31, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse31]]: ... - - def Method32( - self, - request: testproto.grpc.dummy_pb2.ManyRequest32, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse32, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse32]]: ... - - def Method33( - self, - request: testproto.grpc.dummy_pb2.ManyRequest33, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse33, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse33]]: ... - - def Method34( - self, - request: testproto.grpc.dummy_pb2.ManyRequest34, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse34, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse34]]: ... - - def Method35( - self, - request: testproto.grpc.dummy_pb2.ManyRequest35, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse35, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse35]]: ... - - def Method36( - self, - request: testproto.grpc.dummy_pb2.ManyRequest36, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse36, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse36]]: ... - - def Method37( - self, - request: testproto.grpc.dummy_pb2.ManyRequest37, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse37, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse37]]: ... - - def Method38( - self, - request: testproto.grpc.dummy_pb2.ManyRequest38, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse38, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse38]]: ... - - def Method39( - self, - request: testproto.grpc.dummy_pb2.ManyRequest39, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse39, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse39]]: ... - - def Method40( - self, - request: testproto.grpc.dummy_pb2.ManyRequest40, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse40, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse40]]: ... - - def Method41( - self, - request: testproto.grpc.dummy_pb2.ManyRequest41, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse41, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse41]]: ... - - def Method42( - self, - request: testproto.grpc.dummy_pb2.ManyRequest42, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse42, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse42]]: ... - - def Method43( - self, - request: testproto.grpc.dummy_pb2.ManyRequest43, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse43, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse43]]: ... - - def Method44( - self, - request: testproto.grpc.dummy_pb2.ManyRequest44, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse44, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse44]]: ... - - def Method45( - self, - request: testproto.grpc.dummy_pb2.ManyRequest45, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse45, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse45]]: ... - - def Method46( - self, - request: testproto.grpc.dummy_pb2.ManyRequest46, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse46, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse46]]: ... - - def Method47( - self, - request: testproto.grpc.dummy_pb2.ManyRequest47, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse47, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse47]]: ... - - def Method48( - self, - request: testproto.grpc.dummy_pb2.ManyRequest48, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse48, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse48]]: ... - - def Method49( - self, - request: testproto.grpc.dummy_pb2.ManyRequest49, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse49, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse49]]: ... - - def Method50( - self, - request: testproto.grpc.dummy_pb2.ManyRequest50, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse50, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse50]]: ... - - def Method51( - self, - request: testproto.grpc.dummy_pb2.ManyRequest51, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse51, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse51]]: ... - - def Method52( - self, - request: testproto.grpc.dummy_pb2.ManyRequest52, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse52, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse52]]: ... - - def Method53( - self, - request: testproto.grpc.dummy_pb2.ManyRequest53, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse53, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse53]]: ... - - def Method54( - self, - request: testproto.grpc.dummy_pb2.ManyRequest54, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse54, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse54]]: ... - - def Method55( - self, - request: testproto.grpc.dummy_pb2.ManyRequest55, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse55, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse55]]: ... - - def Method56( - self, - request: testproto.grpc.dummy_pb2.ManyRequest56, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse56, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse56]]: ... - - def Method57( - self, - request: testproto.grpc.dummy_pb2.ManyRequest57, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse57, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse57]]: ... - - def Method58( - self, - request: testproto.grpc.dummy_pb2.ManyRequest58, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse58, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse58]]: ... - - def Method59( - self, - request: testproto.grpc.dummy_pb2.ManyRequest59, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse59, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse59]]: ... - - def Method60( - self, - request: testproto.grpc.dummy_pb2.ManyRequest60, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse60, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse60]]: ... - - def Method61( - self, - request: testproto.grpc.dummy_pb2.ManyRequest61, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse61, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse61]]: ... - - def Method62( - self, - request: testproto.grpc.dummy_pb2.ManyRequest62, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse62, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse62]]: ... - - def Method63( - self, - request: testproto.grpc.dummy_pb2.ManyRequest63, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse63, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse63]]: ... - - def Method64( - self, - request: testproto.grpc.dummy_pb2.ManyRequest64, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse64, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse64]]: ... - - def Method65( - self, - request: testproto.grpc.dummy_pb2.ManyRequest65, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse65, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse65]]: ... - - def Method66( - self, - request: testproto.grpc.dummy_pb2.ManyRequest66, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse66, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse66]]: ... - - def Method67( - self, - request: testproto.grpc.dummy_pb2.ManyRequest67, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse67, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse67]]: ... - - def Method68( - self, - request: testproto.grpc.dummy_pb2.ManyRequest68, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse68, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse68]]: ... - - def Method69( - self, - request: testproto.grpc.dummy_pb2.ManyRequest69, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse69, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse69]]: ... - - def Method70( - self, - request: testproto.grpc.dummy_pb2.ManyRequest70, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse70, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse70]]: ... - - def Method71( - self, - request: testproto.grpc.dummy_pb2.ManyRequest71, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse71, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse71]]: ... - - def Method72( - self, - request: testproto.grpc.dummy_pb2.ManyRequest72, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse72, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse72]]: ... - - def Method73( - self, - request: testproto.grpc.dummy_pb2.ManyRequest73, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse73, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse73]]: ... - - def Method74( - self, - request: testproto.grpc.dummy_pb2.ManyRequest74, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse74, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse74]]: ... - - def Method75( - self, - request: testproto.grpc.dummy_pb2.ManyRequest75, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse75, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse75]]: ... - - def Method76( - self, - request: testproto.grpc.dummy_pb2.ManyRequest76, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse76, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse76]]: ... - - def Method77( - self, - request: testproto.grpc.dummy_pb2.ManyRequest77, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse77, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse77]]: ... - - def Method78( - self, - request: testproto.grpc.dummy_pb2.ManyRequest78, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse78, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse78]]: ... - - def Method79( - self, - request: testproto.grpc.dummy_pb2.ManyRequest79, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse79, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse79]]: ... - - def Method80( - self, - request: testproto.grpc.dummy_pb2.ManyRequest80, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse80, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse80]]: ... - - def Method81( - self, - request: testproto.grpc.dummy_pb2.ManyRequest81, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse81, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse81]]: ... - - def Method82( - self, - request: testproto.grpc.dummy_pb2.ManyRequest82, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse82, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse82]]: ... - - def Method83( - self, - request: testproto.grpc.dummy_pb2.ManyRequest83, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse83, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse83]]: ... - - def Method84( - self, - request: testproto.grpc.dummy_pb2.ManyRequest84, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse84, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse84]]: ... - - def Method85( - self, - request: testproto.grpc.dummy_pb2.ManyRequest85, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse85, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse85]]: ... - - def Method86( - self, - request: testproto.grpc.dummy_pb2.ManyRequest86, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse86, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse86]]: ... - - def Method87( - self, - request: testproto.grpc.dummy_pb2.ManyRequest87, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse87, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse87]]: ... - - def Method88( - self, - request: testproto.grpc.dummy_pb2.ManyRequest88, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse88, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse88]]: ... - - def Method89( - self, - request: testproto.grpc.dummy_pb2.ManyRequest89, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse89, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse89]]: ... - - def Method90( - self, - request: testproto.grpc.dummy_pb2.ManyRequest90, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse90, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse90]]: ... - - def Method91( - self, - request: testproto.grpc.dummy_pb2.ManyRequest91, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse91, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse91]]: ... - - def Method92( - self, - request: testproto.grpc.dummy_pb2.ManyRequest92, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse92, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse92]]: ... - - def Method93( - self, - request: testproto.grpc.dummy_pb2.ManyRequest93, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse93, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse93]]: ... - - def Method94( - self, - request: testproto.grpc.dummy_pb2.ManyRequest94, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse94, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse94]]: ... - - def Method95( - self, - request: testproto.grpc.dummy_pb2.ManyRequest95, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse95, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse95]]: ... - - def Method96( - self, - request: testproto.grpc.dummy_pb2.ManyRequest96, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse96, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse96]]: ... - - def Method97( - self, - request: testproto.grpc.dummy_pb2.ManyRequest97, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse97, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse97]]: ... - - def Method98( - self, - request: testproto.grpc.dummy_pb2.ManyRequest98, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse98, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse98]]: ... - - def Method99( - self, - request: testproto.grpc.dummy_pb2.ManyRequest99, - context: _ServicerContext, - ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse99, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse99]]: ... - -def add_ManyRPCsServiceServicer_to_server(servicer: ManyRPCsServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... - -class EmptyServiceStub: - @typing.overload - def __new__(cls, channel: grpc.Channel) -> EmptyServiceStub: ... - @typing.overload - def __new__(cls, channel: grpc.aio.Channel) -> EmptyServiceAsyncStub: ... - -@typing.type_check_only -class EmptyServiceAsyncStub(EmptyServiceStub): - def __init__(self, channel: grpc.aio.Channel) -> None: ... - -class EmptyServiceServicer: - ... - -def add_EmptyServiceServicer_to_server(servicer: EmptyServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/test/generated_concrete/testproto/grpc/import_pb2_grpc.pyi b/test/generated_concrete/testproto/grpc/import_pb2_grpc.pyi index 46f72e3c..c4710f1e 100644 --- a/test/generated_concrete/testproto/grpc/import_pb2_grpc.pyi +++ b/test/generated_concrete/testproto/grpc/import_pb2_grpc.pyi @@ -8,9 +8,15 @@ import collections.abc import google.protobuf.empty_pb2 import grpc import grpc.aio +import sys import testproto.test_pb2 import typing +if sys.version_info >= (3, 13): + import typing as typing_extensions +else: + import typing_extensions + _T = typing.TypeVar("_T") class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... @@ -20,30 +26,111 @@ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: GRPC_GENERATED_VERSION: str GRPC_VERSION: str +_SimpleServiceUnaryUnaryType = typing_extensions.TypeVar( + '_SimpleServiceUnaryUnaryType', + grpc.UnaryUnaryMultiCallable[ + google.protobuf.empty_pb2.Empty, + testproto.test_pb2.Simple1, + ], + grpc.aio.UnaryUnaryMultiCallable[ + google.protobuf.empty_pb2.Empty, + testproto.test_pb2.Simple1, + ], + default=grpc.UnaryUnaryMultiCallable[ + google.protobuf.empty_pb2.Empty, + testproto.test_pb2.Simple1, + ], +) + +_SimpleServiceUnaryStreamType = typing_extensions.TypeVar( + '_SimpleServiceUnaryStreamType', + grpc.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + default=grpc.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], +) + +_SimpleServiceNoCommentType = typing_extensions.TypeVar( + '_SimpleServiceNoCommentType', + grpc.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + default=grpc.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], +) -class SimpleServiceStub: +class SimpleServiceStub(typing.Generic[_SimpleServiceUnaryUnaryType, _SimpleServiceUnaryStreamType, _SimpleServiceNoCommentType]): """SimpleService""" @typing.overload - def __new__(cls, channel: grpc.Channel) -> SimpleServiceStub: ... + def __init__(self: SimpleServiceStub[ + grpc.UnaryUnaryMultiCallable[ + google.protobuf.empty_pb2.Empty, + testproto.test_pb2.Simple1, + ], + grpc.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + grpc.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + ], channel: grpc.Channel) -> None: ... + @typing.overload - def __new__(cls, channel: grpc.aio.Channel) -> SimpleServiceAsyncStub: ... - UnaryUnary: grpc.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, testproto.test_pb2.Simple1] + def __init__(self: SimpleServiceStub[ + grpc.aio.UnaryUnaryMultiCallable[ + google.protobuf.empty_pb2.Empty, + testproto.test_pb2.Simple1, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + ], channel: grpc.aio.Channel) -> None: ... + + UnaryUnary: _SimpleServiceUnaryUnaryType """UnaryUnary""" - UnaryStream: grpc.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] + + UnaryStream: _SimpleServiceUnaryStreamType """UnaryStream""" - NoComment: grpc.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] -@typing.type_check_only -class SimpleServiceAsyncStub(SimpleServiceStub): - """SimpleService""" + NoComment: _SimpleServiceNoCommentType - def __init__(self, channel: grpc.aio.Channel) -> None: ... - UnaryUnary: grpc.aio.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, testproto.test_pb2.Simple1] # type: ignore[assignment] - """UnaryUnary""" - UnaryStream: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] # type: ignore[assignment] - """UnaryStream""" - NoComment: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] # type: ignore[assignment] +SimpleServiceAsyncStub: typing_extensions.TypeAlias = SimpleServiceStub[ + grpc.aio.UnaryUnaryMultiCallable[ + google.protobuf.empty_pb2.Empty, + testproto.test_pb2.Simple1, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], + grpc.aio.UnaryUnaryMultiCallable[ + testproto.test_pb2.Simple1, + google.protobuf.empty_pb2.Empty, + ], +] class SimpleServiceServicer: """SimpleService""" diff --git a/test/generated-sync-only/testproto/grpc/dummy_pb2.py b/test/generated_sync_only/testproto/grpc/dummy_pb2.py similarity index 100% rename from test/generated-sync-only/testproto/grpc/dummy_pb2.py rename to test/generated_sync_only/testproto/grpc/dummy_pb2.py diff --git a/test/generated-sync-only/testproto/grpc/dummy_pb2.pyi b/test/generated_sync_only/testproto/grpc/dummy_pb2.pyi similarity index 100% rename from test/generated-sync-only/testproto/grpc/dummy_pb2.pyi rename to test/generated_sync_only/testproto/grpc/dummy_pb2.pyi diff --git a/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.py b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.py similarity index 100% rename from test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.py rename to test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.py index eef0f7f6..1e06e396 100644 --- a/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.py +++ b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.py @@ -1,8 +1,8 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" +import grpc import warnings -import grpc from testproto.grpc import dummy_pb2 as testproto_dot_grpc_dot_dummy__pb2 GRPC_GENERATED_VERSION = '1.76.0' diff --git a/test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi similarity index 100% rename from test/generated-sync-only/testproto/grpc/dummy_pb2_grpc.pyi rename to test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi diff --git a/test/generated-sync-only/testproto/grpc/import_pb2.py b/test/generated_sync_only/testproto/grpc/import_pb2.py similarity index 100% rename from test/generated-sync-only/testproto/grpc/import_pb2.py rename to test/generated_sync_only/testproto/grpc/import_pb2.py diff --git a/test/generated-sync-only/testproto/grpc/import_pb2.pyi b/test/generated_sync_only/testproto/grpc/import_pb2.pyi similarity index 100% rename from test/generated-sync-only/testproto/grpc/import_pb2.pyi rename to test/generated_sync_only/testproto/grpc/import_pb2.pyi diff --git a/test/generated-sync-only/testproto/grpc/import_pb2_grpc.py b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.py similarity index 100% rename from test/generated-sync-only/testproto/grpc/import_pb2_grpc.py rename to test/generated_sync_only/testproto/grpc/import_pb2_grpc.py index 0a09fd20..2c1755d6 100644 --- a/test/generated-sync-only/testproto/grpc/import_pb2_grpc.py +++ b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.py @@ -1,8 +1,8 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" +import grpc import warnings -import grpc from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from testproto import test_pb2 as testproto_dot_test__pb2 diff --git a/test/generated-sync-only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi similarity index 100% rename from test/generated-sync-only/testproto/grpc/import_pb2_grpc.pyi rename to test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi diff --git a/test/sync_only/test_sync_only.py b/test/sync_only/test_sync_only.py new file mode 100644 index 00000000..3970c745 --- /dev/null +++ b/test/sync_only/test_sync_only.py @@ -0,0 +1,25 @@ +""" +Type-checking test for sync_only GRPC stubs. + +This module is run through mypy to validate that stubs generated with the +only_sync flag have the correct types: +- Regular (non-generic) Stub class that only accepts grpc.Channel +- Servicer methods use Iterator for client streaming (not _MaybeAsyncIterator) +- add_XXXServicer_to_server accepts grpc.Server +""" + +import grpc +from testproto.grpc import dummy_pb2_grpc, dummy_pb2 + + +class AsyncOnlyServicer(dummy_pb2_grpc.DummyServiceServicer): + def UnaryUnary( + self, + request: dummy_pb2.DummyRequest, + context: grpc.ServicerContext, + ) -> dummy_pb2.DummyReply: + return dummy_pb2.DummyReply(value=request.value[::-1]) + + +stub = dummy_pb2_grpc.DummyServiceStub(channel=grpc.insecure_channel("localhost:50051")) +stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) diff --git a/test/test_async_only.py b/test/test_async_only.py deleted file mode 100644 index 3d0ffdf6..00000000 --- a/test/test_async_only.py +++ /dev/null @@ -1,18 +0,0 @@ -""" -Type-checking test for async_only GRPC stubs. - -This module is run through mypy to validate that stubs generated with the -only_async flag have the correct types: -- Regular (non-generic) Stub class that only accepts grpc.aio.Channel -- No AsyncStub type alias (the stub itself is async-only) -- Servicer methods use AsyncIterator for client streaming (not _MaybeAsyncIterator) -- add_XXXServicer_to_server accepts grpc.aio.Server -""" - -from testproto.grpc.dummy_pb2_grpc import DummyServiceServicer - - -class AsyncOnlyServicer(DummyServiceServicer): - """Test servicer for async_only stubs - intentionally incomplete.""" - - pass diff --git a/test/test_sync_only.py b/test/test_sync_only.py deleted file mode 100644 index 5fc10839..00000000 --- a/test/test_sync_only.py +++ /dev/null @@ -1,17 +0,0 @@ -""" -Type-checking test for sync_only GRPC stubs. - -This module is run through mypy to validate that stubs generated with the -only_sync flag have the correct types: -- Regular (non-generic) Stub class that only accepts grpc.Channel -- Servicer methods use Iterator for client streaming (not _MaybeAsyncIterator) -- add_XXXServicer_to_server accepts grpc.Server -""" - -from testproto.grpc.dummy_pb2_grpc import DummyServiceServicer - - -class SyncOnlyServicer(DummyServiceServicer): - """Test servicer for sync_only stubs - intentionally incomplete.""" - - pass diff --git a/uv.lock b/uv.lock new file mode 100644 index 00000000..a5bc5147 --- /dev/null +++ b/uv.lock @@ -0,0 +1,3 @@ +version = 1 +revision = 3 +requires-python = ">=3.14" From d6214ee67bd5210567523812f1e85a487be4b7d3 Mon Sep 17 00:00:00 2001 From: Aidan Jensen Date: Wed, 26 Nov 2025 19:06:04 -0800 Subject: [PATCH 06/23] add constructor typing Signed-off-by: Aidan Jensen --- test/async_only/test_async_only.py | 3 ++- test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi | 4 ++++ .../generated_async_only/testproto/grpc/import_pb2_grpc.pyi | 2 ++ test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi | 4 ++++ test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi | 2 ++ test/sync_only/test_sync_only.py | 6 ++++-- 6 files changed, 18 insertions(+), 3 deletions(-) diff --git a/test/async_only/test_async_only.py b/test/async_only/test_async_only.py index 57e45674..f86e9f30 100644 --- a/test/async_only/test_async_only.py +++ b/test/async_only/test_async_only.py @@ -24,6 +24,7 @@ async def UnaryUnary( return dummy_pb2.DummyReply(value=request.value[::-1]) -async def main(): +async def noop() -> None: + """Don't actually run anything; this is just for type-checking.""" stub = dummy_pb2_grpc.DummyServiceStub(channel=grpc.aio.insecure_channel("localhost:50051")) await stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi index 218366a7..02a1c6a8 100644 --- a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi @@ -42,6 +42,8 @@ _DummyServiceStreamStreamType: typing_extensions.TypeAlias = grpc.aio.StreamStre class DummyServiceStub: """DummyService""" + def __init__(self, channel: grpc.aio.Channel) -> None: ... + UnaryUnary: _DummyServiceUnaryUnaryType """UnaryUnary""" @@ -103,6 +105,8 @@ _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType: typing_extensions.Ty class DeprecatedServiceStub: """Marking the service as deprecated""" + def __init__(self, channel: grpc.aio.Channel) -> None: ... + DeprecatedMethod: _DeprecatedServiceDeprecatedMethodType """DeprecatedMethod""" diff --git a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi index 5bccf22d..dcc2f2ef 100644 --- a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi @@ -34,6 +34,8 @@ _SimpleServiceNoCommentType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMu class SimpleServiceStub: """SimpleService""" + def __init__(self, channel: grpc.aio.Channel) -> None: ... + UnaryUnary: _SimpleServiceUnaryUnaryType """UnaryUnary""" diff --git a/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi index bb0a6430..3af5ac96 100644 --- a/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi +++ b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi @@ -42,6 +42,8 @@ _DummyServiceStreamStreamType: typing_extensions.TypeAlias = grpc.StreamStreamMu class DummyServiceStub: """DummyService""" + def __init__(self, channel: grpc.Channel) -> None: ... + UnaryUnary: _DummyServiceUnaryUnaryType """UnaryUnary""" @@ -103,6 +105,8 @@ _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType: typing_extensions.Ty class DeprecatedServiceStub: """Marking the service as deprecated""" + def __init__(self, channel: grpc.Channel) -> None: ... + DeprecatedMethod: _DeprecatedServiceDeprecatedMethodType """DeprecatedMethod""" diff --git a/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi index 4c123e06..f0fe54df 100644 --- a/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi +++ b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi @@ -34,6 +34,8 @@ _SimpleServiceNoCommentType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiC class SimpleServiceStub: """SimpleService""" + def __init__(self, channel: grpc.Channel) -> None: ... + UnaryUnary: _SimpleServiceUnaryUnaryType """UnaryUnary""" diff --git a/test/sync_only/test_sync_only.py b/test/sync_only/test_sync_only.py index 3970c745..2578d639 100644 --- a/test/sync_only/test_sync_only.py +++ b/test/sync_only/test_sync_only.py @@ -21,5 +21,7 @@ def UnaryUnary( return dummy_pb2.DummyReply(value=request.value[::-1]) -stub = dummy_pb2_grpc.DummyServiceStub(channel=grpc.insecure_channel("localhost:50051")) -stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) +def noop() -> None: + """Don't actually run anything; this is just for type-checking.""" + stub = dummy_pb2_grpc.DummyServiceStub(channel=grpc.insecure_channel("localhost:50051")) + stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) From c944a6b9252073bdd2a31d472b2e5df0e9bbebe7 Mon Sep 17 00:00:00 2001 From: Alexey Date: Thu, 27 Nov 2025 11:32:58 +0000 Subject: [PATCH 07/23] run black --- .gitignore | 4 ++++ test/async_only/test_async_only.py | 3 ++- test/sync_only/test_sync_only.py | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 61d2a647..829efc43 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,10 @@ __pycache__/ !/test/generated/**/__init__.py /test/generated_concrete/**/*.py !/test/generated_concrete/**/__init__.py +/test/generated_async_only/**/*.py +!/test/generated_async_only/**/__init__.py +/test/generated_sync_only/**/*.py +!/test/generated_sync_only/**/__init__.py .pytest_cache /build/ /dist/ diff --git a/test/async_only/test_async_only.py b/test/async_only/test_async_only.py index f86e9f30..5dc5b22c 100644 --- a/test/async_only/test_async_only.py +++ b/test/async_only/test_async_only.py @@ -10,8 +10,9 @@ """ from typing import Awaitable + import grpc.aio -from testproto.grpc import dummy_pb2_grpc, dummy_pb2 +from testproto.grpc import dummy_pb2, dummy_pb2_grpc class AsyncOnlyServicer(dummy_pb2_grpc.DummyServiceServicer): diff --git a/test/sync_only/test_sync_only.py b/test/sync_only/test_sync_only.py index 2578d639..99597587 100644 --- a/test/sync_only/test_sync_only.py +++ b/test/sync_only/test_sync_only.py @@ -9,7 +9,7 @@ """ import grpc -from testproto.grpc import dummy_pb2_grpc, dummy_pb2 +from testproto.grpc import dummy_pb2, dummy_pb2_grpc class AsyncOnlyServicer(dummy_pb2_grpc.DummyServiceServicer): From 828c4d7f4855d5b667b316a4bf33a7a33061582b Mon Sep 17 00:00:00 2001 From: Alexey Date: Thu, 27 Nov 2025 12:06:12 +0000 Subject: [PATCH 08/23] isort: skip generated grpc files --- pyproject.toml | 2 +- .../testproto/grpc/dummy_pb2.py | 54 --- .../testproto/grpc/dummy_pb2_grpc.py | 353 ------------------ .../testproto/grpc/import_pb2.py | 38 -- .../testproto/grpc/import_pb2_grpc.py | 189 ---------- .../testproto/grpc/dummy_pb2.py | 54 --- .../testproto/grpc/dummy_pb2_grpc.py | 353 ------------------ .../testproto/grpc/import_pb2.py | 38 -- .../testproto/grpc/import_pb2_grpc.py | 189 ---------- 9 files changed, 1 insertion(+), 1269 deletions(-) delete mode 100644 test/generated_async_only/testproto/grpc/dummy_pb2.py delete mode 100644 test/generated_async_only/testproto/grpc/dummy_pb2_grpc.py delete mode 100644 test/generated_async_only/testproto/grpc/import_pb2.py delete mode 100644 test/generated_async_only/testproto/grpc/import_pb2_grpc.py delete mode 100644 test/generated_sync_only/testproto/grpc/dummy_pb2.py delete mode 100644 test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.py delete mode 100644 test/generated_sync_only/testproto/grpc/import_pb2.py delete mode 100644 test/generated_sync_only/testproto/grpc/import_pb2_grpc.py diff --git a/pyproject.toml b/pyproject.toml index 6bf95b03..a15fcfac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ line-length = 10000 [tool.isort] profile = "black" skip_gitignore = true -extend_skip_glob = ["*_pb2.py"] +extend_skip_glob = ["*_pb2.py", "*_pb2_grpc.py"] [tool.mypy] strict = true diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2.py b/test/generated_async_only/testproto/grpc/dummy_pb2.py deleted file mode 100644 index 995862f4..00000000 --- a/test/generated_async_only/testproto/grpc/dummy_pb2.py +++ /dev/null @@ -1,54 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/grpc/dummy.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/grpc/dummy.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1atestproto/grpc/dummy.proto\x12\x05\x64ummy\"\x1d\n\x0c\x44ummyRequest\x12\r\n\x05value\x18\x01 \x01(\t\"\x1b\n\nDummyReply\x12\r\n\x05value\x18\x01 \x01(\t\".\n\x11\x44\x65precatedRequest\x12\x15\n\told_field\x18\x01 \x01(\tB\x02\x18\x01:\x02\x18\x01\x32\xfa\x01\n\x0c\x44ummyService\x12\x36\n\nUnaryUnary\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00\x12\x39\n\x0bUnaryStream\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00\x30\x01\x12\x39\n\x0bStreamUnary\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00(\x01\x12<\n\x0cStreamStream\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00(\x01\x30\x01\x32\xb3\x01\n\x11\x44\x65precatedService\x12\x44\n\x10\x44\x65precatedMethod\x12\x18.dummy.DeprecatedRequest\x1a\x11.dummy.DummyReply\"\x03\x88\x02\x01\x12S\n$DeprecatedMethodNotDeprecatedRequest\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x03\x88\x02\x01\x1a\x03\x88\x02\x01\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.grpc.dummy_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_DEPRECATEDREQUEST'].fields_by_name['old_field']._loaded_options = None - _globals['_DEPRECATEDREQUEST'].fields_by_name['old_field']._serialized_options = b'\030\001' - _globals['_DEPRECATEDREQUEST']._loaded_options = None - _globals['_DEPRECATEDREQUEST']._serialized_options = b'\030\001' - _globals['_DEPRECATEDSERVICE']._loaded_options = None - _globals['_DEPRECATEDSERVICE']._serialized_options = b'\210\002\001' - _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethod']._loaded_options = None - _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethod']._serialized_options = b'\210\002\001' - _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethodNotDeprecatedRequest']._loaded_options = None - _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethodNotDeprecatedRequest']._serialized_options = b'\210\002\001' - _globals['_DUMMYREQUEST']._serialized_start=37 - _globals['_DUMMYREQUEST']._serialized_end=66 - _globals['_DUMMYREPLY']._serialized_start=68 - _globals['_DUMMYREPLY']._serialized_end=95 - _globals['_DEPRECATEDREQUEST']._serialized_start=97 - _globals['_DEPRECATEDREQUEST']._serialized_end=143 - _globals['_DUMMYSERVICE']._serialized_start=146 - _globals['_DUMMYSERVICE']._serialized_end=396 - _globals['_DEPRECATEDSERVICE']._serialized_start=399 - _globals['_DEPRECATEDSERVICE']._serialized_end=578 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.py b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.py deleted file mode 100644 index 1e06e396..00000000 --- a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.py +++ /dev/null @@ -1,353 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc -import warnings - -from testproto.grpc import dummy_pb2 as testproto_dot_grpc_dot_dummy__pb2 - -GRPC_GENERATED_VERSION = '1.76.0' -GRPC_VERSION = grpc.__version__ -_version_not_supported = False - -try: - from grpc._utilities import first_version_is_lower - _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) -except ImportError: - _version_not_supported = True - -if _version_not_supported: - raise RuntimeError( - f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in testproto/grpc/dummy_pb2_grpc.py depends on' - + f' grpcio>={GRPC_GENERATED_VERSION}.' - + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' - + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' - ) - - -class DummyServiceStub(object): - """DummyService - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.UnaryUnary = channel.unary_unary( - '/dummy.DummyService/UnaryUnary', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - self.UnaryStream = channel.unary_stream( - '/dummy.DummyService/UnaryStream', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - self.StreamUnary = channel.stream_unary( - '/dummy.DummyService/StreamUnary', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - self.StreamStream = channel.stream_stream( - '/dummy.DummyService/StreamStream', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - - -class DummyServiceServicer(object): - """DummyService - """ - - def UnaryUnary(self, request, context): - """UnaryUnary - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UnaryStream(self, request, context): - """UnaryStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def StreamUnary(self, request_iterator, context): - """StreamUnary - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def StreamStream(self, request_iterator, context): - """StreamStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_DummyServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'UnaryUnary': grpc.unary_unary_rpc_method_handler( - servicer.UnaryUnary, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - 'UnaryStream': grpc.unary_stream_rpc_method_handler( - servicer.UnaryStream, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - 'StreamUnary': grpc.stream_unary_rpc_method_handler( - servicer.StreamUnary, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - 'StreamStream': grpc.stream_stream_rpc_method_handler( - servicer.StreamStream, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'dummy.DummyService', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('dummy.DummyService', rpc_method_handlers) - - - # This class is part of an EXPERIMENTAL API. -class DummyService(object): - """DummyService - """ - - @staticmethod - def UnaryUnary(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/dummy.DummyService/UnaryUnary', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def UnaryStream(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_stream( - request, - target, - '/dummy.DummyService/UnaryStream', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def StreamUnary(request_iterator, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.stream_unary( - request_iterator, - target, - '/dummy.DummyService/StreamUnary', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def StreamStream(request_iterator, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.stream_stream( - request_iterator, - target, - '/dummy.DummyService/StreamStream', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - -class DeprecatedServiceStub(object): - """Marking the service as deprecated - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.DeprecatedMethod = channel.unary_unary( - '/dummy.DeprecatedService/DeprecatedMethod', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - self.DeprecatedMethodNotDeprecatedRequest = channel.unary_unary( - '/dummy.DeprecatedService/DeprecatedMethodNotDeprecatedRequest', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - - -class DeprecatedServiceServicer(object): - """Marking the service as deprecated - """ - - def DeprecatedMethod(self, request, context): - """DeprecatedMethod - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def DeprecatedMethodNotDeprecatedRequest(self, request, context): - """DeprecatedMethodNotDeprecatedRequest - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_DeprecatedServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'DeprecatedMethod': grpc.unary_unary_rpc_method_handler( - servicer.DeprecatedMethod, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - 'DeprecatedMethodNotDeprecatedRequest': grpc.unary_unary_rpc_method_handler( - servicer.DeprecatedMethodNotDeprecatedRequest, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'dummy.DeprecatedService', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('dummy.DeprecatedService', rpc_method_handlers) - - - # This class is part of an EXPERIMENTAL API. -class DeprecatedService(object): - """Marking the service as deprecated - """ - - @staticmethod - def DeprecatedMethod(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/dummy.DeprecatedService/DeprecatedMethod', - testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def DeprecatedMethodNotDeprecatedRequest(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/dummy.DeprecatedService/DeprecatedMethodNotDeprecatedRequest', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) diff --git a/test/generated_async_only/testproto/grpc/import_pb2.py b/test/generated_async_only/testproto/grpc/import_pb2.py deleted file mode 100644 index 61cc5689..00000000 --- a/test/generated_async_only/testproto/grpc/import_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/grpc/import.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/grpc/import.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test_pb2 as testproto_dot_test__pb2 -from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/grpc/import.proto\x12\ttest.grpc\x1a\x14testproto/test.proto\x1a\x1bgoogle/protobuf/empty.proto2\xb4\x01\n\rSimpleService\x12\x35\n\nUnaryUnary\x12\x16.google.protobuf.Empty\x1a\r.test.Simple1\"\x00\x12\x36\n\x0bUnaryStream\x12\r.test.Simple1\x1a\x16.google.protobuf.Empty\"\x00\x12\x34\n\tNoComment\x12\r.test.Simple1\x1a\x16.google.protobuf.Empty\"\x00') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.grpc.import_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_SIMPLESERVICE']._serialized_start=94 - _globals['_SIMPLESERVICE']._serialized_end=274 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated_async_only/testproto/grpc/import_pb2_grpc.py b/test/generated_async_only/testproto/grpc/import_pb2_grpc.py deleted file mode 100644 index 2c1755d6..00000000 --- a/test/generated_async_only/testproto/grpc/import_pb2_grpc.py +++ /dev/null @@ -1,189 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc -import warnings - -from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -from testproto import test_pb2 as testproto_dot_test__pb2 - -GRPC_GENERATED_VERSION = '1.76.0' -GRPC_VERSION = grpc.__version__ -_version_not_supported = False - -try: - from grpc._utilities import first_version_is_lower - _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) -except ImportError: - _version_not_supported = True - -if _version_not_supported: - raise RuntimeError( - f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in testproto/grpc/import_pb2_grpc.py depends on' - + f' grpcio>={GRPC_GENERATED_VERSION}.' - + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' - + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' - ) - - -class SimpleServiceStub(object): - """SimpleService - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.UnaryUnary = channel.unary_unary( - '/test.grpc.SimpleService/UnaryUnary', - request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - response_deserializer=testproto_dot_test__pb2.Simple1.FromString, - _registered_method=True) - self.UnaryStream = channel.unary_unary( - '/test.grpc.SimpleService/UnaryStream', - request_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - _registered_method=True) - self.NoComment = channel.unary_unary( - '/test.grpc.SimpleService/NoComment', - request_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - _registered_method=True) - - -class SimpleServiceServicer(object): - """SimpleService - """ - - def UnaryUnary(self, request, context): - """UnaryUnary - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UnaryStream(self, request, context): - """UnaryStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def NoComment(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_SimpleServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'UnaryUnary': grpc.unary_unary_rpc_method_handler( - servicer.UnaryUnary, - request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - response_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, - ), - 'UnaryStream': grpc.unary_unary_rpc_method_handler( - servicer.UnaryStream, - request_deserializer=testproto_dot_test__pb2.Simple1.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'NoComment': grpc.unary_unary_rpc_method_handler( - servicer.NoComment, - request_deserializer=testproto_dot_test__pb2.Simple1.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'test.grpc.SimpleService', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('test.grpc.SimpleService', rpc_method_handlers) - - - # This class is part of an EXPERIMENTAL API. -class SimpleService(object): - """SimpleService - """ - - @staticmethod - def UnaryUnary(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/test.grpc.SimpleService/UnaryUnary', - google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - testproto_dot_test__pb2.Simple1.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def UnaryStream(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/test.grpc.SimpleService/UnaryStream', - testproto_dot_test__pb2.Simple1.SerializeToString, - google_dot_protobuf_dot_empty__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def NoComment(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/test.grpc.SimpleService/NoComment', - testproto_dot_test__pb2.Simple1.SerializeToString, - google_dot_protobuf_dot_empty__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) diff --git a/test/generated_sync_only/testproto/grpc/dummy_pb2.py b/test/generated_sync_only/testproto/grpc/dummy_pb2.py deleted file mode 100644 index 995862f4..00000000 --- a/test/generated_sync_only/testproto/grpc/dummy_pb2.py +++ /dev/null @@ -1,54 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/grpc/dummy.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/grpc/dummy.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1atestproto/grpc/dummy.proto\x12\x05\x64ummy\"\x1d\n\x0c\x44ummyRequest\x12\r\n\x05value\x18\x01 \x01(\t\"\x1b\n\nDummyReply\x12\r\n\x05value\x18\x01 \x01(\t\".\n\x11\x44\x65precatedRequest\x12\x15\n\told_field\x18\x01 \x01(\tB\x02\x18\x01:\x02\x18\x01\x32\xfa\x01\n\x0c\x44ummyService\x12\x36\n\nUnaryUnary\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00\x12\x39\n\x0bUnaryStream\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00\x30\x01\x12\x39\n\x0bStreamUnary\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00(\x01\x12<\n\x0cStreamStream\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x00(\x01\x30\x01\x32\xb3\x01\n\x11\x44\x65precatedService\x12\x44\n\x10\x44\x65precatedMethod\x12\x18.dummy.DeprecatedRequest\x1a\x11.dummy.DummyReply\"\x03\x88\x02\x01\x12S\n$DeprecatedMethodNotDeprecatedRequest\x12\x13.dummy.DummyRequest\x1a\x11.dummy.DummyReply\"\x03\x88\x02\x01\x1a\x03\x88\x02\x01\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.grpc.dummy_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_DEPRECATEDREQUEST'].fields_by_name['old_field']._loaded_options = None - _globals['_DEPRECATEDREQUEST'].fields_by_name['old_field']._serialized_options = b'\030\001' - _globals['_DEPRECATEDREQUEST']._loaded_options = None - _globals['_DEPRECATEDREQUEST']._serialized_options = b'\030\001' - _globals['_DEPRECATEDSERVICE']._loaded_options = None - _globals['_DEPRECATEDSERVICE']._serialized_options = b'\210\002\001' - _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethod']._loaded_options = None - _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethod']._serialized_options = b'\210\002\001' - _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethodNotDeprecatedRequest']._loaded_options = None - _globals['_DEPRECATEDSERVICE'].methods_by_name['DeprecatedMethodNotDeprecatedRequest']._serialized_options = b'\210\002\001' - _globals['_DUMMYREQUEST']._serialized_start=37 - _globals['_DUMMYREQUEST']._serialized_end=66 - _globals['_DUMMYREPLY']._serialized_start=68 - _globals['_DUMMYREPLY']._serialized_end=95 - _globals['_DEPRECATEDREQUEST']._serialized_start=97 - _globals['_DEPRECATEDREQUEST']._serialized_end=143 - _globals['_DUMMYSERVICE']._serialized_start=146 - _globals['_DUMMYSERVICE']._serialized_end=396 - _globals['_DEPRECATEDSERVICE']._serialized_start=399 - _globals['_DEPRECATEDSERVICE']._serialized_end=578 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.py b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.py deleted file mode 100644 index 1e06e396..00000000 --- a/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.py +++ /dev/null @@ -1,353 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc -import warnings - -from testproto.grpc import dummy_pb2 as testproto_dot_grpc_dot_dummy__pb2 - -GRPC_GENERATED_VERSION = '1.76.0' -GRPC_VERSION = grpc.__version__ -_version_not_supported = False - -try: - from grpc._utilities import first_version_is_lower - _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) -except ImportError: - _version_not_supported = True - -if _version_not_supported: - raise RuntimeError( - f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in testproto/grpc/dummy_pb2_grpc.py depends on' - + f' grpcio>={GRPC_GENERATED_VERSION}.' - + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' - + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' - ) - - -class DummyServiceStub(object): - """DummyService - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.UnaryUnary = channel.unary_unary( - '/dummy.DummyService/UnaryUnary', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - self.UnaryStream = channel.unary_stream( - '/dummy.DummyService/UnaryStream', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - self.StreamUnary = channel.stream_unary( - '/dummy.DummyService/StreamUnary', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - self.StreamStream = channel.stream_stream( - '/dummy.DummyService/StreamStream', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - - -class DummyServiceServicer(object): - """DummyService - """ - - def UnaryUnary(self, request, context): - """UnaryUnary - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UnaryStream(self, request, context): - """UnaryStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def StreamUnary(self, request_iterator, context): - """StreamUnary - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def StreamStream(self, request_iterator, context): - """StreamStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_DummyServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'UnaryUnary': grpc.unary_unary_rpc_method_handler( - servicer.UnaryUnary, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - 'UnaryStream': grpc.unary_stream_rpc_method_handler( - servicer.UnaryStream, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - 'StreamUnary': grpc.stream_unary_rpc_method_handler( - servicer.StreamUnary, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - 'StreamStream': grpc.stream_stream_rpc_method_handler( - servicer.StreamStream, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'dummy.DummyService', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('dummy.DummyService', rpc_method_handlers) - - - # This class is part of an EXPERIMENTAL API. -class DummyService(object): - """DummyService - """ - - @staticmethod - def UnaryUnary(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/dummy.DummyService/UnaryUnary', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def UnaryStream(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_stream( - request, - target, - '/dummy.DummyService/UnaryStream', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def StreamUnary(request_iterator, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.stream_unary( - request_iterator, - target, - '/dummy.DummyService/StreamUnary', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def StreamStream(request_iterator, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.stream_stream( - request_iterator, - target, - '/dummy.DummyService/StreamStream', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - -class DeprecatedServiceStub(object): - """Marking the service as deprecated - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.DeprecatedMethod = channel.unary_unary( - '/dummy.DeprecatedService/DeprecatedMethod', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - self.DeprecatedMethodNotDeprecatedRequest = channel.unary_unary( - '/dummy.DeprecatedService/DeprecatedMethodNotDeprecatedRequest', - request_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - response_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - _registered_method=True) - - -class DeprecatedServiceServicer(object): - """Marking the service as deprecated - """ - - def DeprecatedMethod(self, request, context): - """DeprecatedMethod - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def DeprecatedMethodNotDeprecatedRequest(self, request, context): - """DeprecatedMethodNotDeprecatedRequest - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_DeprecatedServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'DeprecatedMethod': grpc.unary_unary_rpc_method_handler( - servicer.DeprecatedMethod, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - 'DeprecatedMethodNotDeprecatedRequest': grpc.unary_unary_rpc_method_handler( - servicer.DeprecatedMethodNotDeprecatedRequest, - request_deserializer=testproto_dot_grpc_dot_dummy__pb2.DummyRequest.FromString, - response_serializer=testproto_dot_grpc_dot_dummy__pb2.DummyReply.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'dummy.DeprecatedService', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('dummy.DeprecatedService', rpc_method_handlers) - - - # This class is part of an EXPERIMENTAL API. -class DeprecatedService(object): - """Marking the service as deprecated - """ - - @staticmethod - def DeprecatedMethod(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/dummy.DeprecatedService/DeprecatedMethod', - testproto_dot_grpc_dot_dummy__pb2.DeprecatedRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def DeprecatedMethodNotDeprecatedRequest(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/dummy.DeprecatedService/DeprecatedMethodNotDeprecatedRequest', - testproto_dot_grpc_dot_dummy__pb2.DummyRequest.SerializeToString, - testproto_dot_grpc_dot_dummy__pb2.DummyReply.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) diff --git a/test/generated_sync_only/testproto/grpc/import_pb2.py b/test/generated_sync_only/testproto/grpc/import_pb2.py deleted file mode 100644 index 61cc5689..00000000 --- a/test/generated_sync_only/testproto/grpc/import_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: testproto/grpc/import.proto -# Protobuf Python Version: 6.32.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 32, - 1, - '', - 'testproto/grpc/import.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from testproto import test_pb2 as testproto_dot_test__pb2 -from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btestproto/grpc/import.proto\x12\ttest.grpc\x1a\x14testproto/test.proto\x1a\x1bgoogle/protobuf/empty.proto2\xb4\x01\n\rSimpleService\x12\x35\n\nUnaryUnary\x12\x16.google.protobuf.Empty\x1a\r.test.Simple1\"\x00\x12\x36\n\x0bUnaryStream\x12\r.test.Simple1\x1a\x16.google.protobuf.Empty\"\x00\x12\x34\n\tNoComment\x12\r.test.Simple1\x1a\x16.google.protobuf.Empty\"\x00') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'testproto.grpc.import_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_SIMPLESERVICE']._serialized_start=94 - _globals['_SIMPLESERVICE']._serialized_end=274 -# @@protoc_insertion_point(module_scope) diff --git a/test/generated_sync_only/testproto/grpc/import_pb2_grpc.py b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.py deleted file mode 100644 index 2c1755d6..00000000 --- a/test/generated_sync_only/testproto/grpc/import_pb2_grpc.py +++ /dev/null @@ -1,189 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc -import warnings - -from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -from testproto import test_pb2 as testproto_dot_test__pb2 - -GRPC_GENERATED_VERSION = '1.76.0' -GRPC_VERSION = grpc.__version__ -_version_not_supported = False - -try: - from grpc._utilities import first_version_is_lower - _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) -except ImportError: - _version_not_supported = True - -if _version_not_supported: - raise RuntimeError( - f'The grpc package installed is at version {GRPC_VERSION},' - + ' but the generated code in testproto/grpc/import_pb2_grpc.py depends on' - + f' grpcio>={GRPC_GENERATED_VERSION}.' - + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' - + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' - ) - - -class SimpleServiceStub(object): - """SimpleService - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.UnaryUnary = channel.unary_unary( - '/test.grpc.SimpleService/UnaryUnary', - request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - response_deserializer=testproto_dot_test__pb2.Simple1.FromString, - _registered_method=True) - self.UnaryStream = channel.unary_unary( - '/test.grpc.SimpleService/UnaryStream', - request_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - _registered_method=True) - self.NoComment = channel.unary_unary( - '/test.grpc.SimpleService/NoComment', - request_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, - response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - _registered_method=True) - - -class SimpleServiceServicer(object): - """SimpleService - """ - - def UnaryUnary(self, request, context): - """UnaryUnary - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def UnaryStream(self, request, context): - """UnaryStream - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def NoComment(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_SimpleServiceServicer_to_server(servicer, server): - rpc_method_handlers = { - 'UnaryUnary': grpc.unary_unary_rpc_method_handler( - servicer.UnaryUnary, - request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, - response_serializer=testproto_dot_test__pb2.Simple1.SerializeToString, - ), - 'UnaryStream': grpc.unary_unary_rpc_method_handler( - servicer.UnaryStream, - request_deserializer=testproto_dot_test__pb2.Simple1.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - 'NoComment': grpc.unary_unary_rpc_method_handler( - servicer.NoComment, - request_deserializer=testproto_dot_test__pb2.Simple1.FromString, - response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'test.grpc.SimpleService', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('test.grpc.SimpleService', rpc_method_handlers) - - - # This class is part of an EXPERIMENTAL API. -class SimpleService(object): - """SimpleService - """ - - @staticmethod - def UnaryUnary(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/test.grpc.SimpleService/UnaryUnary', - google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, - testproto_dot_test__pb2.Simple1.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def UnaryStream(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/test.grpc.SimpleService/UnaryStream', - testproto_dot_test__pb2.Simple1.SerializeToString, - google_dot_protobuf_dot_empty__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def NoComment(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/test.grpc.SimpleService/NoComment', - testproto_dot_test__pb2.Simple1.SerializeToString, - google_dot_protobuf_dot_empty__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) From d0a23758b7c47e910895efe93ab04fa370d2e4ee Mon Sep 17 00:00:00 2001 From: Alexey Date: Thu, 27 Nov 2025 13:35:25 +0000 Subject: [PATCH 09/23] Add init files to generated sync/async --- test/generated_async_only/testproto/__init__.py | 0 test/generated_async_only/testproto/grpc/__init__.py | 0 test/generated_sync_only/testproto/__init__.py | 0 test/generated_sync_only/testproto/grpc/__init__.py | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/generated_async_only/testproto/__init__.py create mode 100644 test/generated_async_only/testproto/grpc/__init__.py create mode 100644 test/generated_sync_only/testproto/__init__.py create mode 100644 test/generated_sync_only/testproto/grpc/__init__.py diff --git a/test/generated_async_only/testproto/__init__.py b/test/generated_async_only/testproto/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_async_only/testproto/grpc/__init__.py b/test/generated_async_only/testproto/grpc/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/__init__.py b/test/generated_sync_only/testproto/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/grpc/__init__.py b/test/generated_sync_only/testproto/grpc/__init__.py new file mode 100644 index 00000000..e69de29b From 15762aa7c54638302bba91cb0d1d2a590a16c925 Mon Sep 17 00:00:00 2001 From: Alexey Date: Thu, 27 Nov 2025 13:35:25 +0000 Subject: [PATCH 10/23] Add init files to generated sync/async --- run_test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/run_test.sh b/run_test.sh index 03a74fe1..8efc3cb6 100755 --- a/run_test.sh +++ b/run_test.sh @@ -136,10 +136,10 @@ MYPY_PROTOBUF_VENV=venv_$PY_VER_MYPY_PROTOBUF find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=generate_concrete_servicer_stubs:test/generated_concrete # Generate with sync_only stubs for testing - find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_sync:test/generated_sync_only --mypy_out=test/generated_sync_only --python_out=test/generated_sync_only + find proto/testproto -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_sync:test/generated_sync_only --mypy_out=test/generated_sync_only --python_out=test/generated_sync_only # Generate with async_only stubs for testing - find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_async:test/generated_async_only --mypy_out=test/generated_async_only --python_out=test/generated_async_only + find proto/testproto -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_async:test/generated_async_only --mypy_out=test/generated_async_only --python_out=test/generated_async_only if [[ -n $VALIDATE ]] && ! diff <(echo "$SHA_BEFORE") <(find test/generated -name "*.pyi" -print0 | xargs -0 sha1sum); then echo -e "${RED}Some .pyi files did not match. Please commit those files${NC}" From 6116175c83a1b7dad88e564e190c86ec8f00bf29 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 19:06:26 +0000 Subject: [PATCH 11/23] Add missing enum import --- mypy_protobuf/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mypy_protobuf/main.py b/mypy_protobuf/main.py index 577886db..44138d9c 100644 --- a/mypy_protobuf/main.py +++ b/mypy_protobuf/main.py @@ -3,6 +3,7 @@ from __future__ import annotations import ast +import enum import sys from collections import defaultdict from contextlib import contextmanager From 372191beca1ce7a37bca287cb0a94089d3b42885 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 22:30:19 +0000 Subject: [PATCH 12/23] Fix linting error and remove generated sync/async only files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix F402 linting error where 'enum' loop variable was shadowing the enum module import. Renamed loop variable to 'enum_proto'. - Stage deletion of test/generated_sync_only and test/generated_async_only directories - these will be regenerated during test runs. - Update generated_concrete files with latest output. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- mypy_protobuf/main.py | 20 +- .../testproto/__init__.py | 0 .../testproto/grpc/__init__.py | 0 .../testproto/grpc/dummy_pb2.pyi | 68 - .../testproto/grpc/dummy_pb2_grpc.pyi | 137 -- .../testproto/grpc/import_pb2.pyi | 8 - .../testproto/grpc/import_pb2_grpc.pyi | 73 - .../testproto/edition2024_pb2.pyi | 12 +- .../testproto/grpc/dummy_pb2.pyi | 1989 ++++++++++++++++- .../testproto/grpc/dummy_pb2_grpc.pyi | 1057 +++++++-- .../testproto/grpc/import_pb2_grpc.pyi | 117 +- .../generated_sync_only/testproto/__init__.py | 0 .../testproto/grpc/__init__.py | 0 .../testproto/grpc/dummy_pb2.pyi | 68 - .../testproto/grpc/dummy_pb2_grpc.pyi | 137 -- .../testproto/grpc/import_pb2.pyi | 8 - .../testproto/grpc/import_pb2_grpc.pyi | 73 - 17 files changed, 2875 insertions(+), 892 deletions(-) delete mode 100644 test/generated_async_only/testproto/__init__.py delete mode 100644 test/generated_async_only/testproto/grpc/__init__.py delete mode 100644 test/generated_async_only/testproto/grpc/dummy_pb2.pyi delete mode 100644 test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi delete mode 100644 test/generated_async_only/testproto/grpc/import_pb2.pyi delete mode 100644 test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi delete mode 100644 test/generated_sync_only/testproto/__init__.py delete mode 100644 test/generated_sync_only/testproto/grpc/__init__.py delete mode 100644 test/generated_sync_only/testproto/grpc/dummy_pb2.pyi delete mode 100644 test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi delete mode 100644 test/generated_sync_only/testproto/grpc/import_pb2.pyi delete mode 100644 test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi diff --git a/mypy_protobuf/main.py b/mypy_protobuf/main.py index 44138d9c..09da06c4 100644 --- a/mypy_protobuf/main.py +++ b/mypy_protobuf/main.py @@ -115,9 +115,9 @@ def _add_enums( prefix: str, _fd: d.FileDescriptorProto, ) -> None: - for enum in enums: - self.message_to_fd[prefix + enum.name] = _fd - self.message_to_fd[prefix + enum.name + ".ValueType"] = _fd + for enum_proto in enums: + self.message_to_fd[prefix + enum_proto.name] = _fd + self.message_to_fd[prefix + enum_proto.name + ".ValueType"] = _fd def _add_messages( messages: "RepeatedCompositeFieldContainer[d.DescriptorProto]", @@ -406,12 +406,12 @@ def write_enums( scl_prefix: SourceCodeLocation, ) -> None: wl = self._write_line - for i, enum in enumerate(enums): - class_name = enum.name if enum.name not in PYTHON_RESERVED else "_r_" + enum.name + for i, enum_proto in enumerate(enums): + class_name = enum_proto.name if enum_proto.name not in PYTHON_RESERVED else "_r_" + enum_proto.name value_type_fq = prefix + class_name + ".ValueType" - enum_helper_class = "_" + enum.name + enum_helper_class = "_" + enum_proto.name value_type_helper_fq = prefix + enum_helper_class + ".ValueType" - etw_helper_class = "_" + enum.name + "EnumTypeWrapper" + etw_helper_class = "_" + enum_proto.name + "EnumTypeWrapper" scl = scl_prefix + [i] wl(f"class {enum_helper_class}:") @@ -435,13 +435,13 @@ def write_enums( ed = self._import("google.protobuf.descriptor", "EnumDescriptor") wl(f"DESCRIPTOR: {ed}") self.write_enum_values( - [(i, v) for i, v in enumerate(enum.value) if v.name not in PROTO_ENUM_RESERVED], + [(i, v) for i, v in enumerate(enum_proto.value) if v.name not in PROTO_ENUM_RESERVED], value_type_helper_fq, scl + [d.EnumDescriptorProto.VALUE_FIELD_NUMBER], ) wl("") - if enum.options.deprecated: + if enum_proto.options.deprecated: self._write_deprecation_warning( scl + [d.EnumDescriptorProto.OPTIONS_FIELD_NUMBER] + [d.EnumOptions.DEPRECATED_FIELD_NUMBER], "This enum has been marked as deprecated using proto enum options.", @@ -457,7 +457,7 @@ def write_enums( wl("") self.write_enum_values( - enumerate(enum.value), + enumerate(enum_proto.value), value_type_fq, scl + [d.EnumDescriptorProto.VALUE_FIELD_NUMBER], ) diff --git a/test/generated_async_only/testproto/__init__.py b/test/generated_async_only/testproto/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated_async_only/testproto/grpc/__init__.py b/test/generated_async_only/testproto/grpc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2.pyi deleted file mode 100644 index ce03f2a5..00000000 --- a/test/generated_async_only/testproto/grpc/dummy_pb2.pyi +++ /dev/null @@ -1,68 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -if sys.version_info >= (3, 13): - from warnings import deprecated -else: - from typing_extensions import deprecated - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class DummyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VALUE_FIELD_NUMBER: builtins.int - value: builtins.str - def __init__( - self, - *, - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... - -Global___DummyRequest: typing_extensions.TypeAlias = DummyRequest - -@typing.final -class DummyReply(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VALUE_FIELD_NUMBER: builtins.int - value: builtins.str - def __init__( - self, - *, - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... - -Global___DummyReply: typing_extensions.TypeAlias = DummyReply - -@deprecated("""This message has been marked as deprecated using proto message options.""") -@typing.final -class DeprecatedRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OLD_FIELD_FIELD_NUMBER: builtins.int - old_field: builtins.str - def __init__( - self, - *, - old_field: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["old_field", b"old_field"]) -> None: ... - -Global___DeprecatedRequest: typing_extensions.TypeAlias = DeprecatedRequest diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi deleted file mode 100644 index 02a1c6a8..00000000 --- a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi +++ /dev/null @@ -1,137 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" - -import abc -import collections.abc -import grpc.aio -import sys -import testproto.grpc.dummy_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -if sys.version_info >= (3, 13): - from warnings import deprecated -else: - from typing_extensions import deprecated - - -GRPC_GENERATED_VERSION: str -GRPC_VERSION: str -_DummyServiceUnaryUnaryType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -_DummyServiceUnaryStreamType: typing_extensions.TypeAlias = grpc.aio.UnaryStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -_DummyServiceStreamUnaryType: typing_extensions.TypeAlias = grpc.aio.StreamUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -_DummyServiceStreamStreamType: typing_extensions.TypeAlias = grpc.aio.StreamStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -class DummyServiceStub: - """DummyService""" - - def __init__(self, channel: grpc.aio.Channel) -> None: ... - - UnaryUnary: _DummyServiceUnaryUnaryType - """UnaryUnary""" - - UnaryStream: _DummyServiceUnaryStreamType - """UnaryStream""" - - StreamUnary: _DummyServiceStreamUnaryType - """StreamUnary""" - - StreamStream: _DummyServiceStreamStreamType - """StreamStream""" - -class DummyServiceServicer(metaclass=abc.ABCMeta): - """DummyService""" - - @abc.abstractmethod - def UnaryUnary( - self, - request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], - ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: - """UnaryUnary""" - - @abc.abstractmethod - def UnaryStream( - self, - request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]], - ) -> collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]: - """UnaryStream""" - - @abc.abstractmethod - def StreamUnary( - self, - request_iterator: collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], - context: grpc.aio.ServicerContext[collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], - ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: - """StreamUnary""" - - @abc.abstractmethod - def StreamStream( - self, - request_iterator: collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], - context: grpc.aio.ServicerContext[collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]], - ) -> collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]: - """StreamStream""" - -def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: grpc.aio.Server) -> None: ... - -_DeprecatedServiceDeprecatedMethodType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DeprecatedRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -_DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -@deprecated("""This service is deprecated""") -class DeprecatedServiceStub: - """Marking the service as deprecated""" - - def __init__(self, channel: grpc.aio.Channel) -> None: ... - - DeprecatedMethod: _DeprecatedServiceDeprecatedMethodType - """DeprecatedMethod""" - - DeprecatedMethodNotDeprecatedRequest: _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType - """DeprecatedMethodNotDeprecatedRequest""" - -@deprecated("""This service is deprecated""") -class DeprecatedServiceServicer(metaclass=abc.ABCMeta): - """Marking the service as deprecated""" - - @abc.abstractmethod - def DeprecatedMethod( - self, - request: testproto.grpc.dummy_pb2.DeprecatedRequest, - context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DeprecatedRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], - ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: - """DeprecatedMethod""" - - @abc.abstractmethod - def DeprecatedMethodNotDeprecatedRequest( - self, - request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], - ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: - """DeprecatedMethodNotDeprecatedRequest""" - -@deprecated("""This service is deprecated""") -def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: grpc.aio.Server) -> None: ... diff --git a/test/generated_async_only/testproto/grpc/import_pb2.pyi b/test/generated_async_only/testproto/grpc/import_pb2.pyi deleted file mode 100644 index dd854e28..00000000 --- a/test/generated_async_only/testproto/grpc/import_pb2.pyi +++ /dev/null @@ -1,8 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import google.protobuf.descriptor - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi deleted file mode 100644 index dcc2f2ef..00000000 --- a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi +++ /dev/null @@ -1,73 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import abc -import collections.abc -import google.protobuf.empty_pb2 -import grpc.aio -import sys -import testproto.test_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - - -GRPC_GENERATED_VERSION: str -GRPC_VERSION: str -_SimpleServiceUnaryUnaryType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ - google.protobuf.empty_pb2.Empty, - testproto.test_pb2.Simple1, -] -_SimpleServiceUnaryStreamType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, -] -_SimpleServiceNoCommentType: typing_extensions.TypeAlias = grpc.aio.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, -] -class SimpleServiceStub: - """SimpleService""" - - def __init__(self, channel: grpc.aio.Channel) -> None: ... - - UnaryUnary: _SimpleServiceUnaryUnaryType - """UnaryUnary""" - - UnaryStream: _SimpleServiceUnaryStreamType - """UnaryStream""" - - NoComment: _SimpleServiceNoCommentType - -class SimpleServiceServicer(metaclass=abc.ABCMeta): - """SimpleService""" - - @abc.abstractmethod - def UnaryUnary( - self, - request: google.protobuf.empty_pb2.Empty, - context: grpc.aio.ServicerContext[google.protobuf.empty_pb2.Empty, collections.abc.Awaitable[testproto.test_pb2.Simple1]], - ) -> collections.abc.Awaitable[testproto.test_pb2.Simple1]: - """UnaryUnary""" - - @abc.abstractmethod - def UnaryStream( - self, - request: testproto.test_pb2.Simple1, - context: grpc.aio.ServicerContext[testproto.test_pb2.Simple1, collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]], - ) -> collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]: - """UnaryStream""" - - @abc.abstractmethod - def NoComment( - self, - request: testproto.test_pb2.Simple1, - context: grpc.aio.ServicerContext[testproto.test_pb2.Simple1, collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]], - ) -> collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]: ... - -def add_SimpleServiceServicer_to_server(servicer: SimpleServiceServicer, server: grpc.aio.Server) -> None: ... diff --git a/test/generated_concrete/testproto/edition2024_pb2.pyi b/test/generated_concrete/testproto/edition2024_pb2.pyi index 6de2ba64..02e9c3fb 100644 --- a/test/generated_concrete/testproto/edition2024_pb2.pyi +++ b/test/generated_concrete/testproto/edition2024_pb2.pyi @@ -27,8 +27,10 @@ class Editions2024SubMessage(google.protobuf.message.Message): *, thing: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["thing", b"thing"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["thing", b"thing"]) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["thing", b"thing"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["thing", b"thing"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___Editions2024SubMessage: typing_extensions.TypeAlias = Editions2024SubMessage @@ -62,7 +64,9 @@ class Editions2024Test(google.protobuf.message.Message): implicit_singular: builtins.str = ..., default_singular: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"]) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___Editions2024Test: typing_extensions.TypeAlias = Editions2024Test diff --git a/test/generated_concrete/testproto/grpc/dummy_pb2.pyi b/test/generated_concrete/testproto/grpc/dummy_pb2.pyi index ce03f2a5..94987554 100644 --- a/test/generated_concrete/testproto/grpc/dummy_pb2.pyi +++ b/test/generated_concrete/testproto/grpc/dummy_pb2.pyi @@ -32,7 +32,8 @@ class DummyRequest(google.protobuf.message.Message): *, value: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___DummyRequest: typing_extensions.TypeAlias = DummyRequest @@ -47,7 +48,8 @@ class DummyReply(google.protobuf.message.Message): *, value: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___DummyReply: typing_extensions.TypeAlias = DummyReply @@ -63,6 +65,1987 @@ class DeprecatedRequest(google.protobuf.message.Message): *, old_field: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing.Literal["old_field", b"old_field"]) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["old_field", b"old_field"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... Global___DeprecatedRequest: typing_extensions.TypeAlias = DeprecatedRequest + +@typing.final +class ManyRequest1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest1: typing_extensions.TypeAlias = ManyRequest1 + +@typing.final +class ManyResponse1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse1: typing_extensions.TypeAlias = ManyResponse1 + +@typing.final +class ManyRequest2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest2: typing_extensions.TypeAlias = ManyRequest2 + +@typing.final +class ManyResponse2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse2: typing_extensions.TypeAlias = ManyResponse2 + +@typing.final +class ManyRequest3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest3: typing_extensions.TypeAlias = ManyRequest3 + +@typing.final +class ManyResponse3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse3: typing_extensions.TypeAlias = ManyResponse3 + +@typing.final +class ManyRequest4(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest4: typing_extensions.TypeAlias = ManyRequest4 + +@typing.final +class ManyResponse4(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse4: typing_extensions.TypeAlias = ManyResponse4 + +@typing.final +class ManyRequest5(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest5: typing_extensions.TypeAlias = ManyRequest5 + +@typing.final +class ManyResponse5(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse5: typing_extensions.TypeAlias = ManyResponse5 + +@typing.final +class ManyRequest6(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest6: typing_extensions.TypeAlias = ManyRequest6 + +@typing.final +class ManyResponse6(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse6: typing_extensions.TypeAlias = ManyResponse6 + +@typing.final +class ManyRequest7(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest7: typing_extensions.TypeAlias = ManyRequest7 + +@typing.final +class ManyResponse7(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse7: typing_extensions.TypeAlias = ManyResponse7 + +@typing.final +class ManyRequest8(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest8: typing_extensions.TypeAlias = ManyRequest8 + +@typing.final +class ManyResponse8(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse8: typing_extensions.TypeAlias = ManyResponse8 + +@typing.final +class ManyRequest9(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest9: typing_extensions.TypeAlias = ManyRequest9 + +@typing.final +class ManyResponse9(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse9: typing_extensions.TypeAlias = ManyResponse9 + +@typing.final +class ManyRequest10(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest10: typing_extensions.TypeAlias = ManyRequest10 + +@typing.final +class ManyResponse10(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse10: typing_extensions.TypeAlias = ManyResponse10 + +@typing.final +class ManyRequest11(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest11: typing_extensions.TypeAlias = ManyRequest11 + +@typing.final +class ManyResponse11(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse11: typing_extensions.TypeAlias = ManyResponse11 + +@typing.final +class ManyRequest12(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest12: typing_extensions.TypeAlias = ManyRequest12 + +@typing.final +class ManyResponse12(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse12: typing_extensions.TypeAlias = ManyResponse12 + +@typing.final +class ManyRequest13(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest13: typing_extensions.TypeAlias = ManyRequest13 + +@typing.final +class ManyResponse13(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse13: typing_extensions.TypeAlias = ManyResponse13 + +@typing.final +class ManyRequest14(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest14: typing_extensions.TypeAlias = ManyRequest14 + +@typing.final +class ManyResponse14(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse14: typing_extensions.TypeAlias = ManyResponse14 + +@typing.final +class ManyRequest15(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest15: typing_extensions.TypeAlias = ManyRequest15 + +@typing.final +class ManyResponse15(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse15: typing_extensions.TypeAlias = ManyResponse15 + +@typing.final +class ManyRequest16(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest16: typing_extensions.TypeAlias = ManyRequest16 + +@typing.final +class ManyResponse16(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse16: typing_extensions.TypeAlias = ManyResponse16 + +@typing.final +class ManyRequest17(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest17: typing_extensions.TypeAlias = ManyRequest17 + +@typing.final +class ManyResponse17(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse17: typing_extensions.TypeAlias = ManyResponse17 + +@typing.final +class ManyRequest18(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest18: typing_extensions.TypeAlias = ManyRequest18 + +@typing.final +class ManyResponse18(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse18: typing_extensions.TypeAlias = ManyResponse18 + +@typing.final +class ManyRequest19(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest19: typing_extensions.TypeAlias = ManyRequest19 + +@typing.final +class ManyResponse19(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse19: typing_extensions.TypeAlias = ManyResponse19 + +@typing.final +class ManyRequest20(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest20: typing_extensions.TypeAlias = ManyRequest20 + +@typing.final +class ManyResponse20(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse20: typing_extensions.TypeAlias = ManyResponse20 + +@typing.final +class ManyRequest21(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest21: typing_extensions.TypeAlias = ManyRequest21 + +@typing.final +class ManyResponse21(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse21: typing_extensions.TypeAlias = ManyResponse21 + +@typing.final +class ManyRequest22(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest22: typing_extensions.TypeAlias = ManyRequest22 + +@typing.final +class ManyResponse22(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse22: typing_extensions.TypeAlias = ManyResponse22 + +@typing.final +class ManyRequest23(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest23: typing_extensions.TypeAlias = ManyRequest23 + +@typing.final +class ManyResponse23(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse23: typing_extensions.TypeAlias = ManyResponse23 + +@typing.final +class ManyRequest24(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest24: typing_extensions.TypeAlias = ManyRequest24 + +@typing.final +class ManyResponse24(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse24: typing_extensions.TypeAlias = ManyResponse24 + +@typing.final +class ManyRequest25(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest25: typing_extensions.TypeAlias = ManyRequest25 + +@typing.final +class ManyResponse25(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse25: typing_extensions.TypeAlias = ManyResponse25 + +@typing.final +class ManyRequest26(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest26: typing_extensions.TypeAlias = ManyRequest26 + +@typing.final +class ManyResponse26(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse26: typing_extensions.TypeAlias = ManyResponse26 + +@typing.final +class ManyRequest27(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest27: typing_extensions.TypeAlias = ManyRequest27 + +@typing.final +class ManyResponse27(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse27: typing_extensions.TypeAlias = ManyResponse27 + +@typing.final +class ManyRequest28(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest28: typing_extensions.TypeAlias = ManyRequest28 + +@typing.final +class ManyResponse28(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse28: typing_extensions.TypeAlias = ManyResponse28 + +@typing.final +class ManyRequest29(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest29: typing_extensions.TypeAlias = ManyRequest29 + +@typing.final +class ManyResponse29(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse29: typing_extensions.TypeAlias = ManyResponse29 + +@typing.final +class ManyRequest30(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest30: typing_extensions.TypeAlias = ManyRequest30 + +@typing.final +class ManyResponse30(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse30: typing_extensions.TypeAlias = ManyResponse30 + +@typing.final +class ManyRequest31(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest31: typing_extensions.TypeAlias = ManyRequest31 + +@typing.final +class ManyResponse31(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse31: typing_extensions.TypeAlias = ManyResponse31 + +@typing.final +class ManyRequest32(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest32: typing_extensions.TypeAlias = ManyRequest32 + +@typing.final +class ManyResponse32(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse32: typing_extensions.TypeAlias = ManyResponse32 + +@typing.final +class ManyRequest33(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest33: typing_extensions.TypeAlias = ManyRequest33 + +@typing.final +class ManyResponse33(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse33: typing_extensions.TypeAlias = ManyResponse33 + +@typing.final +class ManyRequest34(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest34: typing_extensions.TypeAlias = ManyRequest34 + +@typing.final +class ManyResponse34(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse34: typing_extensions.TypeAlias = ManyResponse34 + +@typing.final +class ManyRequest35(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest35: typing_extensions.TypeAlias = ManyRequest35 + +@typing.final +class ManyResponse35(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse35: typing_extensions.TypeAlias = ManyResponse35 + +@typing.final +class ManyRequest36(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest36: typing_extensions.TypeAlias = ManyRequest36 + +@typing.final +class ManyResponse36(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse36: typing_extensions.TypeAlias = ManyResponse36 + +@typing.final +class ManyRequest37(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest37: typing_extensions.TypeAlias = ManyRequest37 + +@typing.final +class ManyResponse37(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse37: typing_extensions.TypeAlias = ManyResponse37 + +@typing.final +class ManyRequest38(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest38: typing_extensions.TypeAlias = ManyRequest38 + +@typing.final +class ManyResponse38(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse38: typing_extensions.TypeAlias = ManyResponse38 + +@typing.final +class ManyRequest39(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest39: typing_extensions.TypeAlias = ManyRequest39 + +@typing.final +class ManyResponse39(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse39: typing_extensions.TypeAlias = ManyResponse39 + +@typing.final +class ManyRequest40(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest40: typing_extensions.TypeAlias = ManyRequest40 + +@typing.final +class ManyResponse40(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse40: typing_extensions.TypeAlias = ManyResponse40 + +@typing.final +class ManyRequest41(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest41: typing_extensions.TypeAlias = ManyRequest41 + +@typing.final +class ManyResponse41(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse41: typing_extensions.TypeAlias = ManyResponse41 + +@typing.final +class ManyRequest42(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest42: typing_extensions.TypeAlias = ManyRequest42 + +@typing.final +class ManyResponse42(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse42: typing_extensions.TypeAlias = ManyResponse42 + +@typing.final +class ManyRequest43(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest43: typing_extensions.TypeAlias = ManyRequest43 + +@typing.final +class ManyResponse43(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse43: typing_extensions.TypeAlias = ManyResponse43 + +@typing.final +class ManyRequest44(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest44: typing_extensions.TypeAlias = ManyRequest44 + +@typing.final +class ManyResponse44(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse44: typing_extensions.TypeAlias = ManyResponse44 + +@typing.final +class ManyRequest45(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest45: typing_extensions.TypeAlias = ManyRequest45 + +@typing.final +class ManyResponse45(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse45: typing_extensions.TypeAlias = ManyResponse45 + +@typing.final +class ManyRequest46(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest46: typing_extensions.TypeAlias = ManyRequest46 + +@typing.final +class ManyResponse46(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse46: typing_extensions.TypeAlias = ManyResponse46 + +@typing.final +class ManyRequest47(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest47: typing_extensions.TypeAlias = ManyRequest47 + +@typing.final +class ManyResponse47(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse47: typing_extensions.TypeAlias = ManyResponse47 + +@typing.final +class ManyRequest48(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest48: typing_extensions.TypeAlias = ManyRequest48 + +@typing.final +class ManyResponse48(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse48: typing_extensions.TypeAlias = ManyResponse48 + +@typing.final +class ManyRequest49(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest49: typing_extensions.TypeAlias = ManyRequest49 + +@typing.final +class ManyResponse49(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse49: typing_extensions.TypeAlias = ManyResponse49 + +@typing.final +class ManyRequest50(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest50: typing_extensions.TypeAlias = ManyRequest50 + +@typing.final +class ManyResponse50(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse50: typing_extensions.TypeAlias = ManyResponse50 + +@typing.final +class ManyRequest51(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest51: typing_extensions.TypeAlias = ManyRequest51 + +@typing.final +class ManyResponse51(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse51: typing_extensions.TypeAlias = ManyResponse51 + +@typing.final +class ManyRequest52(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest52: typing_extensions.TypeAlias = ManyRequest52 + +@typing.final +class ManyResponse52(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse52: typing_extensions.TypeAlias = ManyResponse52 + +@typing.final +class ManyRequest53(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest53: typing_extensions.TypeAlias = ManyRequest53 + +@typing.final +class ManyResponse53(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse53: typing_extensions.TypeAlias = ManyResponse53 + +@typing.final +class ManyRequest54(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest54: typing_extensions.TypeAlias = ManyRequest54 + +@typing.final +class ManyResponse54(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse54: typing_extensions.TypeAlias = ManyResponse54 + +@typing.final +class ManyRequest55(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest55: typing_extensions.TypeAlias = ManyRequest55 + +@typing.final +class ManyResponse55(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse55: typing_extensions.TypeAlias = ManyResponse55 + +@typing.final +class ManyRequest56(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest56: typing_extensions.TypeAlias = ManyRequest56 + +@typing.final +class ManyResponse56(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse56: typing_extensions.TypeAlias = ManyResponse56 + +@typing.final +class ManyRequest57(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest57: typing_extensions.TypeAlias = ManyRequest57 + +@typing.final +class ManyResponse57(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse57: typing_extensions.TypeAlias = ManyResponse57 + +@typing.final +class ManyRequest58(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest58: typing_extensions.TypeAlias = ManyRequest58 + +@typing.final +class ManyResponse58(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse58: typing_extensions.TypeAlias = ManyResponse58 + +@typing.final +class ManyRequest59(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest59: typing_extensions.TypeAlias = ManyRequest59 + +@typing.final +class ManyResponse59(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse59: typing_extensions.TypeAlias = ManyResponse59 + +@typing.final +class ManyRequest60(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest60: typing_extensions.TypeAlias = ManyRequest60 + +@typing.final +class ManyResponse60(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse60: typing_extensions.TypeAlias = ManyResponse60 + +@typing.final +class ManyRequest61(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest61: typing_extensions.TypeAlias = ManyRequest61 + +@typing.final +class ManyResponse61(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse61: typing_extensions.TypeAlias = ManyResponse61 + +@typing.final +class ManyRequest62(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest62: typing_extensions.TypeAlias = ManyRequest62 + +@typing.final +class ManyResponse62(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse62: typing_extensions.TypeAlias = ManyResponse62 + +@typing.final +class ManyRequest63(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest63: typing_extensions.TypeAlias = ManyRequest63 + +@typing.final +class ManyResponse63(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse63: typing_extensions.TypeAlias = ManyResponse63 + +@typing.final +class ManyRequest64(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest64: typing_extensions.TypeAlias = ManyRequest64 + +@typing.final +class ManyResponse64(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse64: typing_extensions.TypeAlias = ManyResponse64 + +@typing.final +class ManyRequest65(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest65: typing_extensions.TypeAlias = ManyRequest65 + +@typing.final +class ManyResponse65(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse65: typing_extensions.TypeAlias = ManyResponse65 + +@typing.final +class ManyRequest66(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest66: typing_extensions.TypeAlias = ManyRequest66 + +@typing.final +class ManyResponse66(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse66: typing_extensions.TypeAlias = ManyResponse66 + +@typing.final +class ManyRequest67(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest67: typing_extensions.TypeAlias = ManyRequest67 + +@typing.final +class ManyResponse67(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse67: typing_extensions.TypeAlias = ManyResponse67 + +@typing.final +class ManyRequest68(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest68: typing_extensions.TypeAlias = ManyRequest68 + +@typing.final +class ManyResponse68(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse68: typing_extensions.TypeAlias = ManyResponse68 + +@typing.final +class ManyRequest69(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest69: typing_extensions.TypeAlias = ManyRequest69 + +@typing.final +class ManyResponse69(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse69: typing_extensions.TypeAlias = ManyResponse69 + +@typing.final +class ManyRequest70(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest70: typing_extensions.TypeAlias = ManyRequest70 + +@typing.final +class ManyResponse70(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse70: typing_extensions.TypeAlias = ManyResponse70 + +@typing.final +class ManyRequest71(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest71: typing_extensions.TypeAlias = ManyRequest71 + +@typing.final +class ManyResponse71(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse71: typing_extensions.TypeAlias = ManyResponse71 + +@typing.final +class ManyRequest72(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest72: typing_extensions.TypeAlias = ManyRequest72 + +@typing.final +class ManyResponse72(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse72: typing_extensions.TypeAlias = ManyResponse72 + +@typing.final +class ManyRequest73(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest73: typing_extensions.TypeAlias = ManyRequest73 + +@typing.final +class ManyResponse73(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse73: typing_extensions.TypeAlias = ManyResponse73 + +@typing.final +class ManyRequest74(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest74: typing_extensions.TypeAlias = ManyRequest74 + +@typing.final +class ManyResponse74(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse74: typing_extensions.TypeAlias = ManyResponse74 + +@typing.final +class ManyRequest75(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest75: typing_extensions.TypeAlias = ManyRequest75 + +@typing.final +class ManyResponse75(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse75: typing_extensions.TypeAlias = ManyResponse75 + +@typing.final +class ManyRequest76(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest76: typing_extensions.TypeAlias = ManyRequest76 + +@typing.final +class ManyResponse76(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse76: typing_extensions.TypeAlias = ManyResponse76 + +@typing.final +class ManyRequest77(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest77: typing_extensions.TypeAlias = ManyRequest77 + +@typing.final +class ManyResponse77(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse77: typing_extensions.TypeAlias = ManyResponse77 + +@typing.final +class ManyRequest78(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest78: typing_extensions.TypeAlias = ManyRequest78 + +@typing.final +class ManyResponse78(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse78: typing_extensions.TypeAlias = ManyResponse78 + +@typing.final +class ManyRequest79(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest79: typing_extensions.TypeAlias = ManyRequest79 + +@typing.final +class ManyResponse79(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse79: typing_extensions.TypeAlias = ManyResponse79 + +@typing.final +class ManyRequest80(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest80: typing_extensions.TypeAlias = ManyRequest80 + +@typing.final +class ManyResponse80(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse80: typing_extensions.TypeAlias = ManyResponse80 + +@typing.final +class ManyRequest81(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest81: typing_extensions.TypeAlias = ManyRequest81 + +@typing.final +class ManyResponse81(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse81: typing_extensions.TypeAlias = ManyResponse81 + +@typing.final +class ManyRequest82(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest82: typing_extensions.TypeAlias = ManyRequest82 + +@typing.final +class ManyResponse82(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse82: typing_extensions.TypeAlias = ManyResponse82 + +@typing.final +class ManyRequest83(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest83: typing_extensions.TypeAlias = ManyRequest83 + +@typing.final +class ManyResponse83(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse83: typing_extensions.TypeAlias = ManyResponse83 + +@typing.final +class ManyRequest84(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest84: typing_extensions.TypeAlias = ManyRequest84 + +@typing.final +class ManyResponse84(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse84: typing_extensions.TypeAlias = ManyResponse84 + +@typing.final +class ManyRequest85(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest85: typing_extensions.TypeAlias = ManyRequest85 + +@typing.final +class ManyResponse85(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse85: typing_extensions.TypeAlias = ManyResponse85 + +@typing.final +class ManyRequest86(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest86: typing_extensions.TypeAlias = ManyRequest86 + +@typing.final +class ManyResponse86(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse86: typing_extensions.TypeAlias = ManyResponse86 + +@typing.final +class ManyRequest87(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest87: typing_extensions.TypeAlias = ManyRequest87 + +@typing.final +class ManyResponse87(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse87: typing_extensions.TypeAlias = ManyResponse87 + +@typing.final +class ManyRequest88(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest88: typing_extensions.TypeAlias = ManyRequest88 + +@typing.final +class ManyResponse88(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse88: typing_extensions.TypeAlias = ManyResponse88 + +@typing.final +class ManyRequest89(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest89: typing_extensions.TypeAlias = ManyRequest89 + +@typing.final +class ManyResponse89(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse89: typing_extensions.TypeAlias = ManyResponse89 + +@typing.final +class ManyRequest90(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest90: typing_extensions.TypeAlias = ManyRequest90 + +@typing.final +class ManyResponse90(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse90: typing_extensions.TypeAlias = ManyResponse90 + +@typing.final +class ManyRequest91(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest91: typing_extensions.TypeAlias = ManyRequest91 + +@typing.final +class ManyResponse91(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse91: typing_extensions.TypeAlias = ManyResponse91 + +@typing.final +class ManyRequest92(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest92: typing_extensions.TypeAlias = ManyRequest92 + +@typing.final +class ManyResponse92(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse92: typing_extensions.TypeAlias = ManyResponse92 + +@typing.final +class ManyRequest93(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest93: typing_extensions.TypeAlias = ManyRequest93 + +@typing.final +class ManyResponse93(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse93: typing_extensions.TypeAlias = ManyResponse93 + +@typing.final +class ManyRequest94(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest94: typing_extensions.TypeAlias = ManyRequest94 + +@typing.final +class ManyResponse94(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse94: typing_extensions.TypeAlias = ManyResponse94 + +@typing.final +class ManyRequest95(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest95: typing_extensions.TypeAlias = ManyRequest95 + +@typing.final +class ManyResponse95(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse95: typing_extensions.TypeAlias = ManyResponse95 + +@typing.final +class ManyRequest96(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest96: typing_extensions.TypeAlias = ManyRequest96 + +@typing.final +class ManyResponse96(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse96: typing_extensions.TypeAlias = ManyResponse96 + +@typing.final +class ManyRequest97(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest97: typing_extensions.TypeAlias = ManyRequest97 + +@typing.final +class ManyResponse97(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse97: typing_extensions.TypeAlias = ManyResponse97 + +@typing.final +class ManyRequest98(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest98: typing_extensions.TypeAlias = ManyRequest98 + +@typing.final +class ManyResponse98(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse98: typing_extensions.TypeAlias = ManyResponse98 + +@typing.final +class ManyRequest99(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest99: typing_extensions.TypeAlias = ManyRequest99 + +@typing.final +class ManyResponse99(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse99: typing_extensions.TypeAlias = ManyResponse99 diff --git a/test/generated_concrete/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_concrete/testproto/grpc/dummy_pb2_grpc.pyi index c9f53c74..c0d70574 100644 --- a/test/generated_concrete/testproto/grpc/dummy_pb2_grpc.pyi +++ b/test/generated_concrete/testproto/grpc/dummy_pb2_grpc.pyi @@ -11,11 +11,6 @@ import sys import testproto.grpc.dummy_pb2 import typing -if sys.version_info >= (3, 13): - import typing as typing_extensions -else: - import typing_extensions - if sys.version_info >= (3, 13): from warnings import deprecated else: @@ -30,143 +25,36 @@ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: GRPC_GENERATED_VERSION: str GRPC_VERSION: str -_DummyServiceUnaryUnaryType = typing_extensions.TypeVar( - '_DummyServiceUnaryUnaryType', - grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - default=grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], -) - -_DummyServiceUnaryStreamType = typing_extensions.TypeVar( - '_DummyServiceUnaryStreamType', - grpc.UnaryStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.UnaryStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - default=grpc.UnaryStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], -) - -_DummyServiceStreamUnaryType = typing_extensions.TypeVar( - '_DummyServiceStreamUnaryType', - grpc.StreamUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.StreamUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - default=grpc.StreamUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], -) - -_DummyServiceStreamStreamType = typing_extensions.TypeVar( - '_DummyServiceStreamStreamType', - grpc.StreamStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.StreamStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - default=grpc.StreamStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], -) - -class DummyServiceStub(typing.Generic[_DummyServiceUnaryUnaryType, _DummyServiceUnaryStreamType, _DummyServiceStreamUnaryType, _DummyServiceStreamStreamType]): + +class DummyServiceStub: """DummyService""" @typing.overload - def __init__(self: DummyServiceStub[ - grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.UnaryStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.StreamUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.StreamStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - ], channel: grpc.Channel) -> None: ... - + def __new__(cls, channel: grpc.Channel) -> DummyServiceStub: ... @typing.overload - def __init__(self: DummyServiceStub[ - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.UnaryStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.StreamUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.StreamStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - ], channel: grpc.aio.Channel) -> None: ... - - UnaryUnary: _DummyServiceUnaryUnaryType + def __new__(cls, channel: grpc.aio.Channel) -> DummyServiceAsyncStub: ... + UnaryUnary: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """UnaryUnary""" - - UnaryStream: _DummyServiceUnaryStreamType + UnaryStream: grpc.UnaryStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """UnaryStream""" - - StreamUnary: _DummyServiceStreamUnaryType + StreamUnary: grpc.StreamUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """StreamUnary""" - - StreamStream: _DummyServiceStreamStreamType + StreamStream: grpc.StreamStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """StreamStream""" -DummyServiceAsyncStub: typing_extensions.TypeAlias = DummyServiceStub[ - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.UnaryStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.StreamUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.StreamStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], -] +@typing.type_check_only +class DummyServiceAsyncStub(DummyServiceStub): + """DummyService""" + + def __init__(self, channel: grpc.aio.Channel) -> None: ... + UnaryUnary: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + """UnaryUnary""" + UnaryStream: grpc.aio.UnaryStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + """UnaryStream""" + StreamUnary: grpc.aio.StreamUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + """StreamUnary""" + StreamStream: grpc.aio.StreamStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + """StreamStream""" class DummyServiceServicer: """DummyService""" @@ -201,82 +89,29 @@ class DummyServiceServicer: def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... -_DeprecatedServiceDeprecatedMethodType = typing_extensions.TypeVar( - '_DeprecatedServiceDeprecatedMethodType', - grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DeprecatedRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DeprecatedRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - default=grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DeprecatedRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], -) - -_DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType = typing_extensions.TypeVar( - '_DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType', - grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - default=grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], -) - @deprecated("""This service is deprecated""") -class DeprecatedServiceStub(typing.Generic[_DeprecatedServiceDeprecatedMethodType, _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType]): +class DeprecatedServiceStub: """Marking the service as deprecated""" @typing.overload - def __init__(self: DeprecatedServiceStub[ - grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DeprecatedRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - ], channel: grpc.Channel) -> None: ... - + def __new__(cls, channel: grpc.Channel) -> DeprecatedServiceStub: ... @typing.overload - def __init__(self: DeprecatedServiceStub[ - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DeprecatedRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - ], channel: grpc.aio.Channel) -> None: ... - - DeprecatedMethod: _DeprecatedServiceDeprecatedMethodType + def __new__(cls, channel: grpc.aio.Channel) -> DeprecatedServiceAsyncStub: ... + DeprecatedMethod: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DeprecatedRequest, testproto.grpc.dummy_pb2.DummyReply] """DeprecatedMethod""" - - DeprecatedMethodNotDeprecatedRequest: _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType + DeprecatedMethodNotDeprecatedRequest: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """DeprecatedMethodNotDeprecatedRequest""" -DeprecatedServiceAsyncStub: typing_extensions.TypeAlias = DeprecatedServiceStub[ - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DeprecatedRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, - ], -] +@deprecated("""This service is deprecated""") +@typing.type_check_only +class DeprecatedServiceAsyncStub(DeprecatedServiceStub): + """Marking the service as deprecated""" + + def __init__(self, channel: grpc.aio.Channel) -> None: ... + DeprecatedMethod: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DeprecatedRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + """DeprecatedMethod""" + DeprecatedMethodNotDeprecatedRequest: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] # type: ignore[assignment] + """DeprecatedMethodNotDeprecatedRequest""" @deprecated("""This service is deprecated""") class DeprecatedServiceServicer: @@ -298,3 +133,823 @@ class DeprecatedServiceServicer: @deprecated("""This service is deprecated""") def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... + +class ManyRPCsServiceStub: + @typing.overload + def __new__(cls, channel: grpc.Channel) -> ManyRPCsServiceStub: ... + @typing.overload + def __new__(cls, channel: grpc.aio.Channel) -> ManyRPCsServiceAsyncStub: ... + Method1: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest1, testproto.grpc.dummy_pb2.ManyResponse1] + Method2: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest2, testproto.grpc.dummy_pb2.ManyResponse2] + Method3: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest3, testproto.grpc.dummy_pb2.ManyResponse3] + Method4: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest4, testproto.grpc.dummy_pb2.ManyResponse4] + Method5: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest5, testproto.grpc.dummy_pb2.ManyResponse5] + Method6: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest6, testproto.grpc.dummy_pb2.ManyResponse6] + Method7: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest7, testproto.grpc.dummy_pb2.ManyResponse7] + Method8: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest8, testproto.grpc.dummy_pb2.ManyResponse8] + Method9: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest9, testproto.grpc.dummy_pb2.ManyResponse9] + Method10: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest10, testproto.grpc.dummy_pb2.ManyResponse10] + Method11: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest11, testproto.grpc.dummy_pb2.ManyResponse11] + Method12: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest12, testproto.grpc.dummy_pb2.ManyResponse12] + Method13: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest13, testproto.grpc.dummy_pb2.ManyResponse13] + Method14: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest14, testproto.grpc.dummy_pb2.ManyResponse14] + Method15: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest15, testproto.grpc.dummy_pb2.ManyResponse15] + Method16: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest16, testproto.grpc.dummy_pb2.ManyResponse16] + Method17: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest17, testproto.grpc.dummy_pb2.ManyResponse17] + Method18: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest18, testproto.grpc.dummy_pb2.ManyResponse18] + Method19: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest19, testproto.grpc.dummy_pb2.ManyResponse19] + Method20: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest20, testproto.grpc.dummy_pb2.ManyResponse20] + Method21: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest21, testproto.grpc.dummy_pb2.ManyResponse21] + Method22: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest22, testproto.grpc.dummy_pb2.ManyResponse22] + Method23: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest23, testproto.grpc.dummy_pb2.ManyResponse23] + Method24: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest24, testproto.grpc.dummy_pb2.ManyResponse24] + Method25: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest25, testproto.grpc.dummy_pb2.ManyResponse25] + Method26: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest26, testproto.grpc.dummy_pb2.ManyResponse26] + Method27: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest27, testproto.grpc.dummy_pb2.ManyResponse27] + Method28: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest28, testproto.grpc.dummy_pb2.ManyResponse28] + Method29: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest29, testproto.grpc.dummy_pb2.ManyResponse29] + Method30: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest30, testproto.grpc.dummy_pb2.ManyResponse30] + Method31: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest31, testproto.grpc.dummy_pb2.ManyResponse31] + Method32: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest32, testproto.grpc.dummy_pb2.ManyResponse32] + Method33: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest33, testproto.grpc.dummy_pb2.ManyResponse33] + Method34: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest34, testproto.grpc.dummy_pb2.ManyResponse34] + Method35: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest35, testproto.grpc.dummy_pb2.ManyResponse35] + Method36: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest36, testproto.grpc.dummy_pb2.ManyResponse36] + Method37: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest37, testproto.grpc.dummy_pb2.ManyResponse37] + Method38: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest38, testproto.grpc.dummy_pb2.ManyResponse38] + Method39: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest39, testproto.grpc.dummy_pb2.ManyResponse39] + Method40: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest40, testproto.grpc.dummy_pb2.ManyResponse40] + Method41: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest41, testproto.grpc.dummy_pb2.ManyResponse41] + Method42: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest42, testproto.grpc.dummy_pb2.ManyResponse42] + Method43: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest43, testproto.grpc.dummy_pb2.ManyResponse43] + Method44: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest44, testproto.grpc.dummy_pb2.ManyResponse44] + Method45: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest45, testproto.grpc.dummy_pb2.ManyResponse45] + Method46: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest46, testproto.grpc.dummy_pb2.ManyResponse46] + Method47: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest47, testproto.grpc.dummy_pb2.ManyResponse47] + Method48: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest48, testproto.grpc.dummy_pb2.ManyResponse48] + Method49: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest49, testproto.grpc.dummy_pb2.ManyResponse49] + Method50: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest50, testproto.grpc.dummy_pb2.ManyResponse50] + Method51: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest51, testproto.grpc.dummy_pb2.ManyResponse51] + Method52: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest52, testproto.grpc.dummy_pb2.ManyResponse52] + Method53: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest53, testproto.grpc.dummy_pb2.ManyResponse53] + Method54: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest54, testproto.grpc.dummy_pb2.ManyResponse54] + Method55: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest55, testproto.grpc.dummy_pb2.ManyResponse55] + Method56: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest56, testproto.grpc.dummy_pb2.ManyResponse56] + Method57: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest57, testproto.grpc.dummy_pb2.ManyResponse57] + Method58: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest58, testproto.grpc.dummy_pb2.ManyResponse58] + Method59: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest59, testproto.grpc.dummy_pb2.ManyResponse59] + Method60: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest60, testproto.grpc.dummy_pb2.ManyResponse60] + Method61: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest61, testproto.grpc.dummy_pb2.ManyResponse61] + Method62: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest62, testproto.grpc.dummy_pb2.ManyResponse62] + Method63: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest63, testproto.grpc.dummy_pb2.ManyResponse63] + Method64: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest64, testproto.grpc.dummy_pb2.ManyResponse64] + Method65: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest65, testproto.grpc.dummy_pb2.ManyResponse65] + Method66: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest66, testproto.grpc.dummy_pb2.ManyResponse66] + Method67: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest67, testproto.grpc.dummy_pb2.ManyResponse67] + Method68: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest68, testproto.grpc.dummy_pb2.ManyResponse68] + Method69: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest69, testproto.grpc.dummy_pb2.ManyResponse69] + Method70: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest70, testproto.grpc.dummy_pb2.ManyResponse70] + Method71: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest71, testproto.grpc.dummy_pb2.ManyResponse71] + Method72: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest72, testproto.grpc.dummy_pb2.ManyResponse72] + Method73: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest73, testproto.grpc.dummy_pb2.ManyResponse73] + Method74: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest74, testproto.grpc.dummy_pb2.ManyResponse74] + Method75: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest75, testproto.grpc.dummy_pb2.ManyResponse75] + Method76: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest76, testproto.grpc.dummy_pb2.ManyResponse76] + Method77: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest77, testproto.grpc.dummy_pb2.ManyResponse77] + Method78: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest78, testproto.grpc.dummy_pb2.ManyResponse78] + Method79: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest79, testproto.grpc.dummy_pb2.ManyResponse79] + Method80: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest80, testproto.grpc.dummy_pb2.ManyResponse80] + Method81: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest81, testproto.grpc.dummy_pb2.ManyResponse81] + Method82: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest82, testproto.grpc.dummy_pb2.ManyResponse82] + Method83: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest83, testproto.grpc.dummy_pb2.ManyResponse83] + Method84: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest84, testproto.grpc.dummy_pb2.ManyResponse84] + Method85: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest85, testproto.grpc.dummy_pb2.ManyResponse85] + Method86: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest86, testproto.grpc.dummy_pb2.ManyResponse86] + Method87: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest87, testproto.grpc.dummy_pb2.ManyResponse87] + Method88: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest88, testproto.grpc.dummy_pb2.ManyResponse88] + Method89: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest89, testproto.grpc.dummy_pb2.ManyResponse89] + Method90: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest90, testproto.grpc.dummy_pb2.ManyResponse90] + Method91: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest91, testproto.grpc.dummy_pb2.ManyResponse91] + Method92: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest92, testproto.grpc.dummy_pb2.ManyResponse92] + Method93: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest93, testproto.grpc.dummy_pb2.ManyResponse93] + Method94: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest94, testproto.grpc.dummy_pb2.ManyResponse94] + Method95: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest95, testproto.grpc.dummy_pb2.ManyResponse95] + Method96: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest96, testproto.grpc.dummy_pb2.ManyResponse96] + Method97: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest97, testproto.grpc.dummy_pb2.ManyResponse97] + Method98: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest98, testproto.grpc.dummy_pb2.ManyResponse98] + Method99: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest99, testproto.grpc.dummy_pb2.ManyResponse99] + +@typing.type_check_only +class ManyRPCsServiceAsyncStub(ManyRPCsServiceStub): + def __init__(self, channel: grpc.aio.Channel) -> None: ... + Method1: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest1, testproto.grpc.dummy_pb2.ManyResponse1] # type: ignore[assignment] + Method2: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest2, testproto.grpc.dummy_pb2.ManyResponse2] # type: ignore[assignment] + Method3: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest3, testproto.grpc.dummy_pb2.ManyResponse3] # type: ignore[assignment] + Method4: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest4, testproto.grpc.dummy_pb2.ManyResponse4] # type: ignore[assignment] + Method5: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest5, testproto.grpc.dummy_pb2.ManyResponse5] # type: ignore[assignment] + Method6: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest6, testproto.grpc.dummy_pb2.ManyResponse6] # type: ignore[assignment] + Method7: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest7, testproto.grpc.dummy_pb2.ManyResponse7] # type: ignore[assignment] + Method8: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest8, testproto.grpc.dummy_pb2.ManyResponse8] # type: ignore[assignment] + Method9: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest9, testproto.grpc.dummy_pb2.ManyResponse9] # type: ignore[assignment] + Method10: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest10, testproto.grpc.dummy_pb2.ManyResponse10] # type: ignore[assignment] + Method11: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest11, testproto.grpc.dummy_pb2.ManyResponse11] # type: ignore[assignment] + Method12: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest12, testproto.grpc.dummy_pb2.ManyResponse12] # type: ignore[assignment] + Method13: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest13, testproto.grpc.dummy_pb2.ManyResponse13] # type: ignore[assignment] + Method14: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest14, testproto.grpc.dummy_pb2.ManyResponse14] # type: ignore[assignment] + Method15: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest15, testproto.grpc.dummy_pb2.ManyResponse15] # type: ignore[assignment] + Method16: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest16, testproto.grpc.dummy_pb2.ManyResponse16] # type: ignore[assignment] + Method17: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest17, testproto.grpc.dummy_pb2.ManyResponse17] # type: ignore[assignment] + Method18: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest18, testproto.grpc.dummy_pb2.ManyResponse18] # type: ignore[assignment] + Method19: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest19, testproto.grpc.dummy_pb2.ManyResponse19] # type: ignore[assignment] + Method20: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest20, testproto.grpc.dummy_pb2.ManyResponse20] # type: ignore[assignment] + Method21: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest21, testproto.grpc.dummy_pb2.ManyResponse21] # type: ignore[assignment] + Method22: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest22, testproto.grpc.dummy_pb2.ManyResponse22] # type: ignore[assignment] + Method23: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest23, testproto.grpc.dummy_pb2.ManyResponse23] # type: ignore[assignment] + Method24: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest24, testproto.grpc.dummy_pb2.ManyResponse24] # type: ignore[assignment] + Method25: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest25, testproto.grpc.dummy_pb2.ManyResponse25] # type: ignore[assignment] + Method26: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest26, testproto.grpc.dummy_pb2.ManyResponse26] # type: ignore[assignment] + Method27: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest27, testproto.grpc.dummy_pb2.ManyResponse27] # type: ignore[assignment] + Method28: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest28, testproto.grpc.dummy_pb2.ManyResponse28] # type: ignore[assignment] + Method29: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest29, testproto.grpc.dummy_pb2.ManyResponse29] # type: ignore[assignment] + Method30: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest30, testproto.grpc.dummy_pb2.ManyResponse30] # type: ignore[assignment] + Method31: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest31, testproto.grpc.dummy_pb2.ManyResponse31] # type: ignore[assignment] + Method32: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest32, testproto.grpc.dummy_pb2.ManyResponse32] # type: ignore[assignment] + Method33: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest33, testproto.grpc.dummy_pb2.ManyResponse33] # type: ignore[assignment] + Method34: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest34, testproto.grpc.dummy_pb2.ManyResponse34] # type: ignore[assignment] + Method35: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest35, testproto.grpc.dummy_pb2.ManyResponse35] # type: ignore[assignment] + Method36: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest36, testproto.grpc.dummy_pb2.ManyResponse36] # type: ignore[assignment] + Method37: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest37, testproto.grpc.dummy_pb2.ManyResponse37] # type: ignore[assignment] + Method38: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest38, testproto.grpc.dummy_pb2.ManyResponse38] # type: ignore[assignment] + Method39: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest39, testproto.grpc.dummy_pb2.ManyResponse39] # type: ignore[assignment] + Method40: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest40, testproto.grpc.dummy_pb2.ManyResponse40] # type: ignore[assignment] + Method41: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest41, testproto.grpc.dummy_pb2.ManyResponse41] # type: ignore[assignment] + Method42: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest42, testproto.grpc.dummy_pb2.ManyResponse42] # type: ignore[assignment] + Method43: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest43, testproto.grpc.dummy_pb2.ManyResponse43] # type: ignore[assignment] + Method44: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest44, testproto.grpc.dummy_pb2.ManyResponse44] # type: ignore[assignment] + Method45: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest45, testproto.grpc.dummy_pb2.ManyResponse45] # type: ignore[assignment] + Method46: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest46, testproto.grpc.dummy_pb2.ManyResponse46] # type: ignore[assignment] + Method47: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest47, testproto.grpc.dummy_pb2.ManyResponse47] # type: ignore[assignment] + Method48: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest48, testproto.grpc.dummy_pb2.ManyResponse48] # type: ignore[assignment] + Method49: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest49, testproto.grpc.dummy_pb2.ManyResponse49] # type: ignore[assignment] + Method50: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest50, testproto.grpc.dummy_pb2.ManyResponse50] # type: ignore[assignment] + Method51: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest51, testproto.grpc.dummy_pb2.ManyResponse51] # type: ignore[assignment] + Method52: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest52, testproto.grpc.dummy_pb2.ManyResponse52] # type: ignore[assignment] + Method53: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest53, testproto.grpc.dummy_pb2.ManyResponse53] # type: ignore[assignment] + Method54: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest54, testproto.grpc.dummy_pb2.ManyResponse54] # type: ignore[assignment] + Method55: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest55, testproto.grpc.dummy_pb2.ManyResponse55] # type: ignore[assignment] + Method56: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest56, testproto.grpc.dummy_pb2.ManyResponse56] # type: ignore[assignment] + Method57: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest57, testproto.grpc.dummy_pb2.ManyResponse57] # type: ignore[assignment] + Method58: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest58, testproto.grpc.dummy_pb2.ManyResponse58] # type: ignore[assignment] + Method59: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest59, testproto.grpc.dummy_pb2.ManyResponse59] # type: ignore[assignment] + Method60: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest60, testproto.grpc.dummy_pb2.ManyResponse60] # type: ignore[assignment] + Method61: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest61, testproto.grpc.dummy_pb2.ManyResponse61] # type: ignore[assignment] + Method62: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest62, testproto.grpc.dummy_pb2.ManyResponse62] # type: ignore[assignment] + Method63: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest63, testproto.grpc.dummy_pb2.ManyResponse63] # type: ignore[assignment] + Method64: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest64, testproto.grpc.dummy_pb2.ManyResponse64] # type: ignore[assignment] + Method65: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest65, testproto.grpc.dummy_pb2.ManyResponse65] # type: ignore[assignment] + Method66: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest66, testproto.grpc.dummy_pb2.ManyResponse66] # type: ignore[assignment] + Method67: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest67, testproto.grpc.dummy_pb2.ManyResponse67] # type: ignore[assignment] + Method68: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest68, testproto.grpc.dummy_pb2.ManyResponse68] # type: ignore[assignment] + Method69: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest69, testproto.grpc.dummy_pb2.ManyResponse69] # type: ignore[assignment] + Method70: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest70, testproto.grpc.dummy_pb2.ManyResponse70] # type: ignore[assignment] + Method71: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest71, testproto.grpc.dummy_pb2.ManyResponse71] # type: ignore[assignment] + Method72: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest72, testproto.grpc.dummy_pb2.ManyResponse72] # type: ignore[assignment] + Method73: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest73, testproto.grpc.dummy_pb2.ManyResponse73] # type: ignore[assignment] + Method74: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest74, testproto.grpc.dummy_pb2.ManyResponse74] # type: ignore[assignment] + Method75: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest75, testproto.grpc.dummy_pb2.ManyResponse75] # type: ignore[assignment] + Method76: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest76, testproto.grpc.dummy_pb2.ManyResponse76] # type: ignore[assignment] + Method77: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest77, testproto.grpc.dummy_pb2.ManyResponse77] # type: ignore[assignment] + Method78: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest78, testproto.grpc.dummy_pb2.ManyResponse78] # type: ignore[assignment] + Method79: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest79, testproto.grpc.dummy_pb2.ManyResponse79] # type: ignore[assignment] + Method80: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest80, testproto.grpc.dummy_pb2.ManyResponse80] # type: ignore[assignment] + Method81: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest81, testproto.grpc.dummy_pb2.ManyResponse81] # type: ignore[assignment] + Method82: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest82, testproto.grpc.dummy_pb2.ManyResponse82] # type: ignore[assignment] + Method83: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest83, testproto.grpc.dummy_pb2.ManyResponse83] # type: ignore[assignment] + Method84: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest84, testproto.grpc.dummy_pb2.ManyResponse84] # type: ignore[assignment] + Method85: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest85, testproto.grpc.dummy_pb2.ManyResponse85] # type: ignore[assignment] + Method86: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest86, testproto.grpc.dummy_pb2.ManyResponse86] # type: ignore[assignment] + Method87: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest87, testproto.grpc.dummy_pb2.ManyResponse87] # type: ignore[assignment] + Method88: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest88, testproto.grpc.dummy_pb2.ManyResponse88] # type: ignore[assignment] + Method89: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest89, testproto.grpc.dummy_pb2.ManyResponse89] # type: ignore[assignment] + Method90: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest90, testproto.grpc.dummy_pb2.ManyResponse90] # type: ignore[assignment] + Method91: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest91, testproto.grpc.dummy_pb2.ManyResponse91] # type: ignore[assignment] + Method92: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest92, testproto.grpc.dummy_pb2.ManyResponse92] # type: ignore[assignment] + Method93: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest93, testproto.grpc.dummy_pb2.ManyResponse93] # type: ignore[assignment] + Method94: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest94, testproto.grpc.dummy_pb2.ManyResponse94] # type: ignore[assignment] + Method95: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest95, testproto.grpc.dummy_pb2.ManyResponse95] # type: ignore[assignment] + Method96: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest96, testproto.grpc.dummy_pb2.ManyResponse96] # type: ignore[assignment] + Method97: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest97, testproto.grpc.dummy_pb2.ManyResponse97] # type: ignore[assignment] + Method98: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest98, testproto.grpc.dummy_pb2.ManyResponse98] # type: ignore[assignment] + Method99: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest99, testproto.grpc.dummy_pb2.ManyResponse99] # type: ignore[assignment] + +class ManyRPCsServiceServicer: + def Method1( + self, + request: testproto.grpc.dummy_pb2.ManyRequest1, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse1, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse1]]: ... + + def Method2( + self, + request: testproto.grpc.dummy_pb2.ManyRequest2, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse2, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse2]]: ... + + def Method3( + self, + request: testproto.grpc.dummy_pb2.ManyRequest3, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse3, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse3]]: ... + + def Method4( + self, + request: testproto.grpc.dummy_pb2.ManyRequest4, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse4, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse4]]: ... + + def Method5( + self, + request: testproto.grpc.dummy_pb2.ManyRequest5, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse5, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse5]]: ... + + def Method6( + self, + request: testproto.grpc.dummy_pb2.ManyRequest6, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse6, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse6]]: ... + + def Method7( + self, + request: testproto.grpc.dummy_pb2.ManyRequest7, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse7, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse7]]: ... + + def Method8( + self, + request: testproto.grpc.dummy_pb2.ManyRequest8, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse8, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse8]]: ... + + def Method9( + self, + request: testproto.grpc.dummy_pb2.ManyRequest9, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse9, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse9]]: ... + + def Method10( + self, + request: testproto.grpc.dummy_pb2.ManyRequest10, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse10, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse10]]: ... + + def Method11( + self, + request: testproto.grpc.dummy_pb2.ManyRequest11, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse11, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse11]]: ... + + def Method12( + self, + request: testproto.grpc.dummy_pb2.ManyRequest12, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse12, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse12]]: ... + + def Method13( + self, + request: testproto.grpc.dummy_pb2.ManyRequest13, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse13, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse13]]: ... + + def Method14( + self, + request: testproto.grpc.dummy_pb2.ManyRequest14, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse14, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse14]]: ... + + def Method15( + self, + request: testproto.grpc.dummy_pb2.ManyRequest15, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse15, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse15]]: ... + + def Method16( + self, + request: testproto.grpc.dummy_pb2.ManyRequest16, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse16, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse16]]: ... + + def Method17( + self, + request: testproto.grpc.dummy_pb2.ManyRequest17, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse17, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse17]]: ... + + def Method18( + self, + request: testproto.grpc.dummy_pb2.ManyRequest18, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse18, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse18]]: ... + + def Method19( + self, + request: testproto.grpc.dummy_pb2.ManyRequest19, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse19, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse19]]: ... + + def Method20( + self, + request: testproto.grpc.dummy_pb2.ManyRequest20, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse20, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse20]]: ... + + def Method21( + self, + request: testproto.grpc.dummy_pb2.ManyRequest21, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse21, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse21]]: ... + + def Method22( + self, + request: testproto.grpc.dummy_pb2.ManyRequest22, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse22, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse22]]: ... + + def Method23( + self, + request: testproto.grpc.dummy_pb2.ManyRequest23, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse23, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse23]]: ... + + def Method24( + self, + request: testproto.grpc.dummy_pb2.ManyRequest24, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse24, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse24]]: ... + + def Method25( + self, + request: testproto.grpc.dummy_pb2.ManyRequest25, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse25, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse25]]: ... + + def Method26( + self, + request: testproto.grpc.dummy_pb2.ManyRequest26, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse26, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse26]]: ... + + def Method27( + self, + request: testproto.grpc.dummy_pb2.ManyRequest27, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse27, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse27]]: ... + + def Method28( + self, + request: testproto.grpc.dummy_pb2.ManyRequest28, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse28, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse28]]: ... + + def Method29( + self, + request: testproto.grpc.dummy_pb2.ManyRequest29, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse29, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse29]]: ... + + def Method30( + self, + request: testproto.grpc.dummy_pb2.ManyRequest30, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse30, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse30]]: ... + + def Method31( + self, + request: testproto.grpc.dummy_pb2.ManyRequest31, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse31, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse31]]: ... + + def Method32( + self, + request: testproto.grpc.dummy_pb2.ManyRequest32, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse32, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse32]]: ... + + def Method33( + self, + request: testproto.grpc.dummy_pb2.ManyRequest33, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse33, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse33]]: ... + + def Method34( + self, + request: testproto.grpc.dummy_pb2.ManyRequest34, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse34, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse34]]: ... + + def Method35( + self, + request: testproto.grpc.dummy_pb2.ManyRequest35, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse35, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse35]]: ... + + def Method36( + self, + request: testproto.grpc.dummy_pb2.ManyRequest36, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse36, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse36]]: ... + + def Method37( + self, + request: testproto.grpc.dummy_pb2.ManyRequest37, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse37, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse37]]: ... + + def Method38( + self, + request: testproto.grpc.dummy_pb2.ManyRequest38, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse38, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse38]]: ... + + def Method39( + self, + request: testproto.grpc.dummy_pb2.ManyRequest39, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse39, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse39]]: ... + + def Method40( + self, + request: testproto.grpc.dummy_pb2.ManyRequest40, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse40, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse40]]: ... + + def Method41( + self, + request: testproto.grpc.dummy_pb2.ManyRequest41, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse41, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse41]]: ... + + def Method42( + self, + request: testproto.grpc.dummy_pb2.ManyRequest42, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse42, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse42]]: ... + + def Method43( + self, + request: testproto.grpc.dummy_pb2.ManyRequest43, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse43, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse43]]: ... + + def Method44( + self, + request: testproto.grpc.dummy_pb2.ManyRequest44, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse44, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse44]]: ... + + def Method45( + self, + request: testproto.grpc.dummy_pb2.ManyRequest45, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse45, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse45]]: ... + + def Method46( + self, + request: testproto.grpc.dummy_pb2.ManyRequest46, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse46, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse46]]: ... + + def Method47( + self, + request: testproto.grpc.dummy_pb2.ManyRequest47, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse47, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse47]]: ... + + def Method48( + self, + request: testproto.grpc.dummy_pb2.ManyRequest48, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse48, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse48]]: ... + + def Method49( + self, + request: testproto.grpc.dummy_pb2.ManyRequest49, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse49, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse49]]: ... + + def Method50( + self, + request: testproto.grpc.dummy_pb2.ManyRequest50, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse50, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse50]]: ... + + def Method51( + self, + request: testproto.grpc.dummy_pb2.ManyRequest51, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse51, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse51]]: ... + + def Method52( + self, + request: testproto.grpc.dummy_pb2.ManyRequest52, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse52, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse52]]: ... + + def Method53( + self, + request: testproto.grpc.dummy_pb2.ManyRequest53, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse53, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse53]]: ... + + def Method54( + self, + request: testproto.grpc.dummy_pb2.ManyRequest54, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse54, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse54]]: ... + + def Method55( + self, + request: testproto.grpc.dummy_pb2.ManyRequest55, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse55, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse55]]: ... + + def Method56( + self, + request: testproto.grpc.dummy_pb2.ManyRequest56, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse56, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse56]]: ... + + def Method57( + self, + request: testproto.grpc.dummy_pb2.ManyRequest57, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse57, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse57]]: ... + + def Method58( + self, + request: testproto.grpc.dummy_pb2.ManyRequest58, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse58, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse58]]: ... + + def Method59( + self, + request: testproto.grpc.dummy_pb2.ManyRequest59, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse59, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse59]]: ... + + def Method60( + self, + request: testproto.grpc.dummy_pb2.ManyRequest60, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse60, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse60]]: ... + + def Method61( + self, + request: testproto.grpc.dummy_pb2.ManyRequest61, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse61, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse61]]: ... + + def Method62( + self, + request: testproto.grpc.dummy_pb2.ManyRequest62, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse62, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse62]]: ... + + def Method63( + self, + request: testproto.grpc.dummy_pb2.ManyRequest63, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse63, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse63]]: ... + + def Method64( + self, + request: testproto.grpc.dummy_pb2.ManyRequest64, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse64, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse64]]: ... + + def Method65( + self, + request: testproto.grpc.dummy_pb2.ManyRequest65, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse65, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse65]]: ... + + def Method66( + self, + request: testproto.grpc.dummy_pb2.ManyRequest66, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse66, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse66]]: ... + + def Method67( + self, + request: testproto.grpc.dummy_pb2.ManyRequest67, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse67, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse67]]: ... + + def Method68( + self, + request: testproto.grpc.dummy_pb2.ManyRequest68, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse68, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse68]]: ... + + def Method69( + self, + request: testproto.grpc.dummy_pb2.ManyRequest69, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse69, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse69]]: ... + + def Method70( + self, + request: testproto.grpc.dummy_pb2.ManyRequest70, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse70, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse70]]: ... + + def Method71( + self, + request: testproto.grpc.dummy_pb2.ManyRequest71, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse71, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse71]]: ... + + def Method72( + self, + request: testproto.grpc.dummy_pb2.ManyRequest72, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse72, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse72]]: ... + + def Method73( + self, + request: testproto.grpc.dummy_pb2.ManyRequest73, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse73, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse73]]: ... + + def Method74( + self, + request: testproto.grpc.dummy_pb2.ManyRequest74, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse74, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse74]]: ... + + def Method75( + self, + request: testproto.grpc.dummy_pb2.ManyRequest75, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse75, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse75]]: ... + + def Method76( + self, + request: testproto.grpc.dummy_pb2.ManyRequest76, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse76, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse76]]: ... + + def Method77( + self, + request: testproto.grpc.dummy_pb2.ManyRequest77, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse77, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse77]]: ... + + def Method78( + self, + request: testproto.grpc.dummy_pb2.ManyRequest78, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse78, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse78]]: ... + + def Method79( + self, + request: testproto.grpc.dummy_pb2.ManyRequest79, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse79, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse79]]: ... + + def Method80( + self, + request: testproto.grpc.dummy_pb2.ManyRequest80, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse80, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse80]]: ... + + def Method81( + self, + request: testproto.grpc.dummy_pb2.ManyRequest81, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse81, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse81]]: ... + + def Method82( + self, + request: testproto.grpc.dummy_pb2.ManyRequest82, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse82, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse82]]: ... + + def Method83( + self, + request: testproto.grpc.dummy_pb2.ManyRequest83, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse83, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse83]]: ... + + def Method84( + self, + request: testproto.grpc.dummy_pb2.ManyRequest84, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse84, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse84]]: ... + + def Method85( + self, + request: testproto.grpc.dummy_pb2.ManyRequest85, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse85, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse85]]: ... + + def Method86( + self, + request: testproto.grpc.dummy_pb2.ManyRequest86, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse86, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse86]]: ... + + def Method87( + self, + request: testproto.grpc.dummy_pb2.ManyRequest87, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse87, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse87]]: ... + + def Method88( + self, + request: testproto.grpc.dummy_pb2.ManyRequest88, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse88, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse88]]: ... + + def Method89( + self, + request: testproto.grpc.dummy_pb2.ManyRequest89, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse89, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse89]]: ... + + def Method90( + self, + request: testproto.grpc.dummy_pb2.ManyRequest90, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse90, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse90]]: ... + + def Method91( + self, + request: testproto.grpc.dummy_pb2.ManyRequest91, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse91, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse91]]: ... + + def Method92( + self, + request: testproto.grpc.dummy_pb2.ManyRequest92, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse92, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse92]]: ... + + def Method93( + self, + request: testproto.grpc.dummy_pb2.ManyRequest93, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse93, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse93]]: ... + + def Method94( + self, + request: testproto.grpc.dummy_pb2.ManyRequest94, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse94, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse94]]: ... + + def Method95( + self, + request: testproto.grpc.dummy_pb2.ManyRequest95, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse95, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse95]]: ... + + def Method96( + self, + request: testproto.grpc.dummy_pb2.ManyRequest96, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse96, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse96]]: ... + + def Method97( + self, + request: testproto.grpc.dummy_pb2.ManyRequest97, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse97, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse97]]: ... + + def Method98( + self, + request: testproto.grpc.dummy_pb2.ManyRequest98, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse98, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse98]]: ... + + def Method99( + self, + request: testproto.grpc.dummy_pb2.ManyRequest99, + context: _ServicerContext, + ) -> typing.Union[testproto.grpc.dummy_pb2.ManyResponse99, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse99]]: ... + +def add_ManyRPCsServiceServicer_to_server(servicer: ManyRPCsServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... + +class EmptyServiceStub: + @typing.overload + def __new__(cls, channel: grpc.Channel) -> EmptyServiceStub: ... + @typing.overload + def __new__(cls, channel: grpc.aio.Channel) -> EmptyServiceAsyncStub: ... + +@typing.type_check_only +class EmptyServiceAsyncStub(EmptyServiceStub): + def __init__(self, channel: grpc.aio.Channel) -> None: ... + +class EmptyServiceServicer: + ... + +def add_EmptyServiceServicer_to_server(servicer: EmptyServiceServicer, server: typing.Union[grpc.Server, grpc.aio.Server]) -> None: ... diff --git a/test/generated_concrete/testproto/grpc/import_pb2_grpc.pyi b/test/generated_concrete/testproto/grpc/import_pb2_grpc.pyi index c4710f1e..46f72e3c 100644 --- a/test/generated_concrete/testproto/grpc/import_pb2_grpc.pyi +++ b/test/generated_concrete/testproto/grpc/import_pb2_grpc.pyi @@ -8,15 +8,9 @@ import collections.abc import google.protobuf.empty_pb2 import grpc import grpc.aio -import sys import testproto.test_pb2 import typing -if sys.version_info >= (3, 13): - import typing as typing_extensions -else: - import typing_extensions - _T = typing.TypeVar("_T") class _MaybeAsyncIterator(collections.abc.AsyncIterator[_T], collections.abc.Iterator[_T], metaclass=abc.ABCMeta): ... @@ -26,111 +20,30 @@ class _ServicerContext(grpc.ServicerContext, grpc.aio.ServicerContext): # type: GRPC_GENERATED_VERSION: str GRPC_VERSION: str -_SimpleServiceUnaryUnaryType = typing_extensions.TypeVar( - '_SimpleServiceUnaryUnaryType', - grpc.UnaryUnaryMultiCallable[ - google.protobuf.empty_pb2.Empty, - testproto.test_pb2.Simple1, - ], - grpc.aio.UnaryUnaryMultiCallable[ - google.protobuf.empty_pb2.Empty, - testproto.test_pb2.Simple1, - ], - default=grpc.UnaryUnaryMultiCallable[ - google.protobuf.empty_pb2.Empty, - testproto.test_pb2.Simple1, - ], -) - -_SimpleServiceUnaryStreamType = typing_extensions.TypeVar( - '_SimpleServiceUnaryStreamType', - grpc.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - default=grpc.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], -) - -_SimpleServiceNoCommentType = typing_extensions.TypeVar( - '_SimpleServiceNoCommentType', - grpc.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - default=grpc.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], -) -class SimpleServiceStub(typing.Generic[_SimpleServiceUnaryUnaryType, _SimpleServiceUnaryStreamType, _SimpleServiceNoCommentType]): +class SimpleServiceStub: """SimpleService""" @typing.overload - def __init__(self: SimpleServiceStub[ - grpc.UnaryUnaryMultiCallable[ - google.protobuf.empty_pb2.Empty, - testproto.test_pb2.Simple1, - ], - grpc.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - grpc.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - ], channel: grpc.Channel) -> None: ... - + def __new__(cls, channel: grpc.Channel) -> SimpleServiceStub: ... @typing.overload - def __init__(self: SimpleServiceStub[ - grpc.aio.UnaryUnaryMultiCallable[ - google.protobuf.empty_pb2.Empty, - testproto.test_pb2.Simple1, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - ], channel: grpc.aio.Channel) -> None: ... - - UnaryUnary: _SimpleServiceUnaryUnaryType + def __new__(cls, channel: grpc.aio.Channel) -> SimpleServiceAsyncStub: ... + UnaryUnary: grpc.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, testproto.test_pb2.Simple1] """UnaryUnary""" - - UnaryStream: _SimpleServiceUnaryStreamType + UnaryStream: grpc.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] """UnaryStream""" + NoComment: grpc.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] - NoComment: _SimpleServiceNoCommentType +@typing.type_check_only +class SimpleServiceAsyncStub(SimpleServiceStub): + """SimpleService""" -SimpleServiceAsyncStub: typing_extensions.TypeAlias = SimpleServiceStub[ - grpc.aio.UnaryUnaryMultiCallable[ - google.protobuf.empty_pb2.Empty, - testproto.test_pb2.Simple1, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], - grpc.aio.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, - ], -] + def __init__(self, channel: grpc.aio.Channel) -> None: ... + UnaryUnary: grpc.aio.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, testproto.test_pb2.Simple1] # type: ignore[assignment] + """UnaryUnary""" + UnaryStream: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] # type: ignore[assignment] + """UnaryStream""" + NoComment: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] # type: ignore[assignment] class SimpleServiceServicer: """SimpleService""" diff --git a/test/generated_sync_only/testproto/__init__.py b/test/generated_sync_only/testproto/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated_sync_only/testproto/grpc/__init__.py b/test/generated_sync_only/testproto/grpc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test/generated_sync_only/testproto/grpc/dummy_pb2.pyi b/test/generated_sync_only/testproto/grpc/dummy_pb2.pyi deleted file mode 100644 index ce03f2a5..00000000 --- a/test/generated_sync_only/testproto/grpc/dummy_pb2.pyi +++ /dev/null @@ -1,68 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" - -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import sys -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -if sys.version_info >= (3, 13): - from warnings import deprecated -else: - from typing_extensions import deprecated - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class DummyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VALUE_FIELD_NUMBER: builtins.int - value: builtins.str - def __init__( - self, - *, - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... - -Global___DummyRequest: typing_extensions.TypeAlias = DummyRequest - -@typing.final -class DummyReply(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - VALUE_FIELD_NUMBER: builtins.int - value: builtins.str - def __init__( - self, - *, - value: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... - -Global___DummyReply: typing_extensions.TypeAlias = DummyReply - -@deprecated("""This message has been marked as deprecated using proto message options.""") -@typing.final -class DeprecatedRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - OLD_FIELD_FIELD_NUMBER: builtins.int - old_field: builtins.str - def __init__( - self, - *, - old_field: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["old_field", b"old_field"]) -> None: ... - -Global___DeprecatedRequest: typing_extensions.TypeAlias = DeprecatedRequest diff --git a/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi deleted file mode 100644 index 3af5ac96..00000000 --- a/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi +++ /dev/null @@ -1,137 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" - -import abc -import collections.abc -import grpc -import sys -import testproto.grpc.dummy_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - -if sys.version_info >= (3, 13): - from warnings import deprecated -else: - from typing_extensions import deprecated - - -GRPC_GENERATED_VERSION: str -GRPC_VERSION: str -_DummyServiceUnaryUnaryType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -_DummyServiceUnaryStreamType: typing_extensions.TypeAlias = grpc.UnaryStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -_DummyServiceStreamUnaryType: typing_extensions.TypeAlias = grpc.StreamUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -_DummyServiceStreamStreamType: typing_extensions.TypeAlias = grpc.StreamStreamMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -class DummyServiceStub: - """DummyService""" - - def __init__(self, channel: grpc.Channel) -> None: ... - - UnaryUnary: _DummyServiceUnaryUnaryType - """UnaryUnary""" - - UnaryStream: _DummyServiceUnaryStreamType - """UnaryStream""" - - StreamUnary: _DummyServiceStreamUnaryType - """StreamUnary""" - - StreamStream: _DummyServiceStreamStreamType - """StreamStream""" - -class DummyServiceServicer(metaclass=abc.ABCMeta): - """DummyService""" - - @abc.abstractmethod - def UnaryUnary( - self, - request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.ServicerContext, - ) -> testproto.grpc.dummy_pb2.DummyReply: - """UnaryUnary""" - - @abc.abstractmethod - def UnaryStream( - self, - request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.ServicerContext, - ) -> collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyReply]: - """UnaryStream""" - - @abc.abstractmethod - def StreamUnary( - self, - request_iterator: collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyRequest], - context: grpc.ServicerContext, - ) -> testproto.grpc.dummy_pb2.DummyReply: - """StreamUnary""" - - @abc.abstractmethod - def StreamStream( - self, - request_iterator: collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyRequest], - context: grpc.ServicerContext, - ) -> collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyReply]: - """StreamStream""" - -def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: grpc.Server) -> None: ... - -_DeprecatedServiceDeprecatedMethodType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DeprecatedRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -_DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ - testproto.grpc.dummy_pb2.DummyRequest, - testproto.grpc.dummy_pb2.DummyReply, -] -@deprecated("""This service is deprecated""") -class DeprecatedServiceStub: - """Marking the service as deprecated""" - - def __init__(self, channel: grpc.Channel) -> None: ... - - DeprecatedMethod: _DeprecatedServiceDeprecatedMethodType - """DeprecatedMethod""" - - DeprecatedMethodNotDeprecatedRequest: _DeprecatedServiceDeprecatedMethodNotDeprecatedRequestType - """DeprecatedMethodNotDeprecatedRequest""" - -@deprecated("""This service is deprecated""") -class DeprecatedServiceServicer(metaclass=abc.ABCMeta): - """Marking the service as deprecated""" - - @abc.abstractmethod - def DeprecatedMethod( - self, - request: testproto.grpc.dummy_pb2.DeprecatedRequest, - context: grpc.ServicerContext, - ) -> testproto.grpc.dummy_pb2.DummyReply: - """DeprecatedMethod""" - - @abc.abstractmethod - def DeprecatedMethodNotDeprecatedRequest( - self, - request: testproto.grpc.dummy_pb2.DummyRequest, - context: grpc.ServicerContext, - ) -> testproto.grpc.dummy_pb2.DummyReply: - """DeprecatedMethodNotDeprecatedRequest""" - -@deprecated("""This service is deprecated""") -def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: grpc.Server) -> None: ... diff --git a/test/generated_sync_only/testproto/grpc/import_pb2.pyi b/test/generated_sync_only/testproto/grpc/import_pb2.pyi deleted file mode 100644 index dd854e28..00000000 --- a/test/generated_sync_only/testproto/grpc/import_pb2.pyi +++ /dev/null @@ -1,8 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import google.protobuf.descriptor - -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi deleted file mode 100644 index f0fe54df..00000000 --- a/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi +++ /dev/null @@ -1,73 +0,0 @@ -""" -@generated by mypy-protobuf. Do not edit manually! -isort:skip_file -""" - -import abc -import collections.abc -import google.protobuf.empty_pb2 -import grpc -import sys -import testproto.test_pb2 -import typing - -if sys.version_info >= (3, 10): - import typing as typing_extensions -else: - import typing_extensions - - -GRPC_GENERATED_VERSION: str -GRPC_VERSION: str -_SimpleServiceUnaryUnaryType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ - google.protobuf.empty_pb2.Empty, - testproto.test_pb2.Simple1, -] -_SimpleServiceUnaryStreamType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, -] -_SimpleServiceNoCommentType: typing_extensions.TypeAlias = grpc.UnaryUnaryMultiCallable[ - testproto.test_pb2.Simple1, - google.protobuf.empty_pb2.Empty, -] -class SimpleServiceStub: - """SimpleService""" - - def __init__(self, channel: grpc.Channel) -> None: ... - - UnaryUnary: _SimpleServiceUnaryUnaryType - """UnaryUnary""" - - UnaryStream: _SimpleServiceUnaryStreamType - """UnaryStream""" - - NoComment: _SimpleServiceNoCommentType - -class SimpleServiceServicer(metaclass=abc.ABCMeta): - """SimpleService""" - - @abc.abstractmethod - def UnaryUnary( - self, - request: google.protobuf.empty_pb2.Empty, - context: grpc.ServicerContext, - ) -> testproto.test_pb2.Simple1: - """UnaryUnary""" - - @abc.abstractmethod - def UnaryStream( - self, - request: testproto.test_pb2.Simple1, - context: grpc.ServicerContext, - ) -> google.protobuf.empty_pb2.Empty: - """UnaryStream""" - - @abc.abstractmethod - def NoComment( - self, - request: testproto.test_pb2.Simple1, - context: grpc.ServicerContext, - ) -> google.protobuf.empty_pb2.Empty: ... - -def add_SimpleServiceServicer_to_server(servicer: SimpleServiceServicer, server: grpc.Server) -> None: ... From 9efdd417a8a88e9e2f96d6bf7ab519a92364a20b Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 22:33:42 +0000 Subject: [PATCH 13/23] Update Pyright config to exclude sync/async only test directories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove executionEnvironments entries for test/generated_sync_only and test/generated_async_only since these directories are being removed - Exclude test/async_only and test/sync_only directories from Pyright checking since they depend on generated files that are no longer committed to git 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- pyproject.toml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a15fcfac..31cb785f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,15 +33,13 @@ exclude = [ "**/*_pb2.py", "**/*_pb2_grpc.py", "test/test_concrete.py", + "test/async_only/**", + "test/sync_only/**", ] executionEnvironments = [ # Due to how upb is typed, we need to disable incompatible variable override checks { root = "test/generated", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, { root = "test/generated_concrete", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, - { root = "test/generated_sync_only", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, - { root = "test/generated_async_only", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, { root = "mypy_protobuf/extensions_pb2.pyi", reportIncompatibleVariableOverride = "none" }, - { root = "test/async_only", extraPaths = ["test/generated_async_only"] }, - { root = "test/sync_only", extraPaths = ["test/generated_sync_only"] }, ] From c3084467df1002757938adbb3bee7982b47c15f9 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 22:40:39 +0000 Subject: [PATCH 14/23] Create sync/async only directories before generating files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add mkdir -p commands to create test/generated_sync_only and test/generated_async_only directories before protoc tries to write files into them. These directories are no longer committed to git and need to be created during test runs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- run_test.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/run_test.sh b/run_test.sh index 8efc3cb6..d03b5ca2 100755 --- a/run_test.sh +++ b/run_test.sh @@ -136,9 +136,11 @@ MYPY_PROTOBUF_VENV=venv_$PY_VER_MYPY_PROTOBUF find proto/testproto/grpc -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=generate_concrete_servicer_stubs:test/generated_concrete # Generate with sync_only stubs for testing + mkdir -p test/generated_sync_only find proto/testproto -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_sync:test/generated_sync_only --mypy_out=test/generated_sync_only --python_out=test/generated_sync_only # Generate with async_only stubs for testing + mkdir -p test/generated_async_only find proto/testproto -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --mypy_grpc_out=only_async:test/generated_async_only --mypy_out=test/generated_async_only --python_out=test/generated_async_only if [[ -n $VALIDATE ]] && ! diff <(echo "$SHA_BEFORE") <(find test/generated -name "*.pyi" -print0 | xargs -0 sha1sum); then From 3f57edc99d02fbafcbbcb3b29443ac119f82fd69 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 22:44:50 +0000 Subject: [PATCH 15/23] Add --report-deprecated-as-note to sync/async only mypy checks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sync_only and async_only mypy checks were missing the --report-deprecated-as-note flag, causing deprecation warnings to be treated as errors. This flag is already used for the concrete module checks and should also be used for these tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- run_test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/run_test.sh b/run_test.sh index d03b5ca2..e5d14309 100755 --- a/run_test.sh +++ b/run_test.sh @@ -173,11 +173,11 @@ for PY_VER in $PY_VER_UNIT_TESTS; do # Run sync_only mypy SYNC_ONLY_MODULES=( -m test.sync_only.test_sync_only ) - MYPYPATH=$MYPYPATH:test/generated_sync_only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${SYNC_ONLY_MODULES[@]}" + MYPYPATH=$MYPYPATH:test/generated_sync_only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --report-deprecated-as-note --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${SYNC_ONLY_MODULES[@]}" # Run async_only mypy ASYNC_ONLY_MODULES=( -m test.async_only.test_async_only ) - MYPYPATH=$MYPYPATH:test/generated_async_only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${ASYNC_ONLY_MODULES[@]}" + MYPYPATH=$MYPYPATH:test/generated_async_only mypy ${CUSTOM_TYPESHED_DIR_ARG:+"$CUSTOM_TYPESHED_DIR_ARG"} --report-deprecated-as-note --python-executable="$UNIT_TESTS_VENV"/bin/python --python-version="$PY_VER_MYPY_TARGET" "${ASYNC_ONLY_MODULES[@]}" export MYPYPATH=$MYPYPATH:test/generated From efc99807c176c049c74b396e9723b41e3670308b Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 22:49:53 +0000 Subject: [PATCH 16/23] Fix async_only test to use DummyServiceAsyncStub MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When generating with the only_async flag, the stub class is named DummyServiceAsyncStub, not DummyServiceStub. Update the test to use the correct async stub class name. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- test/async_only/test_async_only.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/async_only/test_async_only.py b/test/async_only/test_async_only.py index 5dc5b22c..7418a240 100644 --- a/test/async_only/test_async_only.py +++ b/test/async_only/test_async_only.py @@ -27,5 +27,5 @@ async def UnaryUnary( async def noop() -> None: """Don't actually run anything; this is just for type-checking.""" - stub = dummy_pb2_grpc.DummyServiceStub(channel=grpc.aio.insecure_channel("localhost:50051")) + stub = dummy_pb2_grpc.DummyServiceAsyncStub(channel=grpc.aio.insecure_channel("localhost:50051")) await stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) From 9081493bf550310de0189e53ab5dc8117fe46bf2 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 23:05:43 +0000 Subject: [PATCH 17/23] Address review comments: error handling and simplify server type logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add error checking when both only_sync and only_async options are specified - Simplify make_server_type() logic using direct comparisons instead of if/elif chain - Check in generated sync_only and async_only test files so CI can run tests - Add __init__.py files to generated sync/async directories for proper package structure Typed constructors were already present in the generated code. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- mypy_protobuf/main.py | 27 +- .../testproto/Capitalized/Capitalized_pb2.pyi | 71 + .../Capitalized/Capitalized_pb2_grpc.pyi | 10 + .../testproto/Capitalized/__init__.py | 0 .../testproto/__init__.py | 0 .../testproto/comment_special_chars_pb2.pyi | 83 + .../comment_special_chars_pb2_grpc.pyi | 10 + .../testproto/dot/__init__.py | 0 .../testproto/dot/com/__init__.py | 0 .../testproto/dot/com/test_pb2.pyi | 33 + .../testproto/dot/com/test_pb2_grpc.pyi | 10 + .../testproto/edition2024_pb2.pyi | 72 + .../testproto/edition2024_pb2_grpc.pyi | 10 + .../testproto/grpc/__init__.py | 0 .../testproto/grpc/dummy_pb2.pyi | 2051 +++++++++++++++++ .../testproto/grpc/dummy_pb2_grpc.pyi | 909 ++++++++ .../testproto/grpc/import_pb2.pyi | 8 + .../testproto/grpc/import_pb2_grpc.pyi | 53 + .../testproto/inner/__init__.py | 0 .../testproto/inner/inner_pb2.pyi | 34 + .../testproto/inner/inner_pb2_grpc.pyi | 10 + .../testproto/nested/__init__.py | 0 .../testproto/nested/nested_pb2.pyi | 98 + .../testproto/nested/nested_pb2_grpc.pyi | 10 + .../testproto/nopackage_pb2.pyi | 54 + .../testproto/nopackage_pb2_grpc.pyi | 10 + .../testproto/readme_enum_pb2.pyi | 32 + .../testproto/readme_enum_pb2_grpc.pyi | 10 + .../testproto/reexport_pb2.pyi | 19 + .../testproto/reexport_pb2_grpc.pyi | 21 + .../testproto/test3_pb2.pyi | 222 ++ .../testproto/test3_pb2_grpc.pyi | 10 + .../testproto/test_extensions2_pb2.pyi | 39 + .../testproto/test_extensions2_pb2_grpc.pyi | 10 + .../testproto/test_extensions3_pb2.pyi | 46 + .../testproto/test_extensions3_pb2_grpc.pyi | 10 + .../test_no_generic_services_pb2.pyi | 35 + .../test_no_generic_services_pb2_grpc.pyi | 28 + .../testproto/test_pb2.pyi | 465 ++++ .../testproto/test_pb2_grpc.pyi | 44 + .../testproto/Capitalized/Capitalized_pb2.pyi | 71 + .../Capitalized/Capitalized_pb2_grpc.pyi | 10 + .../testproto/Capitalized/__init__.py | 0 .../generated_sync_only/testproto/__init__.py | 0 .../testproto/comment_special_chars_pb2.pyi | 83 + .../comment_special_chars_pb2_grpc.pyi | 10 + .../testproto/dot/__init__.py | 0 .../testproto/dot/com/__init__.py | 0 .../testproto/dot/com/test_pb2.pyi | 33 + .../testproto/dot/com/test_pb2_grpc.pyi | 10 + .../testproto/edition2024_pb2.pyi | 72 + .../testproto/edition2024_pb2_grpc.pyi | 10 + .../testproto/grpc/__init__.py | 0 .../testproto/grpc/dummy_pb2.pyi | 2051 +++++++++++++++++ .../testproto/grpc/dummy_pb2_grpc.pyi | 909 ++++++++ .../testproto/grpc/import_pb2.pyi | 8 + .../testproto/grpc/import_pb2_grpc.pyi | 53 + .../testproto/inner/__init__.py | 0 .../testproto/inner/inner_pb2.pyi | 34 + .../testproto/inner/inner_pb2_grpc.pyi | 10 + .../testproto/nested/__init__.py | 0 .../testproto/nested/nested_pb2.pyi | 98 + .../testproto/nested/nested_pb2_grpc.pyi | 10 + .../testproto/nopackage_pb2.pyi | 54 + .../testproto/nopackage_pb2_grpc.pyi | 10 + .../testproto/readme_enum_pb2.pyi | 32 + .../testproto/readme_enum_pb2_grpc.pyi | 10 + .../testproto/reexport_pb2.pyi | 19 + .../testproto/reexport_pb2_grpc.pyi | 21 + .../testproto/test3_pb2.pyi | 222 ++ .../testproto/test3_pb2_grpc.pyi | 10 + .../testproto/test_extensions2_pb2.pyi | 39 + .../testproto/test_extensions2_pb2_grpc.pyi | 10 + .../testproto/test_extensions3_pb2.pyi | 46 + .../testproto/test_extensions3_pb2_grpc.pyi | 10 + .../test_no_generic_services_pb2.pyi | 35 + .../test_no_generic_services_pb2_grpc.pyi | 28 + .../testproto/test_pb2.pyi | 465 ++++ .../testproto/test_pb2_grpc.pyi | 44 + 79 files changed, 9069 insertions(+), 12 deletions(-) create mode 100644 test/generated_async_only/testproto/Capitalized/Capitalized_pb2.pyi create mode 100644 test/generated_async_only/testproto/Capitalized/Capitalized_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/Capitalized/__init__.py create mode 100644 test/generated_async_only/testproto/__init__.py create mode 100644 test/generated_async_only/testproto/comment_special_chars_pb2.pyi create mode 100644 test/generated_async_only/testproto/comment_special_chars_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/dot/__init__.py create mode 100644 test/generated_async_only/testproto/dot/com/__init__.py create mode 100644 test/generated_async_only/testproto/dot/com/test_pb2.pyi create mode 100644 test/generated_async_only/testproto/dot/com/test_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/edition2024_pb2.pyi create mode 100644 test/generated_async_only/testproto/edition2024_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/grpc/__init__.py create mode 100644 test/generated_async_only/testproto/grpc/dummy_pb2.pyi create mode 100644 test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/grpc/import_pb2.pyi create mode 100644 test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/inner/__init__.py create mode 100644 test/generated_async_only/testproto/inner/inner_pb2.pyi create mode 100644 test/generated_async_only/testproto/inner/inner_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/nested/__init__.py create mode 100644 test/generated_async_only/testproto/nested/nested_pb2.pyi create mode 100644 test/generated_async_only/testproto/nested/nested_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/nopackage_pb2.pyi create mode 100644 test/generated_async_only/testproto/nopackage_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/readme_enum_pb2.pyi create mode 100644 test/generated_async_only/testproto/readme_enum_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/reexport_pb2.pyi create mode 100644 test/generated_async_only/testproto/reexport_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/test3_pb2.pyi create mode 100644 test/generated_async_only/testproto/test3_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/test_extensions2_pb2.pyi create mode 100644 test/generated_async_only/testproto/test_extensions2_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/test_extensions3_pb2.pyi create mode 100644 test/generated_async_only/testproto/test_extensions3_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/test_no_generic_services_pb2.pyi create mode 100644 test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi create mode 100644 test/generated_async_only/testproto/test_pb2.pyi create mode 100644 test/generated_async_only/testproto/test_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/Capitalized/Capitalized_pb2.pyi create mode 100644 test/generated_sync_only/testproto/Capitalized/Capitalized_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/Capitalized/__init__.py create mode 100644 test/generated_sync_only/testproto/__init__.py create mode 100644 test/generated_sync_only/testproto/comment_special_chars_pb2.pyi create mode 100644 test/generated_sync_only/testproto/comment_special_chars_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/dot/__init__.py create mode 100644 test/generated_sync_only/testproto/dot/com/__init__.py create mode 100644 test/generated_sync_only/testproto/dot/com/test_pb2.pyi create mode 100644 test/generated_sync_only/testproto/dot/com/test_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/edition2024_pb2.pyi create mode 100644 test/generated_sync_only/testproto/edition2024_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/grpc/__init__.py create mode 100644 test/generated_sync_only/testproto/grpc/dummy_pb2.pyi create mode 100644 test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/grpc/import_pb2.pyi create mode 100644 test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/inner/__init__.py create mode 100644 test/generated_sync_only/testproto/inner/inner_pb2.pyi create mode 100644 test/generated_sync_only/testproto/inner/inner_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/nested/__init__.py create mode 100644 test/generated_sync_only/testproto/nested/nested_pb2.pyi create mode 100644 test/generated_sync_only/testproto/nested/nested_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/nopackage_pb2.pyi create mode 100644 test/generated_sync_only/testproto/nopackage_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/readme_enum_pb2.pyi create mode 100644 test/generated_sync_only/testproto/readme_enum_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/reexport_pb2.pyi create mode 100644 test/generated_sync_only/testproto/reexport_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/test3_pb2.pyi create mode 100644 test/generated_sync_only/testproto/test3_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/test_extensions2_pb2.pyi create mode 100644 test/generated_sync_only/testproto/test_extensions2_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/test_extensions3_pb2.pyi create mode 100644 test/generated_sync_only/testproto/test_extensions3_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/test_no_generic_services_pb2.pyi create mode 100644 test/generated_sync_only/testproto/test_no_generic_services_pb2_grpc.pyi create mode 100644 test/generated_sync_only/testproto/test_pb2.pyi create mode 100644 test/generated_sync_only/testproto/test_pb2_grpc.pyi diff --git a/mypy_protobuf/main.py b/mypy_protobuf/main.py index 09da06c4..4d509e7c 100644 --- a/mypy_protobuf/main.py +++ b/mypy_protobuf/main.py @@ -144,9 +144,14 @@ class GRPCType(enum.Enum): @classmethod def from_parameter(cls, parameter: str) -> GRPCType: - if "only_sync" in parameter: + has_sync = "only_sync" in parameter + has_async = "only_async" in parameter + + if has_sync and has_async: + raise ValueError("Cannot specify both only_sync and only_async") + elif has_sync: return GRPCType.SYNC - elif "only_async" in parameter: + elif has_async: return GRPCType.ASYNC else: return GRPCType.BOTH @@ -927,19 +932,17 @@ def write_grpc_methods(self, service: d.ServiceDescriptorProto, scl_prefix: Sour wl("") def make_server_type(self) -> str: - server = aserver = None - if self.grpc_type.supports_sync: - server = self._import("grpc", "Server") - if self.grpc_type.supports_async: - aserver = self._import("grpc.aio", "Server") + server = self._import("grpc", "Server") + aserver = self._import("grpc.aio", "Server") - if server and aserver: + if self.grpc_type == GRPCType.BOTH: return f"{self._import('typing', 'Union')}[{server}, {aserver}]" - elif server: - return server - elif aserver: + elif self.grpc_type == GRPCType.ASYNC: return aserver - raise RuntimeError(f"Impossible, {self.grpc_type=}") # pragma: no cover + elif self.grpc_type == GRPCType.SYNC: + return server + else: + raise RuntimeError(f"Impossible, {self.grpc_type=}") # pragma: no cover def write_grpc_services( self, diff --git a/test/generated_async_only/testproto/Capitalized/Capitalized_pb2.pyi b/test/generated_async_only/testproto/Capitalized/Capitalized_pb2.pyi new file mode 100644 index 00000000..0bae1c93 --- /dev/null +++ b/test/generated_async_only/testproto/Capitalized/Capitalized_pb2.pyi @@ -0,0 +1,71 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class lower(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: builtins.int + def __init__( + self, + *, + a: builtins.int = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a", b"a"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___lower: typing_extensions.TypeAlias = lower + +@typing.final +class Upper(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOWER_FIELD_NUMBER: builtins.int + @property + def Lower(self) -> Global___lower: ... + def __init__( + self, + *, + Lower: Global___lower | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["Lower", b"Lower"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["Lower", b"Lower"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Upper: typing_extensions.TypeAlias = Upper + +@typing.final +class lower2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + UPPER_FIELD_NUMBER: builtins.int + @property + def upper(self) -> Global___Upper: ... + def __init__( + self, + *, + upper: Global___Upper | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["upper", b"upper"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["upper", b"upper"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___lower2: typing_extensions.TypeAlias = lower2 diff --git a/test/generated_async_only/testproto/Capitalized/Capitalized_pb2_grpc.pyi b/test/generated_async_only/testproto/Capitalized/Capitalized_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/Capitalized/Capitalized_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/Capitalized/__init__.py b/test/generated_async_only/testproto/Capitalized/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_async_only/testproto/__init__.py b/test/generated_async_only/testproto/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_async_only/testproto/comment_special_chars_pb2.pyi b/test/generated_async_only/testproto/comment_special_chars_pb2.pyi new file mode 100644 index 00000000..a0f6baf3 --- /dev/null +++ b/test/generated_async_only/testproto/comment_special_chars_pb2.pyi @@ -0,0 +1,83 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Test(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + B_FIELD_NUMBER: builtins.int + C_FIELD_NUMBER: builtins.int + D_FIELD_NUMBER: builtins.int + E_FIELD_NUMBER: builtins.int + F_FIELD_NUMBER: builtins.int + G_FIELD_NUMBER: builtins.int + H_FIELD_NUMBER: builtins.int + I_FIELD_NUMBER: builtins.int + J_FIELD_NUMBER: builtins.int + K_FIELD_NUMBER: builtins.int + a: builtins.str + """Ending with " """ + b: builtins.str + """Ending with "" """ + c: builtins.str + """Ending with \"\"\" """ + d: builtins.str + """Ending with \\ """ + e: builtins.str + """Containing bad escape: \\x""" + f: builtins.str + """Containing \"\"\"" quadruple""" + g: builtins.str + """Containing \"\"\""" quintuple""" + h: builtins.str + """Containing \"\"\"\"\"\" sextuple""" + i: builtins.str + """\"\"\" Multiple \"\"\" triples \"\"\" """ + j: builtins.str + """"quotes" can be a problem in comments. + \"\"\"Triple quotes\"\"\" just as well + """ + k: builtins.str + """\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" + " " + " Super Duper comments with surrounding edges! " + " " + " Pay attention to me!!!! " + " " + \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" + """ + def __init__( + self, + *, + a: builtins.str = ..., + b: builtins.str = ..., + c: builtins.str = ..., + d: builtins.str = ..., + e: builtins.str = ..., + f: builtins.str = ..., + g: builtins.str = ..., + h: builtins.str = ..., + i: builtins.str = ..., + j: builtins.str = ..., + k: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.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"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Test: typing_extensions.TypeAlias = Test diff --git a/test/generated_async_only/testproto/comment_special_chars_pb2_grpc.pyi b/test/generated_async_only/testproto/comment_special_chars_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/comment_special_chars_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/dot/__init__.py b/test/generated_async_only/testproto/dot/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_async_only/testproto/dot/com/__init__.py b/test/generated_async_only/testproto/dot/com/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_async_only/testproto/dot/com/test_pb2.pyi b/test/generated_async_only/testproto/dot/com/test_pb2.pyi new file mode 100644 index 00000000..a6d2ab11 --- /dev/null +++ b/test/generated_async_only/testproto/dot/com/test_pb2.pyi @@ -0,0 +1,33 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class TestMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FOO_FIELD_NUMBER: builtins.int + foo: builtins.str + def __init__( + self, + *, + foo: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["foo", b"foo"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___TestMessage: typing_extensions.TypeAlias = TestMessage diff --git a/test/generated_async_only/testproto/dot/com/test_pb2_grpc.pyi b/test/generated_async_only/testproto/dot/com/test_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/dot/com/test_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/edition2024_pb2.pyi b/test/generated_async_only/testproto/edition2024_pb2.pyi new file mode 100644 index 00000000..02e9c3fb --- /dev/null +++ b/test/generated_async_only/testproto/edition2024_pb2.pyi @@ -0,0 +1,72 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Edition version of proto2 file""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Editions2024SubMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + THING_FIELD_NUMBER: builtins.int + thing: builtins.str + def __init__( + self, + *, + thing: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["thing", b"thing"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["thing", b"thing"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Editions2024SubMessage: typing_extensions.TypeAlias = Editions2024SubMessage + +@typing.final +class Editions2024Test(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LEGACY_FIELD_NUMBER: builtins.int + EXPLICIT_SINGULAR_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_FIELD_NUMBER: builtins.int + IMPLICIT_SINGULAR_FIELD_NUMBER: builtins.int + DEFAULT_SINGULAR_FIELD_NUMBER: builtins.int + legacy: builtins.str + """Expect to be always set""" + explicit_singular: builtins.str + """Expect HasField generated""" + implicit_singular: builtins.str + """Expect implicit field presence, no HasField generated""" + default_singular: builtins.str + """Not set, should default to EXPLICIT""" + @property + def message_field(self) -> Global___Editions2024SubMessage: + """Expect HasField generated?""" + + def __init__( + self, + *, + legacy: builtins.str | None = ..., + explicit_singular: builtins.str | None = ..., + message_field: Global___Editions2024SubMessage | None = ..., + implicit_singular: builtins.str = ..., + default_singular: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Editions2024Test: typing_extensions.TypeAlias = Editions2024Test diff --git a/test/generated_async_only/testproto/edition2024_pb2_grpc.pyi b/test/generated_async_only/testproto/edition2024_pb2_grpc.pyi new file mode 100644 index 00000000..af6f0d3a --- /dev/null +++ b/test/generated_async_only/testproto/edition2024_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Edition version of proto2 file""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/grpc/__init__.py b/test/generated_async_only/testproto/grpc/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2.pyi new file mode 100644 index 00000000..94987554 --- /dev/null +++ b/test/generated_async_only/testproto/grpc/dummy_pb2.pyi @@ -0,0 +1,2051 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class DummyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUE_FIELD_NUMBER: builtins.int + value: builtins.str + def __init__( + self, + *, + value: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DummyRequest: typing_extensions.TypeAlias = DummyRequest + +@typing.final +class DummyReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUE_FIELD_NUMBER: builtins.int + value: builtins.str + def __init__( + self, + *, + value: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DummyReply: typing_extensions.TypeAlias = DummyReply + +@deprecated("""This message has been marked as deprecated using proto message options.""") +@typing.final +class DeprecatedRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + OLD_FIELD_FIELD_NUMBER: builtins.int + old_field: builtins.str + def __init__( + self, + *, + old_field: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["old_field", b"old_field"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DeprecatedRequest: typing_extensions.TypeAlias = DeprecatedRequest + +@typing.final +class ManyRequest1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest1: typing_extensions.TypeAlias = ManyRequest1 + +@typing.final +class ManyResponse1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse1: typing_extensions.TypeAlias = ManyResponse1 + +@typing.final +class ManyRequest2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest2: typing_extensions.TypeAlias = ManyRequest2 + +@typing.final +class ManyResponse2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse2: typing_extensions.TypeAlias = ManyResponse2 + +@typing.final +class ManyRequest3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest3: typing_extensions.TypeAlias = ManyRequest3 + +@typing.final +class ManyResponse3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse3: typing_extensions.TypeAlias = ManyResponse3 + +@typing.final +class ManyRequest4(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest4: typing_extensions.TypeAlias = ManyRequest4 + +@typing.final +class ManyResponse4(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse4: typing_extensions.TypeAlias = ManyResponse4 + +@typing.final +class ManyRequest5(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest5: typing_extensions.TypeAlias = ManyRequest5 + +@typing.final +class ManyResponse5(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse5: typing_extensions.TypeAlias = ManyResponse5 + +@typing.final +class ManyRequest6(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest6: typing_extensions.TypeAlias = ManyRequest6 + +@typing.final +class ManyResponse6(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse6: typing_extensions.TypeAlias = ManyResponse6 + +@typing.final +class ManyRequest7(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest7: typing_extensions.TypeAlias = ManyRequest7 + +@typing.final +class ManyResponse7(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse7: typing_extensions.TypeAlias = ManyResponse7 + +@typing.final +class ManyRequest8(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest8: typing_extensions.TypeAlias = ManyRequest8 + +@typing.final +class ManyResponse8(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse8: typing_extensions.TypeAlias = ManyResponse8 + +@typing.final +class ManyRequest9(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest9: typing_extensions.TypeAlias = ManyRequest9 + +@typing.final +class ManyResponse9(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse9: typing_extensions.TypeAlias = ManyResponse9 + +@typing.final +class ManyRequest10(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest10: typing_extensions.TypeAlias = ManyRequest10 + +@typing.final +class ManyResponse10(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse10: typing_extensions.TypeAlias = ManyResponse10 + +@typing.final +class ManyRequest11(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest11: typing_extensions.TypeAlias = ManyRequest11 + +@typing.final +class ManyResponse11(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse11: typing_extensions.TypeAlias = ManyResponse11 + +@typing.final +class ManyRequest12(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest12: typing_extensions.TypeAlias = ManyRequest12 + +@typing.final +class ManyResponse12(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse12: typing_extensions.TypeAlias = ManyResponse12 + +@typing.final +class ManyRequest13(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest13: typing_extensions.TypeAlias = ManyRequest13 + +@typing.final +class ManyResponse13(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse13: typing_extensions.TypeAlias = ManyResponse13 + +@typing.final +class ManyRequest14(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest14: typing_extensions.TypeAlias = ManyRequest14 + +@typing.final +class ManyResponse14(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse14: typing_extensions.TypeAlias = ManyResponse14 + +@typing.final +class ManyRequest15(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest15: typing_extensions.TypeAlias = ManyRequest15 + +@typing.final +class ManyResponse15(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse15: typing_extensions.TypeAlias = ManyResponse15 + +@typing.final +class ManyRequest16(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest16: typing_extensions.TypeAlias = ManyRequest16 + +@typing.final +class ManyResponse16(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse16: typing_extensions.TypeAlias = ManyResponse16 + +@typing.final +class ManyRequest17(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest17: typing_extensions.TypeAlias = ManyRequest17 + +@typing.final +class ManyResponse17(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse17: typing_extensions.TypeAlias = ManyResponse17 + +@typing.final +class ManyRequest18(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest18: typing_extensions.TypeAlias = ManyRequest18 + +@typing.final +class ManyResponse18(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse18: typing_extensions.TypeAlias = ManyResponse18 + +@typing.final +class ManyRequest19(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest19: typing_extensions.TypeAlias = ManyRequest19 + +@typing.final +class ManyResponse19(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse19: typing_extensions.TypeAlias = ManyResponse19 + +@typing.final +class ManyRequest20(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest20: typing_extensions.TypeAlias = ManyRequest20 + +@typing.final +class ManyResponse20(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse20: typing_extensions.TypeAlias = ManyResponse20 + +@typing.final +class ManyRequest21(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest21: typing_extensions.TypeAlias = ManyRequest21 + +@typing.final +class ManyResponse21(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse21: typing_extensions.TypeAlias = ManyResponse21 + +@typing.final +class ManyRequest22(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest22: typing_extensions.TypeAlias = ManyRequest22 + +@typing.final +class ManyResponse22(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse22: typing_extensions.TypeAlias = ManyResponse22 + +@typing.final +class ManyRequest23(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest23: typing_extensions.TypeAlias = ManyRequest23 + +@typing.final +class ManyResponse23(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse23: typing_extensions.TypeAlias = ManyResponse23 + +@typing.final +class ManyRequest24(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest24: typing_extensions.TypeAlias = ManyRequest24 + +@typing.final +class ManyResponse24(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse24: typing_extensions.TypeAlias = ManyResponse24 + +@typing.final +class ManyRequest25(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest25: typing_extensions.TypeAlias = ManyRequest25 + +@typing.final +class ManyResponse25(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse25: typing_extensions.TypeAlias = ManyResponse25 + +@typing.final +class ManyRequest26(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest26: typing_extensions.TypeAlias = ManyRequest26 + +@typing.final +class ManyResponse26(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse26: typing_extensions.TypeAlias = ManyResponse26 + +@typing.final +class ManyRequest27(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest27: typing_extensions.TypeAlias = ManyRequest27 + +@typing.final +class ManyResponse27(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse27: typing_extensions.TypeAlias = ManyResponse27 + +@typing.final +class ManyRequest28(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest28: typing_extensions.TypeAlias = ManyRequest28 + +@typing.final +class ManyResponse28(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse28: typing_extensions.TypeAlias = ManyResponse28 + +@typing.final +class ManyRequest29(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest29: typing_extensions.TypeAlias = ManyRequest29 + +@typing.final +class ManyResponse29(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse29: typing_extensions.TypeAlias = ManyResponse29 + +@typing.final +class ManyRequest30(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest30: typing_extensions.TypeAlias = ManyRequest30 + +@typing.final +class ManyResponse30(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse30: typing_extensions.TypeAlias = ManyResponse30 + +@typing.final +class ManyRequest31(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest31: typing_extensions.TypeAlias = ManyRequest31 + +@typing.final +class ManyResponse31(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse31: typing_extensions.TypeAlias = ManyResponse31 + +@typing.final +class ManyRequest32(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest32: typing_extensions.TypeAlias = ManyRequest32 + +@typing.final +class ManyResponse32(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse32: typing_extensions.TypeAlias = ManyResponse32 + +@typing.final +class ManyRequest33(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest33: typing_extensions.TypeAlias = ManyRequest33 + +@typing.final +class ManyResponse33(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse33: typing_extensions.TypeAlias = ManyResponse33 + +@typing.final +class ManyRequest34(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest34: typing_extensions.TypeAlias = ManyRequest34 + +@typing.final +class ManyResponse34(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse34: typing_extensions.TypeAlias = ManyResponse34 + +@typing.final +class ManyRequest35(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest35: typing_extensions.TypeAlias = ManyRequest35 + +@typing.final +class ManyResponse35(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse35: typing_extensions.TypeAlias = ManyResponse35 + +@typing.final +class ManyRequest36(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest36: typing_extensions.TypeAlias = ManyRequest36 + +@typing.final +class ManyResponse36(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse36: typing_extensions.TypeAlias = ManyResponse36 + +@typing.final +class ManyRequest37(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest37: typing_extensions.TypeAlias = ManyRequest37 + +@typing.final +class ManyResponse37(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse37: typing_extensions.TypeAlias = ManyResponse37 + +@typing.final +class ManyRequest38(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest38: typing_extensions.TypeAlias = ManyRequest38 + +@typing.final +class ManyResponse38(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse38: typing_extensions.TypeAlias = ManyResponse38 + +@typing.final +class ManyRequest39(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest39: typing_extensions.TypeAlias = ManyRequest39 + +@typing.final +class ManyResponse39(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse39: typing_extensions.TypeAlias = ManyResponse39 + +@typing.final +class ManyRequest40(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest40: typing_extensions.TypeAlias = ManyRequest40 + +@typing.final +class ManyResponse40(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse40: typing_extensions.TypeAlias = ManyResponse40 + +@typing.final +class ManyRequest41(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest41: typing_extensions.TypeAlias = ManyRequest41 + +@typing.final +class ManyResponse41(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse41: typing_extensions.TypeAlias = ManyResponse41 + +@typing.final +class ManyRequest42(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest42: typing_extensions.TypeAlias = ManyRequest42 + +@typing.final +class ManyResponse42(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse42: typing_extensions.TypeAlias = ManyResponse42 + +@typing.final +class ManyRequest43(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest43: typing_extensions.TypeAlias = ManyRequest43 + +@typing.final +class ManyResponse43(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse43: typing_extensions.TypeAlias = ManyResponse43 + +@typing.final +class ManyRequest44(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest44: typing_extensions.TypeAlias = ManyRequest44 + +@typing.final +class ManyResponse44(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse44: typing_extensions.TypeAlias = ManyResponse44 + +@typing.final +class ManyRequest45(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest45: typing_extensions.TypeAlias = ManyRequest45 + +@typing.final +class ManyResponse45(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse45: typing_extensions.TypeAlias = ManyResponse45 + +@typing.final +class ManyRequest46(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest46: typing_extensions.TypeAlias = ManyRequest46 + +@typing.final +class ManyResponse46(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse46: typing_extensions.TypeAlias = ManyResponse46 + +@typing.final +class ManyRequest47(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest47: typing_extensions.TypeAlias = ManyRequest47 + +@typing.final +class ManyResponse47(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse47: typing_extensions.TypeAlias = ManyResponse47 + +@typing.final +class ManyRequest48(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest48: typing_extensions.TypeAlias = ManyRequest48 + +@typing.final +class ManyResponse48(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse48: typing_extensions.TypeAlias = ManyResponse48 + +@typing.final +class ManyRequest49(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest49: typing_extensions.TypeAlias = ManyRequest49 + +@typing.final +class ManyResponse49(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse49: typing_extensions.TypeAlias = ManyResponse49 + +@typing.final +class ManyRequest50(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest50: typing_extensions.TypeAlias = ManyRequest50 + +@typing.final +class ManyResponse50(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse50: typing_extensions.TypeAlias = ManyResponse50 + +@typing.final +class ManyRequest51(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest51: typing_extensions.TypeAlias = ManyRequest51 + +@typing.final +class ManyResponse51(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse51: typing_extensions.TypeAlias = ManyResponse51 + +@typing.final +class ManyRequest52(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest52: typing_extensions.TypeAlias = ManyRequest52 + +@typing.final +class ManyResponse52(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse52: typing_extensions.TypeAlias = ManyResponse52 + +@typing.final +class ManyRequest53(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest53: typing_extensions.TypeAlias = ManyRequest53 + +@typing.final +class ManyResponse53(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse53: typing_extensions.TypeAlias = ManyResponse53 + +@typing.final +class ManyRequest54(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest54: typing_extensions.TypeAlias = ManyRequest54 + +@typing.final +class ManyResponse54(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse54: typing_extensions.TypeAlias = ManyResponse54 + +@typing.final +class ManyRequest55(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest55: typing_extensions.TypeAlias = ManyRequest55 + +@typing.final +class ManyResponse55(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse55: typing_extensions.TypeAlias = ManyResponse55 + +@typing.final +class ManyRequest56(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest56: typing_extensions.TypeAlias = ManyRequest56 + +@typing.final +class ManyResponse56(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse56: typing_extensions.TypeAlias = ManyResponse56 + +@typing.final +class ManyRequest57(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest57: typing_extensions.TypeAlias = ManyRequest57 + +@typing.final +class ManyResponse57(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse57: typing_extensions.TypeAlias = ManyResponse57 + +@typing.final +class ManyRequest58(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest58: typing_extensions.TypeAlias = ManyRequest58 + +@typing.final +class ManyResponse58(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse58: typing_extensions.TypeAlias = ManyResponse58 + +@typing.final +class ManyRequest59(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest59: typing_extensions.TypeAlias = ManyRequest59 + +@typing.final +class ManyResponse59(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse59: typing_extensions.TypeAlias = ManyResponse59 + +@typing.final +class ManyRequest60(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest60: typing_extensions.TypeAlias = ManyRequest60 + +@typing.final +class ManyResponse60(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse60: typing_extensions.TypeAlias = ManyResponse60 + +@typing.final +class ManyRequest61(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest61: typing_extensions.TypeAlias = ManyRequest61 + +@typing.final +class ManyResponse61(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse61: typing_extensions.TypeAlias = ManyResponse61 + +@typing.final +class ManyRequest62(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest62: typing_extensions.TypeAlias = ManyRequest62 + +@typing.final +class ManyResponse62(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse62: typing_extensions.TypeAlias = ManyResponse62 + +@typing.final +class ManyRequest63(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest63: typing_extensions.TypeAlias = ManyRequest63 + +@typing.final +class ManyResponse63(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse63: typing_extensions.TypeAlias = ManyResponse63 + +@typing.final +class ManyRequest64(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest64: typing_extensions.TypeAlias = ManyRequest64 + +@typing.final +class ManyResponse64(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse64: typing_extensions.TypeAlias = ManyResponse64 + +@typing.final +class ManyRequest65(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest65: typing_extensions.TypeAlias = ManyRequest65 + +@typing.final +class ManyResponse65(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse65: typing_extensions.TypeAlias = ManyResponse65 + +@typing.final +class ManyRequest66(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest66: typing_extensions.TypeAlias = ManyRequest66 + +@typing.final +class ManyResponse66(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse66: typing_extensions.TypeAlias = ManyResponse66 + +@typing.final +class ManyRequest67(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest67: typing_extensions.TypeAlias = ManyRequest67 + +@typing.final +class ManyResponse67(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse67: typing_extensions.TypeAlias = ManyResponse67 + +@typing.final +class ManyRequest68(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest68: typing_extensions.TypeAlias = ManyRequest68 + +@typing.final +class ManyResponse68(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse68: typing_extensions.TypeAlias = ManyResponse68 + +@typing.final +class ManyRequest69(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest69: typing_extensions.TypeAlias = ManyRequest69 + +@typing.final +class ManyResponse69(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse69: typing_extensions.TypeAlias = ManyResponse69 + +@typing.final +class ManyRequest70(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest70: typing_extensions.TypeAlias = ManyRequest70 + +@typing.final +class ManyResponse70(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse70: typing_extensions.TypeAlias = ManyResponse70 + +@typing.final +class ManyRequest71(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest71: typing_extensions.TypeAlias = ManyRequest71 + +@typing.final +class ManyResponse71(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse71: typing_extensions.TypeAlias = ManyResponse71 + +@typing.final +class ManyRequest72(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest72: typing_extensions.TypeAlias = ManyRequest72 + +@typing.final +class ManyResponse72(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse72: typing_extensions.TypeAlias = ManyResponse72 + +@typing.final +class ManyRequest73(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest73: typing_extensions.TypeAlias = ManyRequest73 + +@typing.final +class ManyResponse73(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse73: typing_extensions.TypeAlias = ManyResponse73 + +@typing.final +class ManyRequest74(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest74: typing_extensions.TypeAlias = ManyRequest74 + +@typing.final +class ManyResponse74(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse74: typing_extensions.TypeAlias = ManyResponse74 + +@typing.final +class ManyRequest75(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest75: typing_extensions.TypeAlias = ManyRequest75 + +@typing.final +class ManyResponse75(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse75: typing_extensions.TypeAlias = ManyResponse75 + +@typing.final +class ManyRequest76(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest76: typing_extensions.TypeAlias = ManyRequest76 + +@typing.final +class ManyResponse76(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse76: typing_extensions.TypeAlias = ManyResponse76 + +@typing.final +class ManyRequest77(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest77: typing_extensions.TypeAlias = ManyRequest77 + +@typing.final +class ManyResponse77(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse77: typing_extensions.TypeAlias = ManyResponse77 + +@typing.final +class ManyRequest78(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest78: typing_extensions.TypeAlias = ManyRequest78 + +@typing.final +class ManyResponse78(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse78: typing_extensions.TypeAlias = ManyResponse78 + +@typing.final +class ManyRequest79(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest79: typing_extensions.TypeAlias = ManyRequest79 + +@typing.final +class ManyResponse79(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse79: typing_extensions.TypeAlias = ManyResponse79 + +@typing.final +class ManyRequest80(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest80: typing_extensions.TypeAlias = ManyRequest80 + +@typing.final +class ManyResponse80(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse80: typing_extensions.TypeAlias = ManyResponse80 + +@typing.final +class ManyRequest81(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest81: typing_extensions.TypeAlias = ManyRequest81 + +@typing.final +class ManyResponse81(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse81: typing_extensions.TypeAlias = ManyResponse81 + +@typing.final +class ManyRequest82(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest82: typing_extensions.TypeAlias = ManyRequest82 + +@typing.final +class ManyResponse82(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse82: typing_extensions.TypeAlias = ManyResponse82 + +@typing.final +class ManyRequest83(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest83: typing_extensions.TypeAlias = ManyRequest83 + +@typing.final +class ManyResponse83(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse83: typing_extensions.TypeAlias = ManyResponse83 + +@typing.final +class ManyRequest84(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest84: typing_extensions.TypeAlias = ManyRequest84 + +@typing.final +class ManyResponse84(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse84: typing_extensions.TypeAlias = ManyResponse84 + +@typing.final +class ManyRequest85(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest85: typing_extensions.TypeAlias = ManyRequest85 + +@typing.final +class ManyResponse85(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse85: typing_extensions.TypeAlias = ManyResponse85 + +@typing.final +class ManyRequest86(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest86: typing_extensions.TypeAlias = ManyRequest86 + +@typing.final +class ManyResponse86(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse86: typing_extensions.TypeAlias = ManyResponse86 + +@typing.final +class ManyRequest87(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest87: typing_extensions.TypeAlias = ManyRequest87 + +@typing.final +class ManyResponse87(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse87: typing_extensions.TypeAlias = ManyResponse87 + +@typing.final +class ManyRequest88(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest88: typing_extensions.TypeAlias = ManyRequest88 + +@typing.final +class ManyResponse88(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse88: typing_extensions.TypeAlias = ManyResponse88 + +@typing.final +class ManyRequest89(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest89: typing_extensions.TypeAlias = ManyRequest89 + +@typing.final +class ManyResponse89(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse89: typing_extensions.TypeAlias = ManyResponse89 + +@typing.final +class ManyRequest90(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest90: typing_extensions.TypeAlias = ManyRequest90 + +@typing.final +class ManyResponse90(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse90: typing_extensions.TypeAlias = ManyResponse90 + +@typing.final +class ManyRequest91(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest91: typing_extensions.TypeAlias = ManyRequest91 + +@typing.final +class ManyResponse91(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse91: typing_extensions.TypeAlias = ManyResponse91 + +@typing.final +class ManyRequest92(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest92: typing_extensions.TypeAlias = ManyRequest92 + +@typing.final +class ManyResponse92(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse92: typing_extensions.TypeAlias = ManyResponse92 + +@typing.final +class ManyRequest93(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest93: typing_extensions.TypeAlias = ManyRequest93 + +@typing.final +class ManyResponse93(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse93: typing_extensions.TypeAlias = ManyResponse93 + +@typing.final +class ManyRequest94(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest94: typing_extensions.TypeAlias = ManyRequest94 + +@typing.final +class ManyResponse94(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse94: typing_extensions.TypeAlias = ManyResponse94 + +@typing.final +class ManyRequest95(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest95: typing_extensions.TypeAlias = ManyRequest95 + +@typing.final +class ManyResponse95(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse95: typing_extensions.TypeAlias = ManyResponse95 + +@typing.final +class ManyRequest96(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest96: typing_extensions.TypeAlias = ManyRequest96 + +@typing.final +class ManyResponse96(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse96: typing_extensions.TypeAlias = ManyResponse96 + +@typing.final +class ManyRequest97(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest97: typing_extensions.TypeAlias = ManyRequest97 + +@typing.final +class ManyResponse97(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse97: typing_extensions.TypeAlias = ManyResponse97 + +@typing.final +class ManyRequest98(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest98: typing_extensions.TypeAlias = ManyRequest98 + +@typing.final +class ManyResponse98(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse98: typing_extensions.TypeAlias = ManyResponse98 + +@typing.final +class ManyRequest99(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest99: typing_extensions.TypeAlias = ManyRequest99 + +@typing.final +class ManyResponse99(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse99: typing_extensions.TypeAlias = ManyResponse99 diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi new file mode 100644 index 00000000..8da17ac7 --- /dev/null +++ b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi @@ -0,0 +1,909 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" + +import abc +import collections.abc +import grpc.aio +import sys +import testproto.grpc.dummy_pb2 +import typing + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str + +class DummyServiceAsyncStub: + """DummyService""" + + def __init__(self, channel: grpc.aio.Channel) -> None: ... + UnaryUnary: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """UnaryUnary""" + UnaryStream: grpc.aio.UnaryStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """UnaryStream""" + StreamUnary: grpc.aio.StreamUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """StreamUnary""" + StreamStream: grpc.aio.StreamStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """StreamStream""" + +class DummyServiceServicer(metaclass=abc.ABCMeta): + """DummyService""" + + @abc.abstractmethod + def UnaryUnary( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: + """UnaryUnary""" + + @abc.abstractmethod + def UnaryStream( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]], + ) -> collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]: + """UnaryStream""" + + @abc.abstractmethod + def StreamUnary( + self, + request_iterator: collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], + context: grpc.aio.ServicerContext[collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: + """StreamUnary""" + + @abc.abstractmethod + def StreamStream( + self, + request_iterator: collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], + context: grpc.aio.ServicerContext[collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyRequest], collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]], + ) -> collections.abc.AsyncIterator[testproto.grpc.dummy_pb2.DummyReply]: + """StreamStream""" + +def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: grpc.aio.Server) -> None: ... + +@deprecated("""This service is deprecated""") +class DeprecatedServiceAsyncStub: + """Marking the service as deprecated""" + + def __init__(self, channel: grpc.aio.Channel) -> None: ... + DeprecatedMethod: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DeprecatedRequest, testproto.grpc.dummy_pb2.DummyReply] + """DeprecatedMethod""" + DeprecatedMethodNotDeprecatedRequest: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """DeprecatedMethodNotDeprecatedRequest""" + +@deprecated("""This service is deprecated""") +class DeprecatedServiceServicer(metaclass=abc.ABCMeta): + """Marking the service as deprecated""" + + @abc.abstractmethod + def DeprecatedMethod( + self, + request: testproto.grpc.dummy_pb2.DeprecatedRequest, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DeprecatedRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: + """DeprecatedMethod""" + + @abc.abstractmethod + def DeprecatedMethodNotDeprecatedRequest( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.DummyRequest, collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.DummyReply]: + """DeprecatedMethodNotDeprecatedRequest""" + +@deprecated("""This service is deprecated""") +def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: grpc.aio.Server) -> None: ... + +class ManyRPCsServiceAsyncStub: + def __init__(self, channel: grpc.aio.Channel) -> None: ... + Method1: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest1, testproto.grpc.dummy_pb2.ManyResponse1] + Method2: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest2, testproto.grpc.dummy_pb2.ManyResponse2] + Method3: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest3, testproto.grpc.dummy_pb2.ManyResponse3] + Method4: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest4, testproto.grpc.dummy_pb2.ManyResponse4] + Method5: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest5, testproto.grpc.dummy_pb2.ManyResponse5] + Method6: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest6, testproto.grpc.dummy_pb2.ManyResponse6] + Method7: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest7, testproto.grpc.dummy_pb2.ManyResponse7] + Method8: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest8, testproto.grpc.dummy_pb2.ManyResponse8] + Method9: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest9, testproto.grpc.dummy_pb2.ManyResponse9] + Method10: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest10, testproto.grpc.dummy_pb2.ManyResponse10] + Method11: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest11, testproto.grpc.dummy_pb2.ManyResponse11] + Method12: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest12, testproto.grpc.dummy_pb2.ManyResponse12] + Method13: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest13, testproto.grpc.dummy_pb2.ManyResponse13] + Method14: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest14, testproto.grpc.dummy_pb2.ManyResponse14] + Method15: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest15, testproto.grpc.dummy_pb2.ManyResponse15] + Method16: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest16, testproto.grpc.dummy_pb2.ManyResponse16] + Method17: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest17, testproto.grpc.dummy_pb2.ManyResponse17] + Method18: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest18, testproto.grpc.dummy_pb2.ManyResponse18] + Method19: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest19, testproto.grpc.dummy_pb2.ManyResponse19] + Method20: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest20, testproto.grpc.dummy_pb2.ManyResponse20] + Method21: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest21, testproto.grpc.dummy_pb2.ManyResponse21] + Method22: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest22, testproto.grpc.dummy_pb2.ManyResponse22] + Method23: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest23, testproto.grpc.dummy_pb2.ManyResponse23] + Method24: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest24, testproto.grpc.dummy_pb2.ManyResponse24] + Method25: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest25, testproto.grpc.dummy_pb2.ManyResponse25] + Method26: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest26, testproto.grpc.dummy_pb2.ManyResponse26] + Method27: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest27, testproto.grpc.dummy_pb2.ManyResponse27] + Method28: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest28, testproto.grpc.dummy_pb2.ManyResponse28] + Method29: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest29, testproto.grpc.dummy_pb2.ManyResponse29] + Method30: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest30, testproto.grpc.dummy_pb2.ManyResponse30] + Method31: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest31, testproto.grpc.dummy_pb2.ManyResponse31] + Method32: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest32, testproto.grpc.dummy_pb2.ManyResponse32] + Method33: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest33, testproto.grpc.dummy_pb2.ManyResponse33] + Method34: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest34, testproto.grpc.dummy_pb2.ManyResponse34] + Method35: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest35, testproto.grpc.dummy_pb2.ManyResponse35] + Method36: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest36, testproto.grpc.dummy_pb2.ManyResponse36] + Method37: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest37, testproto.grpc.dummy_pb2.ManyResponse37] + Method38: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest38, testproto.grpc.dummy_pb2.ManyResponse38] + Method39: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest39, testproto.grpc.dummy_pb2.ManyResponse39] + Method40: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest40, testproto.grpc.dummy_pb2.ManyResponse40] + Method41: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest41, testproto.grpc.dummy_pb2.ManyResponse41] + Method42: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest42, testproto.grpc.dummy_pb2.ManyResponse42] + Method43: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest43, testproto.grpc.dummy_pb2.ManyResponse43] + Method44: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest44, testproto.grpc.dummy_pb2.ManyResponse44] + Method45: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest45, testproto.grpc.dummy_pb2.ManyResponse45] + Method46: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest46, testproto.grpc.dummy_pb2.ManyResponse46] + Method47: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest47, testproto.grpc.dummy_pb2.ManyResponse47] + Method48: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest48, testproto.grpc.dummy_pb2.ManyResponse48] + Method49: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest49, testproto.grpc.dummy_pb2.ManyResponse49] + Method50: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest50, testproto.grpc.dummy_pb2.ManyResponse50] + Method51: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest51, testproto.grpc.dummy_pb2.ManyResponse51] + Method52: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest52, testproto.grpc.dummy_pb2.ManyResponse52] + Method53: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest53, testproto.grpc.dummy_pb2.ManyResponse53] + Method54: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest54, testproto.grpc.dummy_pb2.ManyResponse54] + Method55: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest55, testproto.grpc.dummy_pb2.ManyResponse55] + Method56: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest56, testproto.grpc.dummy_pb2.ManyResponse56] + Method57: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest57, testproto.grpc.dummy_pb2.ManyResponse57] + Method58: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest58, testproto.grpc.dummy_pb2.ManyResponse58] + Method59: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest59, testproto.grpc.dummy_pb2.ManyResponse59] + Method60: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest60, testproto.grpc.dummy_pb2.ManyResponse60] + Method61: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest61, testproto.grpc.dummy_pb2.ManyResponse61] + Method62: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest62, testproto.grpc.dummy_pb2.ManyResponse62] + Method63: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest63, testproto.grpc.dummy_pb2.ManyResponse63] + Method64: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest64, testproto.grpc.dummy_pb2.ManyResponse64] + Method65: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest65, testproto.grpc.dummy_pb2.ManyResponse65] + Method66: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest66, testproto.grpc.dummy_pb2.ManyResponse66] + Method67: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest67, testproto.grpc.dummy_pb2.ManyResponse67] + Method68: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest68, testproto.grpc.dummy_pb2.ManyResponse68] + Method69: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest69, testproto.grpc.dummy_pb2.ManyResponse69] + Method70: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest70, testproto.grpc.dummy_pb2.ManyResponse70] + Method71: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest71, testproto.grpc.dummy_pb2.ManyResponse71] + Method72: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest72, testproto.grpc.dummy_pb2.ManyResponse72] + Method73: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest73, testproto.grpc.dummy_pb2.ManyResponse73] + Method74: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest74, testproto.grpc.dummy_pb2.ManyResponse74] + Method75: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest75, testproto.grpc.dummy_pb2.ManyResponse75] + Method76: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest76, testproto.grpc.dummy_pb2.ManyResponse76] + Method77: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest77, testproto.grpc.dummy_pb2.ManyResponse77] + Method78: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest78, testproto.grpc.dummy_pb2.ManyResponse78] + Method79: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest79, testproto.grpc.dummy_pb2.ManyResponse79] + Method80: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest80, testproto.grpc.dummy_pb2.ManyResponse80] + Method81: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest81, testproto.grpc.dummy_pb2.ManyResponse81] + Method82: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest82, testproto.grpc.dummy_pb2.ManyResponse82] + Method83: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest83, testproto.grpc.dummy_pb2.ManyResponse83] + Method84: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest84, testproto.grpc.dummy_pb2.ManyResponse84] + Method85: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest85, testproto.grpc.dummy_pb2.ManyResponse85] + Method86: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest86, testproto.grpc.dummy_pb2.ManyResponse86] + Method87: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest87, testproto.grpc.dummy_pb2.ManyResponse87] + Method88: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest88, testproto.grpc.dummy_pb2.ManyResponse88] + Method89: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest89, testproto.grpc.dummy_pb2.ManyResponse89] + Method90: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest90, testproto.grpc.dummy_pb2.ManyResponse90] + Method91: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest91, testproto.grpc.dummy_pb2.ManyResponse91] + Method92: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest92, testproto.grpc.dummy_pb2.ManyResponse92] + Method93: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest93, testproto.grpc.dummy_pb2.ManyResponse93] + Method94: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest94, testproto.grpc.dummy_pb2.ManyResponse94] + Method95: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest95, testproto.grpc.dummy_pb2.ManyResponse95] + Method96: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest96, testproto.grpc.dummy_pb2.ManyResponse96] + Method97: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest97, testproto.grpc.dummy_pb2.ManyResponse97] + Method98: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest98, testproto.grpc.dummy_pb2.ManyResponse98] + Method99: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest99, testproto.grpc.dummy_pb2.ManyResponse99] + +class ManyRPCsServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def Method1( + self, + request: testproto.grpc.dummy_pb2.ManyRequest1, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest1, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse1]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse1]: ... + + @abc.abstractmethod + def Method2( + self, + request: testproto.grpc.dummy_pb2.ManyRequest2, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest2, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse2]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse2]: ... + + @abc.abstractmethod + def Method3( + self, + request: testproto.grpc.dummy_pb2.ManyRequest3, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest3, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse3]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse3]: ... + + @abc.abstractmethod + def Method4( + self, + request: testproto.grpc.dummy_pb2.ManyRequest4, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest4, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse4]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse4]: ... + + @abc.abstractmethod + def Method5( + self, + request: testproto.grpc.dummy_pb2.ManyRequest5, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest5, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse5]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse5]: ... + + @abc.abstractmethod + def Method6( + self, + request: testproto.grpc.dummy_pb2.ManyRequest6, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest6, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse6]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse6]: ... + + @abc.abstractmethod + def Method7( + self, + request: testproto.grpc.dummy_pb2.ManyRequest7, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest7, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse7]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse7]: ... + + @abc.abstractmethod + def Method8( + self, + request: testproto.grpc.dummy_pb2.ManyRequest8, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest8, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse8]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse8]: ... + + @abc.abstractmethod + def Method9( + self, + request: testproto.grpc.dummy_pb2.ManyRequest9, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest9, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse9]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse9]: ... + + @abc.abstractmethod + def Method10( + self, + request: testproto.grpc.dummy_pb2.ManyRequest10, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest10, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse10]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse10]: ... + + @abc.abstractmethod + def Method11( + self, + request: testproto.grpc.dummy_pb2.ManyRequest11, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest11, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse11]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse11]: ... + + @abc.abstractmethod + def Method12( + self, + request: testproto.grpc.dummy_pb2.ManyRequest12, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest12, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse12]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse12]: ... + + @abc.abstractmethod + def Method13( + self, + request: testproto.grpc.dummy_pb2.ManyRequest13, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest13, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse13]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse13]: ... + + @abc.abstractmethod + def Method14( + self, + request: testproto.grpc.dummy_pb2.ManyRequest14, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest14, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse14]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse14]: ... + + @abc.abstractmethod + def Method15( + self, + request: testproto.grpc.dummy_pb2.ManyRequest15, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest15, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse15]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse15]: ... + + @abc.abstractmethod + def Method16( + self, + request: testproto.grpc.dummy_pb2.ManyRequest16, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest16, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse16]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse16]: ... + + @abc.abstractmethod + def Method17( + self, + request: testproto.grpc.dummy_pb2.ManyRequest17, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest17, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse17]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse17]: ... + + @abc.abstractmethod + def Method18( + self, + request: testproto.grpc.dummy_pb2.ManyRequest18, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest18, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse18]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse18]: ... + + @abc.abstractmethod + def Method19( + self, + request: testproto.grpc.dummy_pb2.ManyRequest19, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest19, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse19]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse19]: ... + + @abc.abstractmethod + def Method20( + self, + request: testproto.grpc.dummy_pb2.ManyRequest20, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest20, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse20]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse20]: ... + + @abc.abstractmethod + def Method21( + self, + request: testproto.grpc.dummy_pb2.ManyRequest21, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest21, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse21]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse21]: ... + + @abc.abstractmethod + def Method22( + self, + request: testproto.grpc.dummy_pb2.ManyRequest22, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest22, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse22]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse22]: ... + + @abc.abstractmethod + def Method23( + self, + request: testproto.grpc.dummy_pb2.ManyRequest23, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest23, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse23]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse23]: ... + + @abc.abstractmethod + def Method24( + self, + request: testproto.grpc.dummy_pb2.ManyRequest24, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest24, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse24]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse24]: ... + + @abc.abstractmethod + def Method25( + self, + request: testproto.grpc.dummy_pb2.ManyRequest25, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest25, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse25]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse25]: ... + + @abc.abstractmethod + def Method26( + self, + request: testproto.grpc.dummy_pb2.ManyRequest26, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest26, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse26]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse26]: ... + + @abc.abstractmethod + def Method27( + self, + request: testproto.grpc.dummy_pb2.ManyRequest27, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest27, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse27]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse27]: ... + + @abc.abstractmethod + def Method28( + self, + request: testproto.grpc.dummy_pb2.ManyRequest28, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest28, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse28]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse28]: ... + + @abc.abstractmethod + def Method29( + self, + request: testproto.grpc.dummy_pb2.ManyRequest29, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest29, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse29]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse29]: ... + + @abc.abstractmethod + def Method30( + self, + request: testproto.grpc.dummy_pb2.ManyRequest30, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest30, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse30]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse30]: ... + + @abc.abstractmethod + def Method31( + self, + request: testproto.grpc.dummy_pb2.ManyRequest31, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest31, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse31]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse31]: ... + + @abc.abstractmethod + def Method32( + self, + request: testproto.grpc.dummy_pb2.ManyRequest32, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest32, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse32]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse32]: ... + + @abc.abstractmethod + def Method33( + self, + request: testproto.grpc.dummy_pb2.ManyRequest33, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest33, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse33]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse33]: ... + + @abc.abstractmethod + def Method34( + self, + request: testproto.grpc.dummy_pb2.ManyRequest34, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest34, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse34]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse34]: ... + + @abc.abstractmethod + def Method35( + self, + request: testproto.grpc.dummy_pb2.ManyRequest35, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest35, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse35]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse35]: ... + + @abc.abstractmethod + def Method36( + self, + request: testproto.grpc.dummy_pb2.ManyRequest36, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest36, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse36]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse36]: ... + + @abc.abstractmethod + def Method37( + self, + request: testproto.grpc.dummy_pb2.ManyRequest37, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest37, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse37]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse37]: ... + + @abc.abstractmethod + def Method38( + self, + request: testproto.grpc.dummy_pb2.ManyRequest38, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest38, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse38]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse38]: ... + + @abc.abstractmethod + def Method39( + self, + request: testproto.grpc.dummy_pb2.ManyRequest39, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest39, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse39]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse39]: ... + + @abc.abstractmethod + def Method40( + self, + request: testproto.grpc.dummy_pb2.ManyRequest40, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest40, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse40]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse40]: ... + + @abc.abstractmethod + def Method41( + self, + request: testproto.grpc.dummy_pb2.ManyRequest41, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest41, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse41]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse41]: ... + + @abc.abstractmethod + def Method42( + self, + request: testproto.grpc.dummy_pb2.ManyRequest42, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest42, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse42]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse42]: ... + + @abc.abstractmethod + def Method43( + self, + request: testproto.grpc.dummy_pb2.ManyRequest43, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest43, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse43]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse43]: ... + + @abc.abstractmethod + def Method44( + self, + request: testproto.grpc.dummy_pb2.ManyRequest44, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest44, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse44]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse44]: ... + + @abc.abstractmethod + def Method45( + self, + request: testproto.grpc.dummy_pb2.ManyRequest45, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest45, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse45]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse45]: ... + + @abc.abstractmethod + def Method46( + self, + request: testproto.grpc.dummy_pb2.ManyRequest46, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest46, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse46]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse46]: ... + + @abc.abstractmethod + def Method47( + self, + request: testproto.grpc.dummy_pb2.ManyRequest47, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest47, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse47]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse47]: ... + + @abc.abstractmethod + def Method48( + self, + request: testproto.grpc.dummy_pb2.ManyRequest48, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest48, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse48]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse48]: ... + + @abc.abstractmethod + def Method49( + self, + request: testproto.grpc.dummy_pb2.ManyRequest49, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest49, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse49]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse49]: ... + + @abc.abstractmethod + def Method50( + self, + request: testproto.grpc.dummy_pb2.ManyRequest50, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest50, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse50]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse50]: ... + + @abc.abstractmethod + def Method51( + self, + request: testproto.grpc.dummy_pb2.ManyRequest51, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest51, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse51]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse51]: ... + + @abc.abstractmethod + def Method52( + self, + request: testproto.grpc.dummy_pb2.ManyRequest52, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest52, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse52]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse52]: ... + + @abc.abstractmethod + def Method53( + self, + request: testproto.grpc.dummy_pb2.ManyRequest53, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest53, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse53]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse53]: ... + + @abc.abstractmethod + def Method54( + self, + request: testproto.grpc.dummy_pb2.ManyRequest54, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest54, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse54]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse54]: ... + + @abc.abstractmethod + def Method55( + self, + request: testproto.grpc.dummy_pb2.ManyRequest55, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest55, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse55]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse55]: ... + + @abc.abstractmethod + def Method56( + self, + request: testproto.grpc.dummy_pb2.ManyRequest56, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest56, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse56]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse56]: ... + + @abc.abstractmethod + def Method57( + self, + request: testproto.grpc.dummy_pb2.ManyRequest57, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest57, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse57]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse57]: ... + + @abc.abstractmethod + def Method58( + self, + request: testproto.grpc.dummy_pb2.ManyRequest58, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest58, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse58]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse58]: ... + + @abc.abstractmethod + def Method59( + self, + request: testproto.grpc.dummy_pb2.ManyRequest59, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest59, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse59]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse59]: ... + + @abc.abstractmethod + def Method60( + self, + request: testproto.grpc.dummy_pb2.ManyRequest60, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest60, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse60]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse60]: ... + + @abc.abstractmethod + def Method61( + self, + request: testproto.grpc.dummy_pb2.ManyRequest61, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest61, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse61]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse61]: ... + + @abc.abstractmethod + def Method62( + self, + request: testproto.grpc.dummy_pb2.ManyRequest62, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest62, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse62]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse62]: ... + + @abc.abstractmethod + def Method63( + self, + request: testproto.grpc.dummy_pb2.ManyRequest63, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest63, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse63]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse63]: ... + + @abc.abstractmethod + def Method64( + self, + request: testproto.grpc.dummy_pb2.ManyRequest64, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest64, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse64]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse64]: ... + + @abc.abstractmethod + def Method65( + self, + request: testproto.grpc.dummy_pb2.ManyRequest65, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest65, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse65]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse65]: ... + + @abc.abstractmethod + def Method66( + self, + request: testproto.grpc.dummy_pb2.ManyRequest66, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest66, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse66]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse66]: ... + + @abc.abstractmethod + def Method67( + self, + request: testproto.grpc.dummy_pb2.ManyRequest67, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest67, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse67]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse67]: ... + + @abc.abstractmethod + def Method68( + self, + request: testproto.grpc.dummy_pb2.ManyRequest68, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest68, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse68]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse68]: ... + + @abc.abstractmethod + def Method69( + self, + request: testproto.grpc.dummy_pb2.ManyRequest69, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest69, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse69]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse69]: ... + + @abc.abstractmethod + def Method70( + self, + request: testproto.grpc.dummy_pb2.ManyRequest70, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest70, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse70]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse70]: ... + + @abc.abstractmethod + def Method71( + self, + request: testproto.grpc.dummy_pb2.ManyRequest71, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest71, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse71]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse71]: ... + + @abc.abstractmethod + def Method72( + self, + request: testproto.grpc.dummy_pb2.ManyRequest72, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest72, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse72]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse72]: ... + + @abc.abstractmethod + def Method73( + self, + request: testproto.grpc.dummy_pb2.ManyRequest73, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest73, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse73]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse73]: ... + + @abc.abstractmethod + def Method74( + self, + request: testproto.grpc.dummy_pb2.ManyRequest74, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest74, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse74]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse74]: ... + + @abc.abstractmethod + def Method75( + self, + request: testproto.grpc.dummy_pb2.ManyRequest75, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest75, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse75]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse75]: ... + + @abc.abstractmethod + def Method76( + self, + request: testproto.grpc.dummy_pb2.ManyRequest76, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest76, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse76]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse76]: ... + + @abc.abstractmethod + def Method77( + self, + request: testproto.grpc.dummy_pb2.ManyRequest77, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest77, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse77]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse77]: ... + + @abc.abstractmethod + def Method78( + self, + request: testproto.grpc.dummy_pb2.ManyRequest78, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest78, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse78]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse78]: ... + + @abc.abstractmethod + def Method79( + self, + request: testproto.grpc.dummy_pb2.ManyRequest79, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest79, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse79]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse79]: ... + + @abc.abstractmethod + def Method80( + self, + request: testproto.grpc.dummy_pb2.ManyRequest80, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest80, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse80]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse80]: ... + + @abc.abstractmethod + def Method81( + self, + request: testproto.grpc.dummy_pb2.ManyRequest81, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest81, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse81]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse81]: ... + + @abc.abstractmethod + def Method82( + self, + request: testproto.grpc.dummy_pb2.ManyRequest82, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest82, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse82]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse82]: ... + + @abc.abstractmethod + def Method83( + self, + request: testproto.grpc.dummy_pb2.ManyRequest83, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest83, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse83]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse83]: ... + + @abc.abstractmethod + def Method84( + self, + request: testproto.grpc.dummy_pb2.ManyRequest84, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest84, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse84]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse84]: ... + + @abc.abstractmethod + def Method85( + self, + request: testproto.grpc.dummy_pb2.ManyRequest85, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest85, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse85]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse85]: ... + + @abc.abstractmethod + def Method86( + self, + request: testproto.grpc.dummy_pb2.ManyRequest86, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest86, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse86]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse86]: ... + + @abc.abstractmethod + def Method87( + self, + request: testproto.grpc.dummy_pb2.ManyRequest87, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest87, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse87]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse87]: ... + + @abc.abstractmethod + def Method88( + self, + request: testproto.grpc.dummy_pb2.ManyRequest88, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest88, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse88]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse88]: ... + + @abc.abstractmethod + def Method89( + self, + request: testproto.grpc.dummy_pb2.ManyRequest89, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest89, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse89]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse89]: ... + + @abc.abstractmethod + def Method90( + self, + request: testproto.grpc.dummy_pb2.ManyRequest90, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest90, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse90]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse90]: ... + + @abc.abstractmethod + def Method91( + self, + request: testproto.grpc.dummy_pb2.ManyRequest91, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest91, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse91]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse91]: ... + + @abc.abstractmethod + def Method92( + self, + request: testproto.grpc.dummy_pb2.ManyRequest92, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest92, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse92]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse92]: ... + + @abc.abstractmethod + def Method93( + self, + request: testproto.grpc.dummy_pb2.ManyRequest93, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest93, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse93]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse93]: ... + + @abc.abstractmethod + def Method94( + self, + request: testproto.grpc.dummy_pb2.ManyRequest94, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest94, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse94]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse94]: ... + + @abc.abstractmethod + def Method95( + self, + request: testproto.grpc.dummy_pb2.ManyRequest95, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest95, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse95]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse95]: ... + + @abc.abstractmethod + def Method96( + self, + request: testproto.grpc.dummy_pb2.ManyRequest96, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest96, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse96]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse96]: ... + + @abc.abstractmethod + def Method97( + self, + request: testproto.grpc.dummy_pb2.ManyRequest97, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest97, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse97]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse97]: ... + + @abc.abstractmethod + def Method98( + self, + request: testproto.grpc.dummy_pb2.ManyRequest98, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest98, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse98]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse98]: ... + + @abc.abstractmethod + def Method99( + self, + request: testproto.grpc.dummy_pb2.ManyRequest99, + context: grpc.aio.ServicerContext[testproto.grpc.dummy_pb2.ManyRequest99, collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse99]], + ) -> collections.abc.Awaitable[testproto.grpc.dummy_pb2.ManyResponse99]: ... + +def add_ManyRPCsServiceServicer_to_server(servicer: ManyRPCsServiceServicer, server: grpc.aio.Server) -> None: ... + +class EmptyServiceAsyncStub: + def __init__(self, channel: grpc.aio.Channel) -> None: ... + +class EmptyServiceServicer(metaclass=abc.ABCMeta): + ... + +def add_EmptyServiceServicer_to_server(servicer: EmptyServiceServicer, server: grpc.aio.Server) -> None: ... diff --git a/test/generated_async_only/testproto/grpc/import_pb2.pyi b/test/generated_async_only/testproto/grpc/import_pb2.pyi new file mode 100644 index 00000000..dd854e28 --- /dev/null +++ b/test/generated_async_only/testproto/grpc/import_pb2.pyi @@ -0,0 +1,8 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import google.protobuf.descriptor + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi new file mode 100644 index 00000000..ab6ef132 --- /dev/null +++ b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi @@ -0,0 +1,53 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import google.protobuf.empty_pb2 +import grpc.aio +import testproto.test_pb2 +import typing + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str + +class SimpleServiceAsyncStub: + """SimpleService""" + + def __init__(self, channel: grpc.aio.Channel) -> None: ... + UnaryUnary: grpc.aio.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, testproto.test_pb2.Simple1] + """UnaryUnary""" + UnaryStream: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] + """UnaryStream""" + NoComment: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] + +class SimpleServiceServicer(metaclass=abc.ABCMeta): + """SimpleService""" + + @abc.abstractmethod + def UnaryUnary( + self, + request: google.protobuf.empty_pb2.Empty, + context: grpc.aio.ServicerContext[google.protobuf.empty_pb2.Empty, collections.abc.Awaitable[testproto.test_pb2.Simple1]], + ) -> collections.abc.Awaitable[testproto.test_pb2.Simple1]: + """UnaryUnary""" + + @abc.abstractmethod + def UnaryStream( + self, + request: testproto.test_pb2.Simple1, + context: grpc.aio.ServicerContext[testproto.test_pb2.Simple1, collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]], + ) -> collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]: + """UnaryStream""" + + @abc.abstractmethod + def NoComment( + self, + request: testproto.test_pb2.Simple1, + context: grpc.aio.ServicerContext[testproto.test_pb2.Simple1, collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]], + ) -> collections.abc.Awaitable[google.protobuf.empty_pb2.Empty]: ... + +def add_SimpleServiceServicer_to_server(servicer: SimpleServiceServicer, server: grpc.aio.Server) -> None: ... diff --git a/test/generated_async_only/testproto/inner/__init__.py b/test/generated_async_only/testproto/inner/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_async_only/testproto/inner/inner_pb2.pyi b/test/generated_async_only/testproto/inner/inner_pb2.pyi new file mode 100644 index 00000000..8a029c4e --- /dev/null +++ b/test/generated_async_only/testproto/inner/inner_pb2.pyi @@ -0,0 +1,34 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Inner(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: testproto.test3_pb2.OuterEnum.ValueType + def __init__( + self, + *, + a: testproto.test3_pb2.OuterEnum.ValueType = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a", b"a"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Inner: typing_extensions.TypeAlias = Inner diff --git a/test/generated_async_only/testproto/inner/inner_pb2_grpc.pyi b/test/generated_async_only/testproto/inner/inner_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/inner/inner_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/nested/__init__.py b/test/generated_async_only/testproto/nested/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_async_only/testproto/nested/nested_pb2.pyi b/test/generated_async_only/testproto/nested/nested_pb2.pyi new file mode 100644 index 00000000..ca263aee --- /dev/null +++ b/test/generated_async_only/testproto/nested/nested_pb2.pyi @@ -0,0 +1,98 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Nested(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: testproto.test3_pb2.OuterEnum.ValueType + def __init__( + self, + *, + a: testproto.test3_pb2.OuterEnum.ValueType = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a", b"a"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Nested: typing_extensions.TypeAlias = Nested + +@typing.final +class AnotherNested(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _NestedEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _NestedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested._NestedEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID: AnotherNested._NestedEnum.ValueType # 0 + ONE: AnotherNested._NestedEnum.ValueType # 1 + TWO: AnotherNested._NestedEnum.ValueType # 2 + + class NestedEnum(_NestedEnum, metaclass=_NestedEnumEnumTypeWrapper): ... + INVALID: AnotherNested.NestedEnum.ValueType # 0 + ONE: AnotherNested.NestedEnum.ValueType # 1 + TWO: AnotherNested.NestedEnum.ValueType # 2 + + @typing.final + class NestedMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _NestedEnum2: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _NestedEnum2EnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested.NestedMessage._NestedEnum2.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNDEFINED: AnotherNested.NestedMessage._NestedEnum2.ValueType # 0 + NESTED_ENUM1: AnotherNested.NestedMessage._NestedEnum2.ValueType # 1 + NESTED_ENUM2: AnotherNested.NestedMessage._NestedEnum2.ValueType # 2 + + class NestedEnum2(_NestedEnum2, metaclass=_NestedEnum2EnumTypeWrapper): ... + UNDEFINED: AnotherNested.NestedMessage.NestedEnum2.ValueType # 0 + NESTED_ENUM1: AnotherNested.NestedMessage.NestedEnum2.ValueType # 1 + NESTED_ENUM2: AnotherNested.NestedMessage.NestedEnum2.ValueType # 2 + + S_FIELD_NUMBER: builtins.int + B_FIELD_NUMBER: builtins.int + NE_FIELD_NUMBER: builtins.int + NE2_FIELD_NUMBER: builtins.int + s: builtins.str + b: builtins.bool + ne: Global___AnotherNested.NestedEnum.ValueType + ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType + def __init__( + self, + *, + s: builtins.str = ..., + b: builtins.bool = ..., + ne: Global___AnotherNested.NestedEnum.ValueType = ..., + ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["b", b"b", "ne", b"ne", "ne2", b"ne2", "s", b"s"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + def __init__( + self, + ) -> None: ... + +Global___AnotherNested: typing_extensions.TypeAlias = AnotherNested diff --git a/test/generated_async_only/testproto/nested/nested_pb2_grpc.pyi b/test/generated_async_only/testproto/nested/nested_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/nested/nested_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/nopackage_pb2.pyi b/test/generated_async_only/testproto/nopackage_pb2.pyi new file mode 100644 index 00000000..f4455c17 --- /dev/null +++ b/test/generated_async_only/testproto/nopackage_pb2.pyi @@ -0,0 +1,54 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class NoPackage(google.protobuf.message.Message): + """Intentionally don't set a package - just to make sure we can handle it.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___NoPackage: typing_extensions.TypeAlias = NoPackage + +@typing.final +class NoPackage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NP_FIELD_NUMBER: builtins.int + NP_REP_FIELD_NUMBER: builtins.int + @property + def np(self) -> Global___NoPackage: ... + @property + def np_rep(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NoPackage]: ... + def __init__( + self, + *, + np: Global___NoPackage | None = ..., + np_rep: collections.abc.Iterable[Global___NoPackage] | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["np", b"np"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["np", b"np", "np_rep", b"np_rep"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___NoPackage2: typing_extensions.TypeAlias = NoPackage2 diff --git a/test/generated_async_only/testproto/nopackage_pb2_grpc.pyi b/test/generated_async_only/testproto/nopackage_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/nopackage_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/readme_enum_pb2.pyi b/test/generated_async_only/testproto/readme_enum_pb2.pyi new file mode 100644 index 00000000..be8369c4 --- /dev/null +++ b/test/generated_async_only/testproto/readme_enum_pb2.pyi @@ -0,0 +1,32 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _MyEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _MyEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MyEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + HELLO: _MyEnum.ValueType # 0 + WORLD: _MyEnum.ValueType # 1 + +class MyEnum(_MyEnum, metaclass=_MyEnumEnumTypeWrapper): ... + +HELLO: MyEnum.ValueType # 0 +WORLD: MyEnum.ValueType # 1 +Global___MyEnum: typing_extensions.TypeAlias = MyEnum diff --git a/test/generated_async_only/testproto/readme_enum_pb2_grpc.pyi b/test/generated_async_only/testproto/readme_enum_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/readme_enum_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/reexport_pb2.pyi b/test/generated_async_only/testproto/reexport_pb2.pyi new file mode 100644 index 00000000..9702c2bd --- /dev/null +++ b/test/generated_async_only/testproto/reexport_pb2.pyi @@ -0,0 +1,19 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import google.protobuf.descriptor +from google.protobuf.empty_pb2 import ( + Empty as Empty, +) +from testproto.test3_pb2 import ( + BAR3 as BAR3, + FOO3 as FOO3, + OuterEnum as OuterEnum, + OuterMessage3 as OuterMessage3, + SimpleProto3 as SimpleProto3, + UNKNOWN as UNKNOWN, +) + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated_async_only/testproto/reexport_pb2_grpc.pyi b/test/generated_async_only/testproto/reexport_pb2_grpc.pyi new file mode 100644 index 00000000..9c28bd7a --- /dev/null +++ b/test/generated_async_only/testproto/reexport_pb2_grpc.pyi @@ -0,0 +1,21 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc +from google.protobuf.empty_pb2 import ( + Empty as Empty, +) +from testproto.test3_pb2 import ( + BAR3 as BAR3, + FOO3 as FOO3, + OuterEnum as OuterEnum, + OuterMessage3 as OuterMessage3, + SimpleProto3 as SimpleProto3, + UNKNOWN as UNKNOWN, +) + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/test3_pb2.pyi b/test/generated_async_only/testproto/test3_pb2.pyi new file mode 100644 index 00000000..ca2421ab --- /dev/null +++ b/test/generated_async_only/testproto/test3_pb2.pyi @@ -0,0 +1,222 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +package test3""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import test.test_generated_mypy +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _OuterEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNKNOWN: _OuterEnum.ValueType # 0 + FOO3: _OuterEnum.ValueType # 1 + BAR3: _OuterEnum.ValueType # 2 + +class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): ... + +UNKNOWN: OuterEnum.ValueType # 0 +FOO3: OuterEnum.ValueType # 1 +BAR3: OuterEnum.ValueType # 2 +Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum + +@typing.final +class OuterMessage3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___OuterMessage3: typing_extensions.TypeAlias = OuterMessage3 + +@typing.final +class SimpleProto3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _InnerEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SimpleProto3._InnerEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INNER1: SimpleProto3._InnerEnum.ValueType # 0 + INNER2: SimpleProto3._InnerEnum.ValueType # 1 + + class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): ... + INNER1: SimpleProto3.InnerEnum.ValueType # 0 + INNER2: SimpleProto3.InnerEnum.ValueType # 1 + + @typing.final + class MapScalarEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int = ..., + value: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @typing.final + class MapMessageEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + @property + def value(self) -> Global___OuterMessage3: ... + def __init__( + self, + *, + key: builtins.int = ..., + value: Global___OuterMessage3 | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @typing.final + class EmailByUidEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int = ..., + value: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + A_STRING_FIELD_NUMBER: builtins.int + A_REPEATED_STRING_FIELD_NUMBER: builtins.int + A_OUTER_ENUM_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_FIELD_NUMBER: builtins.int + INNER_ENUM_FIELD_NUMBER: builtins.int + A_ONEOF_1_FIELD_NUMBER: builtins.int + A_ONEOF_2_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int + OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + B_ONEOF_1_FIELD_NUMBER: builtins.int + B_ONEOF_2_FIELD_NUMBER: builtins.int + BOOL_FIELD_NUMBER: builtins.int + OUTERENUM_FIELD_NUMBER: builtins.int + OUTERMESSAGE3_FIELD_NUMBER: builtins.int + MAP_SCALAR_FIELD_NUMBER: builtins.int + MAP_MESSAGE_FIELD_NUMBER: builtins.int + AN_OPTIONAL_STRING_FIELD_NUMBER: builtins.int + USER_ID_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + EMAIL_BY_UID_FIELD_NUMBER: builtins.int + a_string: builtins.str + a_outer_enum: Global___OuterEnum.ValueType + inner_enum: Global___SimpleProto3.InnerEnum.ValueType + a_oneof_1: builtins.str + a_oneof_2: builtins.str + outer_enum_in_oneof: Global___OuterEnum.ValueType + inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType + b_oneof_1: builtins.str + b_oneof_2: builtins.str + OuterEnum: Global___OuterEnum.ValueType + """Test having fieldname match messagename""" + an_optional_string: builtins.str + user_id: test.test_generated_mypy.UserId + email: test.test_generated_mypy.Email + @property + def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def outer_message(self) -> Global___OuterMessage3: ... + @property + def outer_message_in_oneof(self) -> Global___OuterMessage3: ... + @property + def bool(self) -> Global___OuterMessage3: ... + @property + def OuterMessage3(self) -> Global___OuterMessage3: ... + @property + def map_scalar(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.str]: + """Test generation of map""" + + @property + def map_message(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, Global___OuterMessage3]: ... + @property + def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... + def __init__( + self, + *, + a_string: builtins.str = ..., + a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., + a_outer_enum: Global___OuterEnum.ValueType = ..., + outer_message: Global___OuterMessage3 | None = ..., + inner_enum: Global___SimpleProto3.InnerEnum.ValueType = ..., + a_oneof_1: builtins.str = ..., + a_oneof_2: builtins.str = ..., + outer_message_in_oneof: Global___OuterMessage3 | None = ..., + outer_enum_in_oneof: Global___OuterEnum.ValueType = ..., + inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType = ..., + b_oneof_1: builtins.str = ..., + b_oneof_2: builtins.str = ..., + bool: Global___OuterMessage3 | None = ..., + OuterEnum: Global___OuterEnum.ValueType = ..., + OuterMessage3: Global___OuterMessage3 | None = ..., + map_scalar: collections.abc.Mapping[builtins.int, builtins.str] | None = ..., + map_message: collections.abc.Mapping[builtins.int, Global___OuterMessage3] | None = ..., + an_optional_string: builtins.str | None = ..., + user_id: test.test_generated_mypy.UserId = ..., + email: test.test_generated_mypy.Email = ..., + email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "inner_enum_in_oneof", b"inner_enum_in_oneof", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["OuterEnum", b"OuterEnum", "OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_outer_enum", b"a_outer_enum", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "map_message", b"map_message", "map_scalar", b"map_scalar", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__an_optional_string: typing_extensions.TypeAlias = typing.Literal["an_optional_string"] + _WhichOneofArgType__an_optional_string: typing_extensions.TypeAlias = typing.Literal["_an_optional_string", b"_an_optional_string"] + _WhichOneofReturnType_a_oneof: typing_extensions.TypeAlias = typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] + _WhichOneofArgType_a_oneof: typing_extensions.TypeAlias = typing.Literal["a_oneof", b"a_oneof"] + _WhichOneofReturnType_b_oneof: typing_extensions.TypeAlias = typing.Literal["b_oneof_1", "b_oneof_2"] + _WhichOneofArgType_b_oneof: typing_extensions.TypeAlias = typing.Literal["b_oneof", b"b_oneof"] + @typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__an_optional_string) -> _WhichOneofReturnType__an_optional_string | None: ... + @typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_a_oneof) -> _WhichOneofReturnType_a_oneof | None: ... + @typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_b_oneof) -> _WhichOneofReturnType_b_oneof | None: ... + +Global___SimpleProto3: typing_extensions.TypeAlias = SimpleProto3 diff --git a/test/generated_async_only/testproto/test3_pb2_grpc.pyi b/test/generated_async_only/testproto/test3_pb2_grpc.pyi new file mode 100644 index 00000000..18b6fcb4 --- /dev/null +++ b/test/generated_async_only/testproto/test3_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +package test3""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/test_extensions2_pb2.pyi b/test/generated_async_only/testproto/test_extensions2_pb2.pyi new file mode 100644 index 00000000..f36b2068 --- /dev/null +++ b/test/generated_async_only/testproto/test_extensions2_pb2.pyi @@ -0,0 +1,39 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import testproto.test_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class SeparateFileExtension(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FLAG_FIELD_NUMBER: builtins.int + flag: builtins.bool + EXT_FIELD_NUMBER: builtins.int + ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[testproto.test_pb2.Simple2, Global___SeparateFileExtension] + def __init__( + self, + *, + flag: builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["flag", b"flag"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["flag", b"flag"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___SeparateFileExtension: typing_extensions.TypeAlias = SeparateFileExtension diff --git a/test/generated_async_only/testproto/test_extensions2_pb2_grpc.pyi b/test/generated_async_only/testproto/test_extensions2_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/test_extensions2_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/test_extensions3_pb2.pyi b/test/generated_async_only/testproto/test_extensions3_pb2.pyi new file mode 100644 index 00000000..f2292855 --- /dev/null +++ b/test/generated_async_only/testproto/test_extensions3_pb2.pyi @@ -0,0 +1,46 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.descriptor_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class MessageOptionsTestMsg(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___MessageOptionsTestMsg: typing_extensions.TypeAlias = MessageOptionsTestMsg + +TEST_FIELD_EXTENSION_FIELD_NUMBER: builtins.int +SCALAR_OPTION_FIELD_NUMBER: builtins.int +REPEATED_SCALAR_OPTION_FIELD_NUMBER: builtins.int +ENUM_OPTION_FIELD_NUMBER: builtins.int +REPEATED_ENUM_OPTION_FIELD_NUMBER: builtins.int +MSG_OPTION_FIELD_NUMBER: builtins.int +REPEATED_MSG_OPTION_FIELD_NUMBER: builtins.int +test_field_extension: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str] +scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.str] +repeated_scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]] +enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterEnum.ValueType] +repeated_enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[testproto.test3_pb2.OuterEnum.ValueType]] +msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterMessage3] +repeated_msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedCompositeFieldContainer[testproto.test3_pb2.OuterMessage3]] diff --git a/test/generated_async_only/testproto/test_extensions3_pb2_grpc.pyi b/test/generated_async_only/testproto/test_extensions3_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_async_only/testproto/test_extensions3_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_async_only/testproto/test_no_generic_services_pb2.pyi b/test/generated_async_only/testproto/test_no_generic_services_pb2.pyi new file mode 100644 index 00000000..04cf9c56 --- /dev/null +++ b/test/generated_async_only/testproto/test_no_generic_services_pb2.pyi @@ -0,0 +1,35 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Simple3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Simple3: typing_extensions.TypeAlias = Simple3 diff --git a/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi b/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi new file mode 100644 index 00000000..b1c054f9 --- /dev/null +++ b/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi @@ -0,0 +1,28 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc.aio +import testproto.test_no_generic_services_pb2 +import typing + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str + +class ATestService2AsyncStub: + def __init__(self, channel: grpc.aio.Channel) -> None: ... + Echo: grpc.aio.UnaryUnaryMultiCallable[testproto.test_no_generic_services_pb2.Simple3, testproto.test_no_generic_services_pb2.Simple3] + +class ATestService2Servicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def Echo( + self, + request: testproto.test_no_generic_services_pb2.Simple3, + context: grpc.aio.ServicerContext[testproto.test_no_generic_services_pb2.Simple3, collections.abc.Awaitable[testproto.test_no_generic_services_pb2.Simple3]], + ) -> collections.abc.Awaitable[testproto.test_no_generic_services_pb2.Simple3]: ... + +def add_ATestService2Servicer_to_server(servicer: ATestService2Servicer, server: grpc.aio.Server) -> None: ... diff --git a/test/generated_async_only/testproto/test_pb2.pyi b/test/generated_async_only/testproto/test_pb2.pyi new file mode 100644 index 00000000..94e646db --- /dev/null +++ b/test/generated_async_only/testproto/test_pb2.pyi @@ -0,0 +1,465 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Proto 2 test file.""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import test.test_generated_mypy +import testproto.inner.inner_pb2 +import testproto.nested.nested_pb2 +import testproto.nopackage_pb2 +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _OuterEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + FOO: _OuterEnum.ValueType # 1 + """FOO""" + BAR: _OuterEnum.ValueType # 2 + """BAR""" + +class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): + """Outer Enum""" + +FOO: OuterEnum.ValueType # 1 +"""FOO""" +BAR: OuterEnum.ValueType # 2 +"""BAR""" +Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum + +class _NamingConflicts: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _NamingConflictsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NamingConflicts.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + +class NamingConflicts(_NamingConflicts, metaclass=_NamingConflictsEnumTypeWrapper): + """Naming conflicts!""" + +Name: NamingConflicts.ValueType # 1 +Value: NamingConflicts.ValueType # 2 +keys: NamingConflicts.ValueType # 3 +values: NamingConflicts.ValueType # 4 +items: NamingConflicts.ValueType # 5 +"""See https://github.com/protocolbuffers/protobuf/issues/8803 +proto itself generates broken code when DESCRIPTOR is there +DESCRIPTOR = 8; +""" +Global___NamingConflicts: typing_extensions.TypeAlias = NamingConflicts + +class _DeprecatedEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _DeprecatedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeprecatedEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + DEPRECATED_ONE: _DeprecatedEnum.ValueType # 1 + DEPRECATED_TWO: _DeprecatedEnum.ValueType # 2 + +@deprecated("""This enum is deprecated\n2 lines of comments\n"Quotes in comments"\nand 'single quotes'\nTrailing comment""") +class DeprecatedEnum(_DeprecatedEnum, metaclass=_DeprecatedEnumEnumTypeWrapper): ... + +DEPRECATED_ONE: DeprecatedEnum.ValueType # 1 +DEPRECATED_TWO: DeprecatedEnum.ValueType # 2 +Global___DeprecatedEnum: typing_extensions.TypeAlias = DeprecatedEnum + +@typing.final +class Simple1(google.protobuf.message.Message): + """Message with one of everything""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _InnerEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Simple1._InnerEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INNER1: Simple1._InnerEnum.ValueType # 1 + """INNER1""" + INNER2: Simple1._InnerEnum.ValueType # 2 + """INNER2""" + + class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): + """Inner Enum""" + + INNER1: Simple1.InnerEnum.ValueType # 1 + """INNER1""" + INNER2: Simple1.InnerEnum.ValueType # 2 + """INNER2""" + + @typing.final + class InnerMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + + @typing.final + class EmailByUidEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int | None = ..., + value: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + A_STRING_FIELD_NUMBER: builtins.int + A_REPEATED_STRING_FIELD_NUMBER: builtins.int + A_BOOLEAN_FIELD_NUMBER: builtins.int + A_UINT32_FIELD_NUMBER: builtins.int + A_ENUM_FIELD_NUMBER: builtins.int + A_EXTERNAL_ENUM_FIELD_NUMBER: builtins.int + A_INNER_FIELD_NUMBER: builtins.int + A_NESTED_FIELD_NUMBER: builtins.int + INNER_ENUM_FIELD_NUMBER: builtins.int + REP_INNER_ENUM_FIELD_NUMBER: builtins.int + INNER_MESSAGE_FIELD_NUMBER: builtins.int + REP_INNER_MESSAGE_FIELD_NUMBER: builtins.int + NO_PACKAGE_FIELD_NUMBER: builtins.int + NESTED_ENUM_FIELD_NUMBER: builtins.int + NESTED_MESSAGE_FIELD_NUMBER: builtins.int + A_ONEOF_1_FIELD_NUMBER: builtins.int + A_ONEOF_2_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int + OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + USER_ID_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + EMAIL_BY_UID_FIELD_NUMBER: builtins.int + a_string: builtins.str + a_boolean: builtins.bool + a_uint32: builtins.int + a_enum: Global___OuterEnum.ValueType + a_external_enum: testproto.test3_pb2.OuterEnum.ValueType + inner_enum: Global___Simple1.InnerEnum.ValueType + nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType + a_oneof_1: builtins.str + a_oneof_2: builtins.str + outer_enum_in_oneof: Global___OuterEnum.ValueType + inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType + user_id: test.test_generated_mypy.UserId + email: test.test_generated_mypy.Email + @property + def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def a_inner(self) -> testproto.inner.inner_pb2.Inner: ... + @property + def a_nested(self) -> testproto.nested.nested_pb2.Nested: ... + @property + def rep_inner_enum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[Global___Simple1.InnerEnum.ValueType]: ... + @property + def inner_message(self) -> Global___Simple1.InnerMessage: ... + @property + def rep_inner_message(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Simple1.InnerMessage]: ... + @property + def no_package(self) -> testproto.nopackage_pb2.NoPackage: ... + @property + def nested_message(self) -> testproto.nested.nested_pb2.AnotherNested.NestedMessage: ... + @property + def outer_message_in_oneof(self) -> Global___Simple2: ... + @property + def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... + def __init__( + self, + *, + a_string: builtins.str | None = ..., + a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., + a_boolean: builtins.bool | None = ..., + a_uint32: builtins.int | None = ..., + a_enum: Global___OuterEnum.ValueType | None = ..., + a_external_enum: testproto.test3_pb2.OuterEnum.ValueType | None = ..., + a_inner: testproto.inner.inner_pb2.Inner | None = ..., + a_nested: testproto.nested.nested_pb2.Nested | None = ..., + inner_enum: Global___Simple1.InnerEnum.ValueType | None = ..., + rep_inner_enum: collections.abc.Iterable[Global___Simple1.InnerEnum.ValueType] | None = ..., + inner_message: Global___Simple1.InnerMessage | None = ..., + rep_inner_message: collections.abc.Iterable[Global___Simple1.InnerMessage] | None = ..., + no_package: testproto.nopackage_pb2.NoPackage | None = ..., + nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType | None = ..., + nested_message: testproto.nested.nested_pb2.AnotherNested.NestedMessage | None = ..., + a_oneof_1: builtins.str | None = ..., + a_oneof_2: builtins.str | None = ..., + outer_message_in_oneof: Global___Simple2 | None = ..., + outer_enum_in_oneof: Global___OuterEnum.ValueType | None = ..., + inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType | None = ..., + user_id: test.test_generated_mypy.UserId | None = ..., + email: test.test_generated_mypy.Email | None = ..., + email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "rep_inner_enum", b"rep_inner_enum", "rep_inner_message", b"rep_inner_message", "user_id", b"user_id"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_a_oneof: typing_extensions.TypeAlias = typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] + _WhichOneofArgType_a_oneof: typing_extensions.TypeAlias = typing.Literal["a_oneof", b"a_oneof"] + def WhichOneof(self, oneof_group: _WhichOneofArgType_a_oneof) -> _WhichOneofReturnType_a_oneof | None: ... + +Global___Simple1: typing_extensions.TypeAlias = Simple1 + +@typing.final +class Simple2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Simple2: typing_extensions.TypeAlias = Simple2 + +@typing.final +class Extensions1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EXT1_STRING_FIELD_NUMBER: builtins.int + ext1_string: builtins.str + EXT_FIELD_NUMBER: builtins.int + ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions1] + """ext""" + def __init__( + self, + *, + ext1_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["ext1_string", b"ext1_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["ext1_string", b"ext1_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Extensions1: typing_extensions.TypeAlias = Extensions1 + +@typing.final +class Extensions2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FLAG_FIELD_NUMBER: builtins.int + flag: builtins.bool + FOO_FIELD_NUMBER: builtins.int + foo: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions2] + """foo""" + def __init__( + self, + *, + flag: builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["flag", b"flag"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["flag", b"flag"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Extensions2: typing_extensions.TypeAlias = Extensions2 + +@typing.final +class _r_None(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALID_FIELD_NUMBER: builtins.int + valid: builtins.int + def __init__( + self, + *, + valid: builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["valid", b"valid"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["valid", b"valid"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global____r_None: typing_extensions.TypeAlias = _r_None + +@typing.final +class PythonReservedKeywords(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _finally: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _finallyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PythonReservedKeywords._finally.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + valid_in_finally: PythonReservedKeywords._finally.ValueType # 2 + + class _r_finally(_finally, metaclass=_finallyEnumTypeWrapper): ... + valid_in_finally: PythonReservedKeywords._r_finally.ValueType # 2 + + @typing.final + class _r_lambda(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONTINUE_FIELD_NUMBER: builtins.int + VALID_FIELD_NUMBER: builtins.int + valid: builtins.int + def __init__( + self, + *, + valid: builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["continue", b"continue", "valid", b"valid"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["continue", b"continue", "valid", b"valid"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + FROM_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + IS_FIELD_NUMBER: builtins.int + FOR_FIELD_NUMBER: builtins.int + TRY_FIELD_NUMBER: builtins.int + DEF_FIELD_NUMBER: builtins.int + NONLOCAL_FIELD_NUMBER: builtins.int + WHILE_FIELD_NUMBER: builtins.int + AND_FIELD_NUMBER: builtins.int + DEL_FIELD_NUMBER: builtins.int + GLOBAL_FIELD_NUMBER: builtins.int + NOT_FIELD_NUMBER: builtins.int + WITH_FIELD_NUMBER: builtins.int + AS_FIELD_NUMBER: builtins.int + ELIF_FIELD_NUMBER: builtins.int + IF_FIELD_NUMBER: builtins.int + OR_FIELD_NUMBER: builtins.int + YIELD_FIELD_NUMBER: builtins.int + ASSERT_FIELD_NUMBER: builtins.int + ELSE_FIELD_NUMBER: builtins.int + IMPORT_FIELD_NUMBER: builtins.int + PASS_FIELD_NUMBER: builtins.int + BREAK_FIELD_NUMBER: builtins.int + EXCEPT_FIELD_NUMBER: builtins.int + RAISE_FIELD_NUMBER: builtins.int + FALSE_FIELD_NUMBER: builtins.int + TRUE_FIELD_NUMBER: builtins.int + CLASS_FIELD_NUMBER: builtins.int + NONE_FIELD_NUMBER: builtins.int + VALID_FIELD_NUMBER: builtins.int + valid: Global___PythonReservedKeywords._r_finally.ValueType + @property + def none(self) -> Global____r_None: + """Test unreserved identifiers w/ reserved message names""" + + def __init__( + self, + *, + none: Global____r_None | None = ..., + valid: Global___PythonReservedKeywords._r_finally.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___PythonReservedKeywords: typing_extensions.TypeAlias = PythonReservedKeywords + +@typing.final +class PythonReservedKeywordsSmall(google.protobuf.message.Message): + """Do one with just one arg - to make sure it's syntactically correct""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FROM_FIELD_NUMBER: builtins.int + def __init__( + self, + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["from", b"from"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["from", b"from"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___PythonReservedKeywordsSmall: typing_extensions.TypeAlias = PythonReservedKeywordsSmall + +@typing.final +class SelfField(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SELF_FIELD_NUMBER: builtins.int + self: builtins.int + """Field self -> must generate an __init__ method w/ different name""" + def __init__( + self_, # pyright: ignore[reportSelfClsParameterName] + *, + self: builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["self", b"self"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["self", b"self"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___SelfField: typing_extensions.TypeAlias = SelfField + +@deprecated("""This message is deprecated""") +@typing.final +class DeprecatedMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DeprecatedMessage: typing_extensions.TypeAlias = DeprecatedMessage + +@deprecated("""This message has been marked as deprecated using proto message options.""") +@typing.final +class DeprecatedMessageBadComment(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DeprecatedMessageBadComment: typing_extensions.TypeAlias = DeprecatedMessageBadComment diff --git a/test/generated_async_only/testproto/test_pb2_grpc.pyi b/test/generated_async_only/testproto/test_pb2_grpc.pyi new file mode 100644 index 00000000..e7ed1217 --- /dev/null +++ b/test/generated_async_only/testproto/test_pb2_grpc.pyi @@ -0,0 +1,44 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Proto 2 test file.""" + +import abc +import collections.abc +import grpc.aio +import testproto.test_pb2 +import typing + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str + +class PythonReservedKeywordsServiceAsyncStub: + """Method name is reserved""" + + def __init__(self, channel: grpc.aio.Channel) -> None: ... + valid_method_name1: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, testproto.test_pb2._r_None] + """valid_method_name1""" + valid_method_name2: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, testproto.test_pb2.PythonReservedKeywords._r_lambda] + """valid_method_name2""" + +class PythonReservedKeywordsServiceServicer(metaclass=abc.ABCMeta): + """Method name is reserved""" + + @abc.abstractmethod + def valid_method_name1( + self, + request: testproto.test_pb2.Simple1, + context: grpc.aio.ServicerContext[testproto.test_pb2.Simple1, collections.abc.Awaitable[testproto.test_pb2._r_None]], + ) -> collections.abc.Awaitable[testproto.test_pb2._r_None]: + """valid_method_name1""" + + @abc.abstractmethod + def valid_method_name2( + self, + request: testproto.test_pb2.Simple1, + context: grpc.aio.ServicerContext[testproto.test_pb2.Simple1, collections.abc.Awaitable[testproto.test_pb2.PythonReservedKeywords._r_lambda]], + ) -> collections.abc.Awaitable[testproto.test_pb2.PythonReservedKeywords._r_lambda]: + """valid_method_name2""" + +def add_PythonReservedKeywordsServiceServicer_to_server(servicer: PythonReservedKeywordsServiceServicer, server: grpc.aio.Server) -> None: ... diff --git a/test/generated_sync_only/testproto/Capitalized/Capitalized_pb2.pyi b/test/generated_sync_only/testproto/Capitalized/Capitalized_pb2.pyi new file mode 100644 index 00000000..0bae1c93 --- /dev/null +++ b/test/generated_sync_only/testproto/Capitalized/Capitalized_pb2.pyi @@ -0,0 +1,71 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class lower(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: builtins.int + def __init__( + self, + *, + a: builtins.int = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a", b"a"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___lower: typing_extensions.TypeAlias = lower + +@typing.final +class Upper(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOWER_FIELD_NUMBER: builtins.int + @property + def Lower(self) -> Global___lower: ... + def __init__( + self, + *, + Lower: Global___lower | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["Lower", b"Lower"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["Lower", b"Lower"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Upper: typing_extensions.TypeAlias = Upper + +@typing.final +class lower2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + UPPER_FIELD_NUMBER: builtins.int + @property + def upper(self) -> Global___Upper: ... + def __init__( + self, + *, + upper: Global___Upper | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["upper", b"upper"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["upper", b"upper"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___lower2: typing_extensions.TypeAlias = lower2 diff --git a/test/generated_sync_only/testproto/Capitalized/Capitalized_pb2_grpc.pyi b/test/generated_sync_only/testproto/Capitalized/Capitalized_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/Capitalized/Capitalized_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/Capitalized/__init__.py b/test/generated_sync_only/testproto/Capitalized/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/__init__.py b/test/generated_sync_only/testproto/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/comment_special_chars_pb2.pyi b/test/generated_sync_only/testproto/comment_special_chars_pb2.pyi new file mode 100644 index 00000000..a0f6baf3 --- /dev/null +++ b/test/generated_sync_only/testproto/comment_special_chars_pb2.pyi @@ -0,0 +1,83 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Test(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + B_FIELD_NUMBER: builtins.int + C_FIELD_NUMBER: builtins.int + D_FIELD_NUMBER: builtins.int + E_FIELD_NUMBER: builtins.int + F_FIELD_NUMBER: builtins.int + G_FIELD_NUMBER: builtins.int + H_FIELD_NUMBER: builtins.int + I_FIELD_NUMBER: builtins.int + J_FIELD_NUMBER: builtins.int + K_FIELD_NUMBER: builtins.int + a: builtins.str + """Ending with " """ + b: builtins.str + """Ending with "" """ + c: builtins.str + """Ending with \"\"\" """ + d: builtins.str + """Ending with \\ """ + e: builtins.str + """Containing bad escape: \\x""" + f: builtins.str + """Containing \"\"\"" quadruple""" + g: builtins.str + """Containing \"\"\""" quintuple""" + h: builtins.str + """Containing \"\"\"\"\"\" sextuple""" + i: builtins.str + """\"\"\" Multiple \"\"\" triples \"\"\" """ + j: builtins.str + """"quotes" can be a problem in comments. + \"\"\"Triple quotes\"\"\" just as well + """ + k: builtins.str + """\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" + " " + " Super Duper comments with surrounding edges! " + " " + " Pay attention to me!!!! " + " " + \"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\" + """ + def __init__( + self, + *, + a: builtins.str = ..., + b: builtins.str = ..., + c: builtins.str = ..., + d: builtins.str = ..., + e: builtins.str = ..., + f: builtins.str = ..., + g: builtins.str = ..., + h: builtins.str = ..., + i: builtins.str = ..., + j: builtins.str = ..., + k: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.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"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Test: typing_extensions.TypeAlias = Test diff --git a/test/generated_sync_only/testproto/comment_special_chars_pb2_grpc.pyi b/test/generated_sync_only/testproto/comment_special_chars_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/comment_special_chars_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/dot/__init__.py b/test/generated_sync_only/testproto/dot/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/dot/com/__init__.py b/test/generated_sync_only/testproto/dot/com/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/dot/com/test_pb2.pyi b/test/generated_sync_only/testproto/dot/com/test_pb2.pyi new file mode 100644 index 00000000..a6d2ab11 --- /dev/null +++ b/test/generated_sync_only/testproto/dot/com/test_pb2.pyi @@ -0,0 +1,33 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class TestMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FOO_FIELD_NUMBER: builtins.int + foo: builtins.str + def __init__( + self, + *, + foo: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["foo", b"foo"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___TestMessage: typing_extensions.TypeAlias = TestMessage diff --git a/test/generated_sync_only/testproto/dot/com/test_pb2_grpc.pyi b/test/generated_sync_only/testproto/dot/com/test_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/dot/com/test_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/edition2024_pb2.pyi b/test/generated_sync_only/testproto/edition2024_pb2.pyi new file mode 100644 index 00000000..02e9c3fb --- /dev/null +++ b/test/generated_sync_only/testproto/edition2024_pb2.pyi @@ -0,0 +1,72 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Edition version of proto2 file""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Editions2024SubMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + THING_FIELD_NUMBER: builtins.int + thing: builtins.str + def __init__( + self, + *, + thing: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["thing", b"thing"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["thing", b"thing"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Editions2024SubMessage: typing_extensions.TypeAlias = Editions2024SubMessage + +@typing.final +class Editions2024Test(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LEGACY_FIELD_NUMBER: builtins.int + EXPLICIT_SINGULAR_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_FIELD_NUMBER: builtins.int + IMPLICIT_SINGULAR_FIELD_NUMBER: builtins.int + DEFAULT_SINGULAR_FIELD_NUMBER: builtins.int + legacy: builtins.str + """Expect to be always set""" + explicit_singular: builtins.str + """Expect HasField generated""" + implicit_singular: builtins.str + """Expect implicit field presence, no HasField generated""" + default_singular: builtins.str + """Not set, should default to EXPLICIT""" + @property + def message_field(self) -> Global___Editions2024SubMessage: + """Expect HasField generated?""" + + def __init__( + self, + *, + legacy: builtins.str | None = ..., + explicit_singular: builtins.str | None = ..., + message_field: Global___Editions2024SubMessage | None = ..., + implicit_singular: builtins.str = ..., + default_singular: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "legacy", b"legacy", "message_field", b"message_field"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["default_singular", b"default_singular", "explicit_singular", b"explicit_singular", "implicit_singular", b"implicit_singular", "legacy", b"legacy", "message_field", b"message_field"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Editions2024Test: typing_extensions.TypeAlias = Editions2024Test diff --git a/test/generated_sync_only/testproto/edition2024_pb2_grpc.pyi b/test/generated_sync_only/testproto/edition2024_pb2_grpc.pyi new file mode 100644 index 00000000..af6f0d3a --- /dev/null +++ b/test/generated_sync_only/testproto/edition2024_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Edition version of proto2 file""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/grpc/__init__.py b/test/generated_sync_only/testproto/grpc/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/grpc/dummy_pb2.pyi b/test/generated_sync_only/testproto/grpc/dummy_pb2.pyi new file mode 100644 index 00000000..94987554 --- /dev/null +++ b/test/generated_sync_only/testproto/grpc/dummy_pb2.pyi @@ -0,0 +1,2051 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class DummyRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUE_FIELD_NUMBER: builtins.int + value: builtins.str + def __init__( + self, + *, + value: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DummyRequest: typing_extensions.TypeAlias = DummyRequest + +@typing.final +class DummyReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUE_FIELD_NUMBER: builtins.int + value: builtins.str + def __init__( + self, + *, + value: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DummyReply: typing_extensions.TypeAlias = DummyReply + +@deprecated("""This message has been marked as deprecated using proto message options.""") +@typing.final +class DeprecatedRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + OLD_FIELD_FIELD_NUMBER: builtins.int + old_field: builtins.str + def __init__( + self, + *, + old_field: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["old_field", b"old_field"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DeprecatedRequest: typing_extensions.TypeAlias = DeprecatedRequest + +@typing.final +class ManyRequest1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest1: typing_extensions.TypeAlias = ManyRequest1 + +@typing.final +class ManyResponse1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse1: typing_extensions.TypeAlias = ManyResponse1 + +@typing.final +class ManyRequest2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest2: typing_extensions.TypeAlias = ManyRequest2 + +@typing.final +class ManyResponse2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse2: typing_extensions.TypeAlias = ManyResponse2 + +@typing.final +class ManyRequest3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest3: typing_extensions.TypeAlias = ManyRequest3 + +@typing.final +class ManyResponse3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse3: typing_extensions.TypeAlias = ManyResponse3 + +@typing.final +class ManyRequest4(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest4: typing_extensions.TypeAlias = ManyRequest4 + +@typing.final +class ManyResponse4(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse4: typing_extensions.TypeAlias = ManyResponse4 + +@typing.final +class ManyRequest5(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest5: typing_extensions.TypeAlias = ManyRequest5 + +@typing.final +class ManyResponse5(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse5: typing_extensions.TypeAlias = ManyResponse5 + +@typing.final +class ManyRequest6(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest6: typing_extensions.TypeAlias = ManyRequest6 + +@typing.final +class ManyResponse6(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse6: typing_extensions.TypeAlias = ManyResponse6 + +@typing.final +class ManyRequest7(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest7: typing_extensions.TypeAlias = ManyRequest7 + +@typing.final +class ManyResponse7(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse7: typing_extensions.TypeAlias = ManyResponse7 + +@typing.final +class ManyRequest8(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest8: typing_extensions.TypeAlias = ManyRequest8 + +@typing.final +class ManyResponse8(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse8: typing_extensions.TypeAlias = ManyResponse8 + +@typing.final +class ManyRequest9(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest9: typing_extensions.TypeAlias = ManyRequest9 + +@typing.final +class ManyResponse9(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse9: typing_extensions.TypeAlias = ManyResponse9 + +@typing.final +class ManyRequest10(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest10: typing_extensions.TypeAlias = ManyRequest10 + +@typing.final +class ManyResponse10(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse10: typing_extensions.TypeAlias = ManyResponse10 + +@typing.final +class ManyRequest11(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest11: typing_extensions.TypeAlias = ManyRequest11 + +@typing.final +class ManyResponse11(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse11: typing_extensions.TypeAlias = ManyResponse11 + +@typing.final +class ManyRequest12(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest12: typing_extensions.TypeAlias = ManyRequest12 + +@typing.final +class ManyResponse12(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse12: typing_extensions.TypeAlias = ManyResponse12 + +@typing.final +class ManyRequest13(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest13: typing_extensions.TypeAlias = ManyRequest13 + +@typing.final +class ManyResponse13(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse13: typing_extensions.TypeAlias = ManyResponse13 + +@typing.final +class ManyRequest14(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest14: typing_extensions.TypeAlias = ManyRequest14 + +@typing.final +class ManyResponse14(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse14: typing_extensions.TypeAlias = ManyResponse14 + +@typing.final +class ManyRequest15(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest15: typing_extensions.TypeAlias = ManyRequest15 + +@typing.final +class ManyResponse15(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse15: typing_extensions.TypeAlias = ManyResponse15 + +@typing.final +class ManyRequest16(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest16: typing_extensions.TypeAlias = ManyRequest16 + +@typing.final +class ManyResponse16(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse16: typing_extensions.TypeAlias = ManyResponse16 + +@typing.final +class ManyRequest17(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest17: typing_extensions.TypeAlias = ManyRequest17 + +@typing.final +class ManyResponse17(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse17: typing_extensions.TypeAlias = ManyResponse17 + +@typing.final +class ManyRequest18(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest18: typing_extensions.TypeAlias = ManyRequest18 + +@typing.final +class ManyResponse18(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse18: typing_extensions.TypeAlias = ManyResponse18 + +@typing.final +class ManyRequest19(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest19: typing_extensions.TypeAlias = ManyRequest19 + +@typing.final +class ManyResponse19(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse19: typing_extensions.TypeAlias = ManyResponse19 + +@typing.final +class ManyRequest20(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest20: typing_extensions.TypeAlias = ManyRequest20 + +@typing.final +class ManyResponse20(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse20: typing_extensions.TypeAlias = ManyResponse20 + +@typing.final +class ManyRequest21(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest21: typing_extensions.TypeAlias = ManyRequest21 + +@typing.final +class ManyResponse21(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse21: typing_extensions.TypeAlias = ManyResponse21 + +@typing.final +class ManyRequest22(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest22: typing_extensions.TypeAlias = ManyRequest22 + +@typing.final +class ManyResponse22(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse22: typing_extensions.TypeAlias = ManyResponse22 + +@typing.final +class ManyRequest23(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest23: typing_extensions.TypeAlias = ManyRequest23 + +@typing.final +class ManyResponse23(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse23: typing_extensions.TypeAlias = ManyResponse23 + +@typing.final +class ManyRequest24(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest24: typing_extensions.TypeAlias = ManyRequest24 + +@typing.final +class ManyResponse24(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse24: typing_extensions.TypeAlias = ManyResponse24 + +@typing.final +class ManyRequest25(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest25: typing_extensions.TypeAlias = ManyRequest25 + +@typing.final +class ManyResponse25(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse25: typing_extensions.TypeAlias = ManyResponse25 + +@typing.final +class ManyRequest26(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest26: typing_extensions.TypeAlias = ManyRequest26 + +@typing.final +class ManyResponse26(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse26: typing_extensions.TypeAlias = ManyResponse26 + +@typing.final +class ManyRequest27(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest27: typing_extensions.TypeAlias = ManyRequest27 + +@typing.final +class ManyResponse27(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse27: typing_extensions.TypeAlias = ManyResponse27 + +@typing.final +class ManyRequest28(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest28: typing_extensions.TypeAlias = ManyRequest28 + +@typing.final +class ManyResponse28(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse28: typing_extensions.TypeAlias = ManyResponse28 + +@typing.final +class ManyRequest29(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest29: typing_extensions.TypeAlias = ManyRequest29 + +@typing.final +class ManyResponse29(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse29: typing_extensions.TypeAlias = ManyResponse29 + +@typing.final +class ManyRequest30(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest30: typing_extensions.TypeAlias = ManyRequest30 + +@typing.final +class ManyResponse30(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse30: typing_extensions.TypeAlias = ManyResponse30 + +@typing.final +class ManyRequest31(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest31: typing_extensions.TypeAlias = ManyRequest31 + +@typing.final +class ManyResponse31(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse31: typing_extensions.TypeAlias = ManyResponse31 + +@typing.final +class ManyRequest32(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest32: typing_extensions.TypeAlias = ManyRequest32 + +@typing.final +class ManyResponse32(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse32: typing_extensions.TypeAlias = ManyResponse32 + +@typing.final +class ManyRequest33(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest33: typing_extensions.TypeAlias = ManyRequest33 + +@typing.final +class ManyResponse33(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse33: typing_extensions.TypeAlias = ManyResponse33 + +@typing.final +class ManyRequest34(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest34: typing_extensions.TypeAlias = ManyRequest34 + +@typing.final +class ManyResponse34(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse34: typing_extensions.TypeAlias = ManyResponse34 + +@typing.final +class ManyRequest35(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest35: typing_extensions.TypeAlias = ManyRequest35 + +@typing.final +class ManyResponse35(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse35: typing_extensions.TypeAlias = ManyResponse35 + +@typing.final +class ManyRequest36(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest36: typing_extensions.TypeAlias = ManyRequest36 + +@typing.final +class ManyResponse36(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse36: typing_extensions.TypeAlias = ManyResponse36 + +@typing.final +class ManyRequest37(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest37: typing_extensions.TypeAlias = ManyRequest37 + +@typing.final +class ManyResponse37(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse37: typing_extensions.TypeAlias = ManyResponse37 + +@typing.final +class ManyRequest38(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest38: typing_extensions.TypeAlias = ManyRequest38 + +@typing.final +class ManyResponse38(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse38: typing_extensions.TypeAlias = ManyResponse38 + +@typing.final +class ManyRequest39(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest39: typing_extensions.TypeAlias = ManyRequest39 + +@typing.final +class ManyResponse39(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse39: typing_extensions.TypeAlias = ManyResponse39 + +@typing.final +class ManyRequest40(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest40: typing_extensions.TypeAlias = ManyRequest40 + +@typing.final +class ManyResponse40(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse40: typing_extensions.TypeAlias = ManyResponse40 + +@typing.final +class ManyRequest41(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest41: typing_extensions.TypeAlias = ManyRequest41 + +@typing.final +class ManyResponse41(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse41: typing_extensions.TypeAlias = ManyResponse41 + +@typing.final +class ManyRequest42(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest42: typing_extensions.TypeAlias = ManyRequest42 + +@typing.final +class ManyResponse42(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse42: typing_extensions.TypeAlias = ManyResponse42 + +@typing.final +class ManyRequest43(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest43: typing_extensions.TypeAlias = ManyRequest43 + +@typing.final +class ManyResponse43(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse43: typing_extensions.TypeAlias = ManyResponse43 + +@typing.final +class ManyRequest44(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest44: typing_extensions.TypeAlias = ManyRequest44 + +@typing.final +class ManyResponse44(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse44: typing_extensions.TypeAlias = ManyResponse44 + +@typing.final +class ManyRequest45(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest45: typing_extensions.TypeAlias = ManyRequest45 + +@typing.final +class ManyResponse45(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse45: typing_extensions.TypeAlias = ManyResponse45 + +@typing.final +class ManyRequest46(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest46: typing_extensions.TypeAlias = ManyRequest46 + +@typing.final +class ManyResponse46(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse46: typing_extensions.TypeAlias = ManyResponse46 + +@typing.final +class ManyRequest47(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest47: typing_extensions.TypeAlias = ManyRequest47 + +@typing.final +class ManyResponse47(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse47: typing_extensions.TypeAlias = ManyResponse47 + +@typing.final +class ManyRequest48(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest48: typing_extensions.TypeAlias = ManyRequest48 + +@typing.final +class ManyResponse48(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse48: typing_extensions.TypeAlias = ManyResponse48 + +@typing.final +class ManyRequest49(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest49: typing_extensions.TypeAlias = ManyRequest49 + +@typing.final +class ManyResponse49(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse49: typing_extensions.TypeAlias = ManyResponse49 + +@typing.final +class ManyRequest50(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest50: typing_extensions.TypeAlias = ManyRequest50 + +@typing.final +class ManyResponse50(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse50: typing_extensions.TypeAlias = ManyResponse50 + +@typing.final +class ManyRequest51(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest51: typing_extensions.TypeAlias = ManyRequest51 + +@typing.final +class ManyResponse51(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse51: typing_extensions.TypeAlias = ManyResponse51 + +@typing.final +class ManyRequest52(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest52: typing_extensions.TypeAlias = ManyRequest52 + +@typing.final +class ManyResponse52(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse52: typing_extensions.TypeAlias = ManyResponse52 + +@typing.final +class ManyRequest53(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest53: typing_extensions.TypeAlias = ManyRequest53 + +@typing.final +class ManyResponse53(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse53: typing_extensions.TypeAlias = ManyResponse53 + +@typing.final +class ManyRequest54(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest54: typing_extensions.TypeAlias = ManyRequest54 + +@typing.final +class ManyResponse54(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse54: typing_extensions.TypeAlias = ManyResponse54 + +@typing.final +class ManyRequest55(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest55: typing_extensions.TypeAlias = ManyRequest55 + +@typing.final +class ManyResponse55(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse55: typing_extensions.TypeAlias = ManyResponse55 + +@typing.final +class ManyRequest56(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest56: typing_extensions.TypeAlias = ManyRequest56 + +@typing.final +class ManyResponse56(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse56: typing_extensions.TypeAlias = ManyResponse56 + +@typing.final +class ManyRequest57(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest57: typing_extensions.TypeAlias = ManyRequest57 + +@typing.final +class ManyResponse57(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse57: typing_extensions.TypeAlias = ManyResponse57 + +@typing.final +class ManyRequest58(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest58: typing_extensions.TypeAlias = ManyRequest58 + +@typing.final +class ManyResponse58(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse58: typing_extensions.TypeAlias = ManyResponse58 + +@typing.final +class ManyRequest59(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest59: typing_extensions.TypeAlias = ManyRequest59 + +@typing.final +class ManyResponse59(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse59: typing_extensions.TypeAlias = ManyResponse59 + +@typing.final +class ManyRequest60(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest60: typing_extensions.TypeAlias = ManyRequest60 + +@typing.final +class ManyResponse60(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse60: typing_extensions.TypeAlias = ManyResponse60 + +@typing.final +class ManyRequest61(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest61: typing_extensions.TypeAlias = ManyRequest61 + +@typing.final +class ManyResponse61(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse61: typing_extensions.TypeAlias = ManyResponse61 + +@typing.final +class ManyRequest62(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest62: typing_extensions.TypeAlias = ManyRequest62 + +@typing.final +class ManyResponse62(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse62: typing_extensions.TypeAlias = ManyResponse62 + +@typing.final +class ManyRequest63(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest63: typing_extensions.TypeAlias = ManyRequest63 + +@typing.final +class ManyResponse63(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse63: typing_extensions.TypeAlias = ManyResponse63 + +@typing.final +class ManyRequest64(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest64: typing_extensions.TypeAlias = ManyRequest64 + +@typing.final +class ManyResponse64(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse64: typing_extensions.TypeAlias = ManyResponse64 + +@typing.final +class ManyRequest65(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest65: typing_extensions.TypeAlias = ManyRequest65 + +@typing.final +class ManyResponse65(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse65: typing_extensions.TypeAlias = ManyResponse65 + +@typing.final +class ManyRequest66(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest66: typing_extensions.TypeAlias = ManyRequest66 + +@typing.final +class ManyResponse66(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse66: typing_extensions.TypeAlias = ManyResponse66 + +@typing.final +class ManyRequest67(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest67: typing_extensions.TypeAlias = ManyRequest67 + +@typing.final +class ManyResponse67(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse67: typing_extensions.TypeAlias = ManyResponse67 + +@typing.final +class ManyRequest68(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest68: typing_extensions.TypeAlias = ManyRequest68 + +@typing.final +class ManyResponse68(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse68: typing_extensions.TypeAlias = ManyResponse68 + +@typing.final +class ManyRequest69(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest69: typing_extensions.TypeAlias = ManyRequest69 + +@typing.final +class ManyResponse69(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse69: typing_extensions.TypeAlias = ManyResponse69 + +@typing.final +class ManyRequest70(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest70: typing_extensions.TypeAlias = ManyRequest70 + +@typing.final +class ManyResponse70(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse70: typing_extensions.TypeAlias = ManyResponse70 + +@typing.final +class ManyRequest71(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest71: typing_extensions.TypeAlias = ManyRequest71 + +@typing.final +class ManyResponse71(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse71: typing_extensions.TypeAlias = ManyResponse71 + +@typing.final +class ManyRequest72(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest72: typing_extensions.TypeAlias = ManyRequest72 + +@typing.final +class ManyResponse72(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse72: typing_extensions.TypeAlias = ManyResponse72 + +@typing.final +class ManyRequest73(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest73: typing_extensions.TypeAlias = ManyRequest73 + +@typing.final +class ManyResponse73(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse73: typing_extensions.TypeAlias = ManyResponse73 + +@typing.final +class ManyRequest74(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest74: typing_extensions.TypeAlias = ManyRequest74 + +@typing.final +class ManyResponse74(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse74: typing_extensions.TypeAlias = ManyResponse74 + +@typing.final +class ManyRequest75(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest75: typing_extensions.TypeAlias = ManyRequest75 + +@typing.final +class ManyResponse75(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse75: typing_extensions.TypeAlias = ManyResponse75 + +@typing.final +class ManyRequest76(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest76: typing_extensions.TypeAlias = ManyRequest76 + +@typing.final +class ManyResponse76(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse76: typing_extensions.TypeAlias = ManyResponse76 + +@typing.final +class ManyRequest77(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest77: typing_extensions.TypeAlias = ManyRequest77 + +@typing.final +class ManyResponse77(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse77: typing_extensions.TypeAlias = ManyResponse77 + +@typing.final +class ManyRequest78(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest78: typing_extensions.TypeAlias = ManyRequest78 + +@typing.final +class ManyResponse78(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse78: typing_extensions.TypeAlias = ManyResponse78 + +@typing.final +class ManyRequest79(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest79: typing_extensions.TypeAlias = ManyRequest79 + +@typing.final +class ManyResponse79(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse79: typing_extensions.TypeAlias = ManyResponse79 + +@typing.final +class ManyRequest80(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest80: typing_extensions.TypeAlias = ManyRequest80 + +@typing.final +class ManyResponse80(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse80: typing_extensions.TypeAlias = ManyResponse80 + +@typing.final +class ManyRequest81(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest81: typing_extensions.TypeAlias = ManyRequest81 + +@typing.final +class ManyResponse81(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse81: typing_extensions.TypeAlias = ManyResponse81 + +@typing.final +class ManyRequest82(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest82: typing_extensions.TypeAlias = ManyRequest82 + +@typing.final +class ManyResponse82(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse82: typing_extensions.TypeAlias = ManyResponse82 + +@typing.final +class ManyRequest83(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest83: typing_extensions.TypeAlias = ManyRequest83 + +@typing.final +class ManyResponse83(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse83: typing_extensions.TypeAlias = ManyResponse83 + +@typing.final +class ManyRequest84(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest84: typing_extensions.TypeAlias = ManyRequest84 + +@typing.final +class ManyResponse84(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse84: typing_extensions.TypeAlias = ManyResponse84 + +@typing.final +class ManyRequest85(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest85: typing_extensions.TypeAlias = ManyRequest85 + +@typing.final +class ManyResponse85(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse85: typing_extensions.TypeAlias = ManyResponse85 + +@typing.final +class ManyRequest86(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest86: typing_extensions.TypeAlias = ManyRequest86 + +@typing.final +class ManyResponse86(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse86: typing_extensions.TypeAlias = ManyResponse86 + +@typing.final +class ManyRequest87(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest87: typing_extensions.TypeAlias = ManyRequest87 + +@typing.final +class ManyResponse87(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse87: typing_extensions.TypeAlias = ManyResponse87 + +@typing.final +class ManyRequest88(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest88: typing_extensions.TypeAlias = ManyRequest88 + +@typing.final +class ManyResponse88(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse88: typing_extensions.TypeAlias = ManyResponse88 + +@typing.final +class ManyRequest89(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest89: typing_extensions.TypeAlias = ManyRequest89 + +@typing.final +class ManyResponse89(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse89: typing_extensions.TypeAlias = ManyResponse89 + +@typing.final +class ManyRequest90(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest90: typing_extensions.TypeAlias = ManyRequest90 + +@typing.final +class ManyResponse90(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse90: typing_extensions.TypeAlias = ManyResponse90 + +@typing.final +class ManyRequest91(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest91: typing_extensions.TypeAlias = ManyRequest91 + +@typing.final +class ManyResponse91(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse91: typing_extensions.TypeAlias = ManyResponse91 + +@typing.final +class ManyRequest92(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest92: typing_extensions.TypeAlias = ManyRequest92 + +@typing.final +class ManyResponse92(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse92: typing_extensions.TypeAlias = ManyResponse92 + +@typing.final +class ManyRequest93(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest93: typing_extensions.TypeAlias = ManyRequest93 + +@typing.final +class ManyResponse93(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse93: typing_extensions.TypeAlias = ManyResponse93 + +@typing.final +class ManyRequest94(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest94: typing_extensions.TypeAlias = ManyRequest94 + +@typing.final +class ManyResponse94(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse94: typing_extensions.TypeAlias = ManyResponse94 + +@typing.final +class ManyRequest95(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest95: typing_extensions.TypeAlias = ManyRequest95 + +@typing.final +class ManyResponse95(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse95: typing_extensions.TypeAlias = ManyResponse95 + +@typing.final +class ManyRequest96(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest96: typing_extensions.TypeAlias = ManyRequest96 + +@typing.final +class ManyResponse96(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse96: typing_extensions.TypeAlias = ManyResponse96 + +@typing.final +class ManyRequest97(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest97: typing_extensions.TypeAlias = ManyRequest97 + +@typing.final +class ManyResponse97(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse97: typing_extensions.TypeAlias = ManyResponse97 + +@typing.final +class ManyRequest98(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest98: typing_extensions.TypeAlias = ManyRequest98 + +@typing.final +class ManyResponse98(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse98: typing_extensions.TypeAlias = ManyResponse98 + +@typing.final +class ManyRequest99(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyRequest99: typing_extensions.TypeAlias = ManyRequest99 + +@typing.final +class ManyResponse99(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___ManyResponse99: typing_extensions.TypeAlias = ManyResponse99 diff --git a/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi new file mode 100644 index 00000000..f389dbb2 --- /dev/null +++ b/test/generated_sync_only/testproto/grpc/dummy_pb2_grpc.pyi @@ -0,0 +1,909 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" + +import abc +import collections.abc +import grpc +import sys +import testproto.grpc.dummy_pb2 +import typing + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str + +class DummyServiceStub: + """DummyService""" + + def __init__(self, channel: grpc.Channel) -> None: ... + UnaryUnary: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """UnaryUnary""" + UnaryStream: grpc.UnaryStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """UnaryStream""" + StreamUnary: grpc.StreamUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """StreamUnary""" + StreamStream: grpc.StreamStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """StreamStream""" + +class DummyServiceServicer(metaclass=abc.ABCMeta): + """DummyService""" + + @abc.abstractmethod + def UnaryUnary( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.DummyReply: + """UnaryUnary""" + + @abc.abstractmethod + def UnaryStream( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.ServicerContext, + ) -> collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyReply]: + """UnaryStream""" + + @abc.abstractmethod + def StreamUnary( + self, + request_iterator: collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyRequest], + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.DummyReply: + """StreamUnary""" + + @abc.abstractmethod + def StreamStream( + self, + request_iterator: collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyRequest], + context: grpc.ServicerContext, + ) -> collections.abc.Iterator[testproto.grpc.dummy_pb2.DummyReply]: + """StreamStream""" + +def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: grpc.Server) -> None: ... + +@deprecated("""This service is deprecated""") +class DeprecatedServiceStub: + """Marking the service as deprecated""" + + def __init__(self, channel: grpc.Channel) -> None: ... + DeprecatedMethod: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DeprecatedRequest, testproto.grpc.dummy_pb2.DummyReply] + """DeprecatedMethod""" + DeprecatedMethodNotDeprecatedRequest: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] + """DeprecatedMethodNotDeprecatedRequest""" + +@deprecated("""This service is deprecated""") +class DeprecatedServiceServicer(metaclass=abc.ABCMeta): + """Marking the service as deprecated""" + + @abc.abstractmethod + def DeprecatedMethod( + self, + request: testproto.grpc.dummy_pb2.DeprecatedRequest, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.DummyReply: + """DeprecatedMethod""" + + @abc.abstractmethod + def DeprecatedMethodNotDeprecatedRequest( + self, + request: testproto.grpc.dummy_pb2.DummyRequest, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.DummyReply: + """DeprecatedMethodNotDeprecatedRequest""" + +@deprecated("""This service is deprecated""") +def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: grpc.Server) -> None: ... + +class ManyRPCsServiceStub: + def __init__(self, channel: grpc.Channel) -> None: ... + Method1: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest1, testproto.grpc.dummy_pb2.ManyResponse1] + Method2: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest2, testproto.grpc.dummy_pb2.ManyResponse2] + Method3: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest3, testproto.grpc.dummy_pb2.ManyResponse3] + Method4: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest4, testproto.grpc.dummy_pb2.ManyResponse4] + Method5: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest5, testproto.grpc.dummy_pb2.ManyResponse5] + Method6: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest6, testproto.grpc.dummy_pb2.ManyResponse6] + Method7: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest7, testproto.grpc.dummy_pb2.ManyResponse7] + Method8: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest8, testproto.grpc.dummy_pb2.ManyResponse8] + Method9: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest9, testproto.grpc.dummy_pb2.ManyResponse9] + Method10: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest10, testproto.grpc.dummy_pb2.ManyResponse10] + Method11: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest11, testproto.grpc.dummy_pb2.ManyResponse11] + Method12: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest12, testproto.grpc.dummy_pb2.ManyResponse12] + Method13: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest13, testproto.grpc.dummy_pb2.ManyResponse13] + Method14: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest14, testproto.grpc.dummy_pb2.ManyResponse14] + Method15: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest15, testproto.grpc.dummy_pb2.ManyResponse15] + Method16: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest16, testproto.grpc.dummy_pb2.ManyResponse16] + Method17: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest17, testproto.grpc.dummy_pb2.ManyResponse17] + Method18: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest18, testproto.grpc.dummy_pb2.ManyResponse18] + Method19: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest19, testproto.grpc.dummy_pb2.ManyResponse19] + Method20: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest20, testproto.grpc.dummy_pb2.ManyResponse20] + Method21: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest21, testproto.grpc.dummy_pb2.ManyResponse21] + Method22: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest22, testproto.grpc.dummy_pb2.ManyResponse22] + Method23: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest23, testproto.grpc.dummy_pb2.ManyResponse23] + Method24: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest24, testproto.grpc.dummy_pb2.ManyResponse24] + Method25: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest25, testproto.grpc.dummy_pb2.ManyResponse25] + Method26: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest26, testproto.grpc.dummy_pb2.ManyResponse26] + Method27: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest27, testproto.grpc.dummy_pb2.ManyResponse27] + Method28: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest28, testproto.grpc.dummy_pb2.ManyResponse28] + Method29: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest29, testproto.grpc.dummy_pb2.ManyResponse29] + Method30: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest30, testproto.grpc.dummy_pb2.ManyResponse30] + Method31: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest31, testproto.grpc.dummy_pb2.ManyResponse31] + Method32: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest32, testproto.grpc.dummy_pb2.ManyResponse32] + Method33: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest33, testproto.grpc.dummy_pb2.ManyResponse33] + Method34: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest34, testproto.grpc.dummy_pb2.ManyResponse34] + Method35: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest35, testproto.grpc.dummy_pb2.ManyResponse35] + Method36: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest36, testproto.grpc.dummy_pb2.ManyResponse36] + Method37: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest37, testproto.grpc.dummy_pb2.ManyResponse37] + Method38: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest38, testproto.grpc.dummy_pb2.ManyResponse38] + Method39: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest39, testproto.grpc.dummy_pb2.ManyResponse39] + Method40: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest40, testproto.grpc.dummy_pb2.ManyResponse40] + Method41: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest41, testproto.grpc.dummy_pb2.ManyResponse41] + Method42: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest42, testproto.grpc.dummy_pb2.ManyResponse42] + Method43: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest43, testproto.grpc.dummy_pb2.ManyResponse43] + Method44: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest44, testproto.grpc.dummy_pb2.ManyResponse44] + Method45: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest45, testproto.grpc.dummy_pb2.ManyResponse45] + Method46: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest46, testproto.grpc.dummy_pb2.ManyResponse46] + Method47: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest47, testproto.grpc.dummy_pb2.ManyResponse47] + Method48: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest48, testproto.grpc.dummy_pb2.ManyResponse48] + Method49: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest49, testproto.grpc.dummy_pb2.ManyResponse49] + Method50: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest50, testproto.grpc.dummy_pb2.ManyResponse50] + Method51: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest51, testproto.grpc.dummy_pb2.ManyResponse51] + Method52: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest52, testproto.grpc.dummy_pb2.ManyResponse52] + Method53: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest53, testproto.grpc.dummy_pb2.ManyResponse53] + Method54: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest54, testproto.grpc.dummy_pb2.ManyResponse54] + Method55: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest55, testproto.grpc.dummy_pb2.ManyResponse55] + Method56: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest56, testproto.grpc.dummy_pb2.ManyResponse56] + Method57: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest57, testproto.grpc.dummy_pb2.ManyResponse57] + Method58: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest58, testproto.grpc.dummy_pb2.ManyResponse58] + Method59: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest59, testproto.grpc.dummy_pb2.ManyResponse59] + Method60: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest60, testproto.grpc.dummy_pb2.ManyResponse60] + Method61: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest61, testproto.grpc.dummy_pb2.ManyResponse61] + Method62: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest62, testproto.grpc.dummy_pb2.ManyResponse62] + Method63: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest63, testproto.grpc.dummy_pb2.ManyResponse63] + Method64: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest64, testproto.grpc.dummy_pb2.ManyResponse64] + Method65: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest65, testproto.grpc.dummy_pb2.ManyResponse65] + Method66: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest66, testproto.grpc.dummy_pb2.ManyResponse66] + Method67: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest67, testproto.grpc.dummy_pb2.ManyResponse67] + Method68: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest68, testproto.grpc.dummy_pb2.ManyResponse68] + Method69: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest69, testproto.grpc.dummy_pb2.ManyResponse69] + Method70: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest70, testproto.grpc.dummy_pb2.ManyResponse70] + Method71: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest71, testproto.grpc.dummy_pb2.ManyResponse71] + Method72: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest72, testproto.grpc.dummy_pb2.ManyResponse72] + Method73: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest73, testproto.grpc.dummy_pb2.ManyResponse73] + Method74: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest74, testproto.grpc.dummy_pb2.ManyResponse74] + Method75: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest75, testproto.grpc.dummy_pb2.ManyResponse75] + Method76: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest76, testproto.grpc.dummy_pb2.ManyResponse76] + Method77: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest77, testproto.grpc.dummy_pb2.ManyResponse77] + Method78: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest78, testproto.grpc.dummy_pb2.ManyResponse78] + Method79: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest79, testproto.grpc.dummy_pb2.ManyResponse79] + Method80: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest80, testproto.grpc.dummy_pb2.ManyResponse80] + Method81: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest81, testproto.grpc.dummy_pb2.ManyResponse81] + Method82: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest82, testproto.grpc.dummy_pb2.ManyResponse82] + Method83: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest83, testproto.grpc.dummy_pb2.ManyResponse83] + Method84: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest84, testproto.grpc.dummy_pb2.ManyResponse84] + Method85: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest85, testproto.grpc.dummy_pb2.ManyResponse85] + Method86: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest86, testproto.grpc.dummy_pb2.ManyResponse86] + Method87: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest87, testproto.grpc.dummy_pb2.ManyResponse87] + Method88: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest88, testproto.grpc.dummy_pb2.ManyResponse88] + Method89: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest89, testproto.grpc.dummy_pb2.ManyResponse89] + Method90: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest90, testproto.grpc.dummy_pb2.ManyResponse90] + Method91: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest91, testproto.grpc.dummy_pb2.ManyResponse91] + Method92: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest92, testproto.grpc.dummy_pb2.ManyResponse92] + Method93: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest93, testproto.grpc.dummy_pb2.ManyResponse93] + Method94: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest94, testproto.grpc.dummy_pb2.ManyResponse94] + Method95: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest95, testproto.grpc.dummy_pb2.ManyResponse95] + Method96: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest96, testproto.grpc.dummy_pb2.ManyResponse96] + Method97: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest97, testproto.grpc.dummy_pb2.ManyResponse97] + Method98: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest98, testproto.grpc.dummy_pb2.ManyResponse98] + Method99: grpc.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest99, testproto.grpc.dummy_pb2.ManyResponse99] + +class ManyRPCsServiceServicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def Method1( + self, + request: testproto.grpc.dummy_pb2.ManyRequest1, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse1: ... + + @abc.abstractmethod + def Method2( + self, + request: testproto.grpc.dummy_pb2.ManyRequest2, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse2: ... + + @abc.abstractmethod + def Method3( + self, + request: testproto.grpc.dummy_pb2.ManyRequest3, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse3: ... + + @abc.abstractmethod + def Method4( + self, + request: testproto.grpc.dummy_pb2.ManyRequest4, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse4: ... + + @abc.abstractmethod + def Method5( + self, + request: testproto.grpc.dummy_pb2.ManyRequest5, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse5: ... + + @abc.abstractmethod + def Method6( + self, + request: testproto.grpc.dummy_pb2.ManyRequest6, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse6: ... + + @abc.abstractmethod + def Method7( + self, + request: testproto.grpc.dummy_pb2.ManyRequest7, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse7: ... + + @abc.abstractmethod + def Method8( + self, + request: testproto.grpc.dummy_pb2.ManyRequest8, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse8: ... + + @abc.abstractmethod + def Method9( + self, + request: testproto.grpc.dummy_pb2.ManyRequest9, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse9: ... + + @abc.abstractmethod + def Method10( + self, + request: testproto.grpc.dummy_pb2.ManyRequest10, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse10: ... + + @abc.abstractmethod + def Method11( + self, + request: testproto.grpc.dummy_pb2.ManyRequest11, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse11: ... + + @abc.abstractmethod + def Method12( + self, + request: testproto.grpc.dummy_pb2.ManyRequest12, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse12: ... + + @abc.abstractmethod + def Method13( + self, + request: testproto.grpc.dummy_pb2.ManyRequest13, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse13: ... + + @abc.abstractmethod + def Method14( + self, + request: testproto.grpc.dummy_pb2.ManyRequest14, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse14: ... + + @abc.abstractmethod + def Method15( + self, + request: testproto.grpc.dummy_pb2.ManyRequest15, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse15: ... + + @abc.abstractmethod + def Method16( + self, + request: testproto.grpc.dummy_pb2.ManyRequest16, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse16: ... + + @abc.abstractmethod + def Method17( + self, + request: testproto.grpc.dummy_pb2.ManyRequest17, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse17: ... + + @abc.abstractmethod + def Method18( + self, + request: testproto.grpc.dummy_pb2.ManyRequest18, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse18: ... + + @abc.abstractmethod + def Method19( + self, + request: testproto.grpc.dummy_pb2.ManyRequest19, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse19: ... + + @abc.abstractmethod + def Method20( + self, + request: testproto.grpc.dummy_pb2.ManyRequest20, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse20: ... + + @abc.abstractmethod + def Method21( + self, + request: testproto.grpc.dummy_pb2.ManyRequest21, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse21: ... + + @abc.abstractmethod + def Method22( + self, + request: testproto.grpc.dummy_pb2.ManyRequest22, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse22: ... + + @abc.abstractmethod + def Method23( + self, + request: testproto.grpc.dummy_pb2.ManyRequest23, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse23: ... + + @abc.abstractmethod + def Method24( + self, + request: testproto.grpc.dummy_pb2.ManyRequest24, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse24: ... + + @abc.abstractmethod + def Method25( + self, + request: testproto.grpc.dummy_pb2.ManyRequest25, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse25: ... + + @abc.abstractmethod + def Method26( + self, + request: testproto.grpc.dummy_pb2.ManyRequest26, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse26: ... + + @abc.abstractmethod + def Method27( + self, + request: testproto.grpc.dummy_pb2.ManyRequest27, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse27: ... + + @abc.abstractmethod + def Method28( + self, + request: testproto.grpc.dummy_pb2.ManyRequest28, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse28: ... + + @abc.abstractmethod + def Method29( + self, + request: testproto.grpc.dummy_pb2.ManyRequest29, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse29: ... + + @abc.abstractmethod + def Method30( + self, + request: testproto.grpc.dummy_pb2.ManyRequest30, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse30: ... + + @abc.abstractmethod + def Method31( + self, + request: testproto.grpc.dummy_pb2.ManyRequest31, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse31: ... + + @abc.abstractmethod + def Method32( + self, + request: testproto.grpc.dummy_pb2.ManyRequest32, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse32: ... + + @abc.abstractmethod + def Method33( + self, + request: testproto.grpc.dummy_pb2.ManyRequest33, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse33: ... + + @abc.abstractmethod + def Method34( + self, + request: testproto.grpc.dummy_pb2.ManyRequest34, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse34: ... + + @abc.abstractmethod + def Method35( + self, + request: testproto.grpc.dummy_pb2.ManyRequest35, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse35: ... + + @abc.abstractmethod + def Method36( + self, + request: testproto.grpc.dummy_pb2.ManyRequest36, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse36: ... + + @abc.abstractmethod + def Method37( + self, + request: testproto.grpc.dummy_pb2.ManyRequest37, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse37: ... + + @abc.abstractmethod + def Method38( + self, + request: testproto.grpc.dummy_pb2.ManyRequest38, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse38: ... + + @abc.abstractmethod + def Method39( + self, + request: testproto.grpc.dummy_pb2.ManyRequest39, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse39: ... + + @abc.abstractmethod + def Method40( + self, + request: testproto.grpc.dummy_pb2.ManyRequest40, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse40: ... + + @abc.abstractmethod + def Method41( + self, + request: testproto.grpc.dummy_pb2.ManyRequest41, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse41: ... + + @abc.abstractmethod + def Method42( + self, + request: testproto.grpc.dummy_pb2.ManyRequest42, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse42: ... + + @abc.abstractmethod + def Method43( + self, + request: testproto.grpc.dummy_pb2.ManyRequest43, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse43: ... + + @abc.abstractmethod + def Method44( + self, + request: testproto.grpc.dummy_pb2.ManyRequest44, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse44: ... + + @abc.abstractmethod + def Method45( + self, + request: testproto.grpc.dummy_pb2.ManyRequest45, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse45: ... + + @abc.abstractmethod + def Method46( + self, + request: testproto.grpc.dummy_pb2.ManyRequest46, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse46: ... + + @abc.abstractmethod + def Method47( + self, + request: testproto.grpc.dummy_pb2.ManyRequest47, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse47: ... + + @abc.abstractmethod + def Method48( + self, + request: testproto.grpc.dummy_pb2.ManyRequest48, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse48: ... + + @abc.abstractmethod + def Method49( + self, + request: testproto.grpc.dummy_pb2.ManyRequest49, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse49: ... + + @abc.abstractmethod + def Method50( + self, + request: testproto.grpc.dummy_pb2.ManyRequest50, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse50: ... + + @abc.abstractmethod + def Method51( + self, + request: testproto.grpc.dummy_pb2.ManyRequest51, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse51: ... + + @abc.abstractmethod + def Method52( + self, + request: testproto.grpc.dummy_pb2.ManyRequest52, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse52: ... + + @abc.abstractmethod + def Method53( + self, + request: testproto.grpc.dummy_pb2.ManyRequest53, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse53: ... + + @abc.abstractmethod + def Method54( + self, + request: testproto.grpc.dummy_pb2.ManyRequest54, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse54: ... + + @abc.abstractmethod + def Method55( + self, + request: testproto.grpc.dummy_pb2.ManyRequest55, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse55: ... + + @abc.abstractmethod + def Method56( + self, + request: testproto.grpc.dummy_pb2.ManyRequest56, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse56: ... + + @abc.abstractmethod + def Method57( + self, + request: testproto.grpc.dummy_pb2.ManyRequest57, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse57: ... + + @abc.abstractmethod + def Method58( + self, + request: testproto.grpc.dummy_pb2.ManyRequest58, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse58: ... + + @abc.abstractmethod + def Method59( + self, + request: testproto.grpc.dummy_pb2.ManyRequest59, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse59: ... + + @abc.abstractmethod + def Method60( + self, + request: testproto.grpc.dummy_pb2.ManyRequest60, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse60: ... + + @abc.abstractmethod + def Method61( + self, + request: testproto.grpc.dummy_pb2.ManyRequest61, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse61: ... + + @abc.abstractmethod + def Method62( + self, + request: testproto.grpc.dummy_pb2.ManyRequest62, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse62: ... + + @abc.abstractmethod + def Method63( + self, + request: testproto.grpc.dummy_pb2.ManyRequest63, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse63: ... + + @abc.abstractmethod + def Method64( + self, + request: testproto.grpc.dummy_pb2.ManyRequest64, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse64: ... + + @abc.abstractmethod + def Method65( + self, + request: testproto.grpc.dummy_pb2.ManyRequest65, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse65: ... + + @abc.abstractmethod + def Method66( + self, + request: testproto.grpc.dummy_pb2.ManyRequest66, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse66: ... + + @abc.abstractmethod + def Method67( + self, + request: testproto.grpc.dummy_pb2.ManyRequest67, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse67: ... + + @abc.abstractmethod + def Method68( + self, + request: testproto.grpc.dummy_pb2.ManyRequest68, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse68: ... + + @abc.abstractmethod + def Method69( + self, + request: testproto.grpc.dummy_pb2.ManyRequest69, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse69: ... + + @abc.abstractmethod + def Method70( + self, + request: testproto.grpc.dummy_pb2.ManyRequest70, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse70: ... + + @abc.abstractmethod + def Method71( + self, + request: testproto.grpc.dummy_pb2.ManyRequest71, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse71: ... + + @abc.abstractmethod + def Method72( + self, + request: testproto.grpc.dummy_pb2.ManyRequest72, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse72: ... + + @abc.abstractmethod + def Method73( + self, + request: testproto.grpc.dummy_pb2.ManyRequest73, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse73: ... + + @abc.abstractmethod + def Method74( + self, + request: testproto.grpc.dummy_pb2.ManyRequest74, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse74: ... + + @abc.abstractmethod + def Method75( + self, + request: testproto.grpc.dummy_pb2.ManyRequest75, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse75: ... + + @abc.abstractmethod + def Method76( + self, + request: testproto.grpc.dummy_pb2.ManyRequest76, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse76: ... + + @abc.abstractmethod + def Method77( + self, + request: testproto.grpc.dummy_pb2.ManyRequest77, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse77: ... + + @abc.abstractmethod + def Method78( + self, + request: testproto.grpc.dummy_pb2.ManyRequest78, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse78: ... + + @abc.abstractmethod + def Method79( + self, + request: testproto.grpc.dummy_pb2.ManyRequest79, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse79: ... + + @abc.abstractmethod + def Method80( + self, + request: testproto.grpc.dummy_pb2.ManyRequest80, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse80: ... + + @abc.abstractmethod + def Method81( + self, + request: testproto.grpc.dummy_pb2.ManyRequest81, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse81: ... + + @abc.abstractmethod + def Method82( + self, + request: testproto.grpc.dummy_pb2.ManyRequest82, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse82: ... + + @abc.abstractmethod + def Method83( + self, + request: testproto.grpc.dummy_pb2.ManyRequest83, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse83: ... + + @abc.abstractmethod + def Method84( + self, + request: testproto.grpc.dummy_pb2.ManyRequest84, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse84: ... + + @abc.abstractmethod + def Method85( + self, + request: testproto.grpc.dummy_pb2.ManyRequest85, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse85: ... + + @abc.abstractmethod + def Method86( + self, + request: testproto.grpc.dummy_pb2.ManyRequest86, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse86: ... + + @abc.abstractmethod + def Method87( + self, + request: testproto.grpc.dummy_pb2.ManyRequest87, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse87: ... + + @abc.abstractmethod + def Method88( + self, + request: testproto.grpc.dummy_pb2.ManyRequest88, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse88: ... + + @abc.abstractmethod + def Method89( + self, + request: testproto.grpc.dummy_pb2.ManyRequest89, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse89: ... + + @abc.abstractmethod + def Method90( + self, + request: testproto.grpc.dummy_pb2.ManyRequest90, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse90: ... + + @abc.abstractmethod + def Method91( + self, + request: testproto.grpc.dummy_pb2.ManyRequest91, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse91: ... + + @abc.abstractmethod + def Method92( + self, + request: testproto.grpc.dummy_pb2.ManyRequest92, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse92: ... + + @abc.abstractmethod + def Method93( + self, + request: testproto.grpc.dummy_pb2.ManyRequest93, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse93: ... + + @abc.abstractmethod + def Method94( + self, + request: testproto.grpc.dummy_pb2.ManyRequest94, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse94: ... + + @abc.abstractmethod + def Method95( + self, + request: testproto.grpc.dummy_pb2.ManyRequest95, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse95: ... + + @abc.abstractmethod + def Method96( + self, + request: testproto.grpc.dummy_pb2.ManyRequest96, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse96: ... + + @abc.abstractmethod + def Method97( + self, + request: testproto.grpc.dummy_pb2.ManyRequest97, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse97: ... + + @abc.abstractmethod + def Method98( + self, + request: testproto.grpc.dummy_pb2.ManyRequest98, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse98: ... + + @abc.abstractmethod + def Method99( + self, + request: testproto.grpc.dummy_pb2.ManyRequest99, + context: grpc.ServicerContext, + ) -> testproto.grpc.dummy_pb2.ManyResponse99: ... + +def add_ManyRPCsServiceServicer_to_server(servicer: ManyRPCsServiceServicer, server: grpc.Server) -> None: ... + +class EmptyServiceStub: + def __init__(self, channel: grpc.Channel) -> None: ... + +class EmptyServiceServicer(metaclass=abc.ABCMeta): + ... + +def add_EmptyServiceServicer_to_server(servicer: EmptyServiceServicer, server: grpc.Server) -> None: ... diff --git a/test/generated_sync_only/testproto/grpc/import_pb2.pyi b/test/generated_sync_only/testproto/grpc/import_pb2.pyi new file mode 100644 index 00000000..dd854e28 --- /dev/null +++ b/test/generated_sync_only/testproto/grpc/import_pb2.pyi @@ -0,0 +1,8 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import google.protobuf.descriptor + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi new file mode 100644 index 00000000..4525deb7 --- /dev/null +++ b/test/generated_sync_only/testproto/grpc/import_pb2_grpc.pyi @@ -0,0 +1,53 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import google.protobuf.empty_pb2 +import grpc +import testproto.test_pb2 +import typing + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str + +class SimpleServiceStub: + """SimpleService""" + + def __init__(self, channel: grpc.Channel) -> None: ... + UnaryUnary: grpc.UnaryUnaryMultiCallable[google.protobuf.empty_pb2.Empty, testproto.test_pb2.Simple1] + """UnaryUnary""" + UnaryStream: grpc.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] + """UnaryStream""" + NoComment: grpc.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] + +class SimpleServiceServicer(metaclass=abc.ABCMeta): + """SimpleService""" + + @abc.abstractmethod + def UnaryUnary( + self, + request: google.protobuf.empty_pb2.Empty, + context: grpc.ServicerContext, + ) -> testproto.test_pb2.Simple1: + """UnaryUnary""" + + @abc.abstractmethod + def UnaryStream( + self, + request: testproto.test_pb2.Simple1, + context: grpc.ServicerContext, + ) -> google.protobuf.empty_pb2.Empty: + """UnaryStream""" + + @abc.abstractmethod + def NoComment( + self, + request: testproto.test_pb2.Simple1, + context: grpc.ServicerContext, + ) -> google.protobuf.empty_pb2.Empty: ... + +def add_SimpleServiceServicer_to_server(servicer: SimpleServiceServicer, server: grpc.Server) -> None: ... diff --git a/test/generated_sync_only/testproto/inner/__init__.py b/test/generated_sync_only/testproto/inner/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/inner/inner_pb2.pyi b/test/generated_sync_only/testproto/inner/inner_pb2.pyi new file mode 100644 index 00000000..8a029c4e --- /dev/null +++ b/test/generated_sync_only/testproto/inner/inner_pb2.pyi @@ -0,0 +1,34 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Inner(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: testproto.test3_pb2.OuterEnum.ValueType + def __init__( + self, + *, + a: testproto.test3_pb2.OuterEnum.ValueType = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a", b"a"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Inner: typing_extensions.TypeAlias = Inner diff --git a/test/generated_sync_only/testproto/inner/inner_pb2_grpc.pyi b/test/generated_sync_only/testproto/inner/inner_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/inner/inner_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/nested/__init__.py b/test/generated_sync_only/testproto/nested/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/test/generated_sync_only/testproto/nested/nested_pb2.pyi b/test/generated_sync_only/testproto/nested/nested_pb2.pyi new file mode 100644 index 00000000..ca263aee --- /dev/null +++ b/test/generated_sync_only/testproto/nested/nested_pb2.pyi @@ -0,0 +1,98 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Nested(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_FIELD_NUMBER: builtins.int + a: testproto.test3_pb2.OuterEnum.ValueType + def __init__( + self, + *, + a: testproto.test3_pb2.OuterEnum.ValueType = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a", b"a"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Nested: typing_extensions.TypeAlias = Nested + +@typing.final +class AnotherNested(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _NestedEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _NestedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested._NestedEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID: AnotherNested._NestedEnum.ValueType # 0 + ONE: AnotherNested._NestedEnum.ValueType # 1 + TWO: AnotherNested._NestedEnum.ValueType # 2 + + class NestedEnum(_NestedEnum, metaclass=_NestedEnumEnumTypeWrapper): ... + INVALID: AnotherNested.NestedEnum.ValueType # 0 + ONE: AnotherNested.NestedEnum.ValueType # 1 + TWO: AnotherNested.NestedEnum.ValueType # 2 + + @typing.final + class NestedMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _NestedEnum2: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _NestedEnum2EnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AnotherNested.NestedMessage._NestedEnum2.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNDEFINED: AnotherNested.NestedMessage._NestedEnum2.ValueType # 0 + NESTED_ENUM1: AnotherNested.NestedMessage._NestedEnum2.ValueType # 1 + NESTED_ENUM2: AnotherNested.NestedMessage._NestedEnum2.ValueType # 2 + + class NestedEnum2(_NestedEnum2, metaclass=_NestedEnum2EnumTypeWrapper): ... + UNDEFINED: AnotherNested.NestedMessage.NestedEnum2.ValueType # 0 + NESTED_ENUM1: AnotherNested.NestedMessage.NestedEnum2.ValueType # 1 + NESTED_ENUM2: AnotherNested.NestedMessage.NestedEnum2.ValueType # 2 + + S_FIELD_NUMBER: builtins.int + B_FIELD_NUMBER: builtins.int + NE_FIELD_NUMBER: builtins.int + NE2_FIELD_NUMBER: builtins.int + s: builtins.str + b: builtins.bool + ne: Global___AnotherNested.NestedEnum.ValueType + ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType + def __init__( + self, + *, + s: builtins.str = ..., + b: builtins.bool = ..., + ne: Global___AnotherNested.NestedEnum.ValueType = ..., + ne2: Global___AnotherNested.NestedMessage.NestedEnum2.ValueType = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["b", b"b", "ne", b"ne", "ne2", b"ne2", "s", b"s"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + def __init__( + self, + ) -> None: ... + +Global___AnotherNested: typing_extensions.TypeAlias = AnotherNested diff --git a/test/generated_sync_only/testproto/nested/nested_pb2_grpc.pyi b/test/generated_sync_only/testproto/nested/nested_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/nested/nested_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/nopackage_pb2.pyi b/test/generated_sync_only/testproto/nopackage_pb2.pyi new file mode 100644 index 00000000..f4455c17 --- /dev/null +++ b/test/generated_sync_only/testproto/nopackage_pb2.pyi @@ -0,0 +1,54 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class NoPackage(google.protobuf.message.Message): + """Intentionally don't set a package - just to make sure we can handle it.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___NoPackage: typing_extensions.TypeAlias = NoPackage + +@typing.final +class NoPackage2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NP_FIELD_NUMBER: builtins.int + NP_REP_FIELD_NUMBER: builtins.int + @property + def np(self) -> Global___NoPackage: ... + @property + def np_rep(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___NoPackage]: ... + def __init__( + self, + *, + np: Global___NoPackage | None = ..., + np_rep: collections.abc.Iterable[Global___NoPackage] | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["np", b"np"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["np", b"np", "np_rep", b"np_rep"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___NoPackage2: typing_extensions.TypeAlias = NoPackage2 diff --git a/test/generated_sync_only/testproto/nopackage_pb2_grpc.pyi b/test/generated_sync_only/testproto/nopackage_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/nopackage_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/readme_enum_pb2.pyi b/test/generated_sync_only/testproto/readme_enum_pb2.pyi new file mode 100644 index 00000000..be8369c4 --- /dev/null +++ b/test/generated_sync_only/testproto/readme_enum_pb2.pyi @@ -0,0 +1,32 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _MyEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _MyEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MyEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + HELLO: _MyEnum.ValueType # 0 + WORLD: _MyEnum.ValueType # 1 + +class MyEnum(_MyEnum, metaclass=_MyEnumEnumTypeWrapper): ... + +HELLO: MyEnum.ValueType # 0 +WORLD: MyEnum.ValueType # 1 +Global___MyEnum: typing_extensions.TypeAlias = MyEnum diff --git a/test/generated_sync_only/testproto/readme_enum_pb2_grpc.pyi b/test/generated_sync_only/testproto/readme_enum_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/readme_enum_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/reexport_pb2.pyi b/test/generated_sync_only/testproto/reexport_pb2.pyi new file mode 100644 index 00000000..9702c2bd --- /dev/null +++ b/test/generated_sync_only/testproto/reexport_pb2.pyi @@ -0,0 +1,19 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import google.protobuf.descriptor +from google.protobuf.empty_pb2 import ( + Empty as Empty, +) +from testproto.test3_pb2 import ( + BAR3 as BAR3, + FOO3 as FOO3, + OuterEnum as OuterEnum, + OuterMessage3 as OuterMessage3, + SimpleProto3 as SimpleProto3, + UNKNOWN as UNKNOWN, +) + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/test/generated_sync_only/testproto/reexport_pb2_grpc.pyi b/test/generated_sync_only/testproto/reexport_pb2_grpc.pyi new file mode 100644 index 00000000..9c28bd7a --- /dev/null +++ b/test/generated_sync_only/testproto/reexport_pb2_grpc.pyi @@ -0,0 +1,21 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc +from google.protobuf.empty_pb2 import ( + Empty as Empty, +) +from testproto.test3_pb2 import ( + BAR3 as BAR3, + FOO3 as FOO3, + OuterEnum as OuterEnum, + OuterMessage3 as OuterMessage3, + SimpleProto3 as SimpleProto3, + UNKNOWN as UNKNOWN, +) + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/test3_pb2.pyi b/test/generated_sync_only/testproto/test3_pb2.pyi new file mode 100644 index 00000000..ca2421ab --- /dev/null +++ b/test/generated_sync_only/testproto/test3_pb2.pyi @@ -0,0 +1,222 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +package test3""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import test.test_generated_mypy +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _OuterEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNKNOWN: _OuterEnum.ValueType # 0 + FOO3: _OuterEnum.ValueType # 1 + BAR3: _OuterEnum.ValueType # 2 + +class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): ... + +UNKNOWN: OuterEnum.ValueType # 0 +FOO3: OuterEnum.ValueType # 1 +BAR3: OuterEnum.ValueType # 2 +Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum + +@typing.final +class OuterMessage3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___OuterMessage3: typing_extensions.TypeAlias = OuterMessage3 + +@typing.final +class SimpleProto3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _InnerEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SimpleProto3._InnerEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INNER1: SimpleProto3._InnerEnum.ValueType # 0 + INNER2: SimpleProto3._InnerEnum.ValueType # 1 + + class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): ... + INNER1: SimpleProto3.InnerEnum.ValueType # 0 + INNER2: SimpleProto3.InnerEnum.ValueType # 1 + + @typing.final + class MapScalarEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int = ..., + value: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @typing.final + class MapMessageEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + @property + def value(self) -> Global___OuterMessage3: ... + def __init__( + self, + *, + key: builtins.int = ..., + value: Global___OuterMessage3 | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["value", b"value"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @typing.final + class EmailByUidEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int = ..., + value: builtins.str = ..., + ) -> None: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + A_STRING_FIELD_NUMBER: builtins.int + A_REPEATED_STRING_FIELD_NUMBER: builtins.int + A_OUTER_ENUM_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_FIELD_NUMBER: builtins.int + INNER_ENUM_FIELD_NUMBER: builtins.int + A_ONEOF_1_FIELD_NUMBER: builtins.int + A_ONEOF_2_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int + OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + B_ONEOF_1_FIELD_NUMBER: builtins.int + B_ONEOF_2_FIELD_NUMBER: builtins.int + BOOL_FIELD_NUMBER: builtins.int + OUTERENUM_FIELD_NUMBER: builtins.int + OUTERMESSAGE3_FIELD_NUMBER: builtins.int + MAP_SCALAR_FIELD_NUMBER: builtins.int + MAP_MESSAGE_FIELD_NUMBER: builtins.int + AN_OPTIONAL_STRING_FIELD_NUMBER: builtins.int + USER_ID_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + EMAIL_BY_UID_FIELD_NUMBER: builtins.int + a_string: builtins.str + a_outer_enum: Global___OuterEnum.ValueType + inner_enum: Global___SimpleProto3.InnerEnum.ValueType + a_oneof_1: builtins.str + a_oneof_2: builtins.str + outer_enum_in_oneof: Global___OuterEnum.ValueType + inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType + b_oneof_1: builtins.str + b_oneof_2: builtins.str + OuterEnum: Global___OuterEnum.ValueType + """Test having fieldname match messagename""" + an_optional_string: builtins.str + user_id: test.test_generated_mypy.UserId + email: test.test_generated_mypy.Email + @property + def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def outer_message(self) -> Global___OuterMessage3: ... + @property + def outer_message_in_oneof(self) -> Global___OuterMessage3: ... + @property + def bool(self) -> Global___OuterMessage3: ... + @property + def OuterMessage3(self) -> Global___OuterMessage3: ... + @property + def map_scalar(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.str]: + """Test generation of map""" + + @property + def map_message(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, Global___OuterMessage3]: ... + @property + def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... + def __init__( + self, + *, + a_string: builtins.str = ..., + a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., + a_outer_enum: Global___OuterEnum.ValueType = ..., + outer_message: Global___OuterMessage3 | None = ..., + inner_enum: Global___SimpleProto3.InnerEnum.ValueType = ..., + a_oneof_1: builtins.str = ..., + a_oneof_2: builtins.str = ..., + outer_message_in_oneof: Global___OuterMessage3 | None = ..., + outer_enum_in_oneof: Global___OuterEnum.ValueType = ..., + inner_enum_in_oneof: Global___SimpleProto3.InnerEnum.ValueType = ..., + b_oneof_1: builtins.str = ..., + b_oneof_2: builtins.str = ..., + bool: Global___OuterMessage3 | None = ..., + OuterEnum: Global___OuterEnum.ValueType = ..., + OuterMessage3: Global___OuterMessage3 | None = ..., + map_scalar: collections.abc.Mapping[builtins.int, builtins.str] | None = ..., + map_message: collections.abc.Mapping[builtins.int, Global___OuterMessage3] | None = ..., + an_optional_string: builtins.str | None = ..., + user_id: test.test_generated_mypy.UserId = ..., + email: test.test_generated_mypy.Email = ..., + email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "inner_enum_in_oneof", b"inner_enum_in_oneof", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["OuterEnum", b"OuterEnum", "OuterMessage3", b"OuterMessage3", "_an_optional_string", b"_an_optional_string", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_outer_enum", b"a_outer_enum", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "an_optional_string", b"an_optional_string", "b_oneof", b"b_oneof", "b_oneof_1", b"b_oneof_1", "b_oneof_2", b"b_oneof_2", "bool", b"bool", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "map_message", b"map_message", "map_scalar", b"map_scalar", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message", b"outer_message", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__an_optional_string: typing_extensions.TypeAlias = typing.Literal["an_optional_string"] + _WhichOneofArgType__an_optional_string: typing_extensions.TypeAlias = typing.Literal["_an_optional_string", b"_an_optional_string"] + _WhichOneofReturnType_a_oneof: typing_extensions.TypeAlias = typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] + _WhichOneofArgType_a_oneof: typing_extensions.TypeAlias = typing.Literal["a_oneof", b"a_oneof"] + _WhichOneofReturnType_b_oneof: typing_extensions.TypeAlias = typing.Literal["b_oneof_1", "b_oneof_2"] + _WhichOneofArgType_b_oneof: typing_extensions.TypeAlias = typing.Literal["b_oneof", b"b_oneof"] + @typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__an_optional_string) -> _WhichOneofReturnType__an_optional_string | None: ... + @typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_a_oneof) -> _WhichOneofReturnType_a_oneof | None: ... + @typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_b_oneof) -> _WhichOneofReturnType_b_oneof | None: ... + +Global___SimpleProto3: typing_extensions.TypeAlias = SimpleProto3 diff --git a/test/generated_sync_only/testproto/test3_pb2_grpc.pyi b/test/generated_sync_only/testproto/test3_pb2_grpc.pyi new file mode 100644 index 00000000..18b6fcb4 --- /dev/null +++ b/test/generated_sync_only/testproto/test3_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +package test3""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/test_extensions2_pb2.pyi b/test/generated_sync_only/testproto/test_extensions2_pb2.pyi new file mode 100644 index 00000000..f36b2068 --- /dev/null +++ b/test/generated_sync_only/testproto/test_extensions2_pb2.pyi @@ -0,0 +1,39 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import testproto.test_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class SeparateFileExtension(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FLAG_FIELD_NUMBER: builtins.int + flag: builtins.bool + EXT_FIELD_NUMBER: builtins.int + ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[testproto.test_pb2.Simple2, Global___SeparateFileExtension] + def __init__( + self, + *, + flag: builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["flag", b"flag"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["flag", b"flag"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___SeparateFileExtension: typing_extensions.TypeAlias = SeparateFileExtension diff --git a/test/generated_sync_only/testproto/test_extensions2_pb2_grpc.pyi b/test/generated_sync_only/testproto/test_extensions2_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/test_extensions2_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/test_extensions3_pb2.pyi b/test/generated_sync_only/testproto/test_extensions3_pb2.pyi new file mode 100644 index 00000000..f2292855 --- /dev/null +++ b/test/generated_sync_only/testproto/test_extensions3_pb2.pyi @@ -0,0 +1,46 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.descriptor_pb2 +import google.protobuf.internal.containers +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class MessageOptionsTestMsg(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +Global___MessageOptionsTestMsg: typing_extensions.TypeAlias = MessageOptionsTestMsg + +TEST_FIELD_EXTENSION_FIELD_NUMBER: builtins.int +SCALAR_OPTION_FIELD_NUMBER: builtins.int +REPEATED_SCALAR_OPTION_FIELD_NUMBER: builtins.int +ENUM_OPTION_FIELD_NUMBER: builtins.int +REPEATED_ENUM_OPTION_FIELD_NUMBER: builtins.int +MSG_OPTION_FIELD_NUMBER: builtins.int +REPEATED_MSG_OPTION_FIELD_NUMBER: builtins.int +test_field_extension: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str] +scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.str] +repeated_scalar_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]] +enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterEnum.ValueType] +repeated_enum_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedScalarFieldContainer[testproto.test3_pb2.OuterEnum.ValueType]] +msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, testproto.test3_pb2.OuterMessage3] +repeated_msg_option: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, google.protobuf.internal.containers.RepeatedCompositeFieldContainer[testproto.test3_pb2.OuterMessage3]] diff --git a/test/generated_sync_only/testproto/test_extensions3_pb2_grpc.pyi b/test/generated_sync_only/testproto/test_extensions3_pb2_grpc.pyi new file mode 100644 index 00000000..26b99930 --- /dev/null +++ b/test/generated_sync_only/testproto/test_extensions3_pb2_grpc.pyi @@ -0,0 +1,10 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import collections.abc + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str diff --git a/test/generated_sync_only/testproto/test_no_generic_services_pb2.pyi b/test/generated_sync_only/testproto/test_no_generic_services_pb2.pyi new file mode 100644 index 00000000..04cf9c56 --- /dev/null +++ b/test/generated_sync_only/testproto/test_no_generic_services_pb2.pyi @@ -0,0 +1,35 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class Simple3(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Simple3: typing_extensions.TypeAlias = Simple3 diff --git a/test/generated_sync_only/testproto/test_no_generic_services_pb2_grpc.pyi b/test/generated_sync_only/testproto/test_no_generic_services_pb2_grpc.pyi new file mode 100644 index 00000000..eb15b37f --- /dev/null +++ b/test/generated_sync_only/testproto/test_no_generic_services_pb2_grpc.pyi @@ -0,0 +1,28 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import abc +import collections.abc +import grpc +import testproto.test_no_generic_services_pb2 +import typing + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str + +class ATestService2Stub: + def __init__(self, channel: grpc.Channel) -> None: ... + Echo: grpc.UnaryUnaryMultiCallable[testproto.test_no_generic_services_pb2.Simple3, testproto.test_no_generic_services_pb2.Simple3] + +class ATestService2Servicer(metaclass=abc.ABCMeta): + @abc.abstractmethod + def Echo( + self, + request: testproto.test_no_generic_services_pb2.Simple3, + context: grpc.ServicerContext, + ) -> testproto.test_no_generic_services_pb2.Simple3: ... + +def add_ATestService2Servicer_to_server(servicer: ATestService2Servicer, server: grpc.Server) -> None: ... diff --git a/test/generated_sync_only/testproto/test_pb2.pyi b/test/generated_sync_only/testproto/test_pb2.pyi new file mode 100644 index 00000000..94e646db --- /dev/null +++ b/test/generated_sync_only/testproto/test_pb2.pyi @@ -0,0 +1,465 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Proto 2 test file.""" + +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.internal.extension_dict +import google.protobuf.message +import sys +import test.test_generated_mypy +import testproto.inner.inner_pb2 +import testproto.nested.nested_pb2 +import testproto.nopackage_pb2 +import testproto.test3_pb2 +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +if sys.version_info >= (3, 13): + from warnings import deprecated +else: + from typing_extensions import deprecated + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _OuterEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _OuterEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OuterEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + FOO: _OuterEnum.ValueType # 1 + """FOO""" + BAR: _OuterEnum.ValueType # 2 + """BAR""" + +class OuterEnum(_OuterEnum, metaclass=_OuterEnumEnumTypeWrapper): + """Outer Enum""" + +FOO: OuterEnum.ValueType # 1 +"""FOO""" +BAR: OuterEnum.ValueType # 2 +"""BAR""" +Global___OuterEnum: typing_extensions.TypeAlias = OuterEnum + +class _NamingConflicts: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _NamingConflictsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NamingConflicts.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + +class NamingConflicts(_NamingConflicts, metaclass=_NamingConflictsEnumTypeWrapper): + """Naming conflicts!""" + +Name: NamingConflicts.ValueType # 1 +Value: NamingConflicts.ValueType # 2 +keys: NamingConflicts.ValueType # 3 +values: NamingConflicts.ValueType # 4 +items: NamingConflicts.ValueType # 5 +"""See https://github.com/protocolbuffers/protobuf/issues/8803 +proto itself generates broken code when DESCRIPTOR is there +DESCRIPTOR = 8; +""" +Global___NamingConflicts: typing_extensions.TypeAlias = NamingConflicts + +class _DeprecatedEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _DeprecatedEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DeprecatedEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + DEPRECATED_ONE: _DeprecatedEnum.ValueType # 1 + DEPRECATED_TWO: _DeprecatedEnum.ValueType # 2 + +@deprecated("""This enum is deprecated\n2 lines of comments\n"Quotes in comments"\nand 'single quotes'\nTrailing comment""") +class DeprecatedEnum(_DeprecatedEnum, metaclass=_DeprecatedEnumEnumTypeWrapper): ... + +DEPRECATED_ONE: DeprecatedEnum.ValueType # 1 +DEPRECATED_TWO: DeprecatedEnum.ValueType # 2 +Global___DeprecatedEnum: typing_extensions.TypeAlias = DeprecatedEnum + +@typing.final +class Simple1(google.protobuf.message.Message): + """Message with one of everything""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _InnerEnum: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _InnerEnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Simple1._InnerEnum.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INNER1: Simple1._InnerEnum.ValueType # 1 + """INNER1""" + INNER2: Simple1._InnerEnum.ValueType # 2 + """INNER2""" + + class InnerEnum(_InnerEnum, metaclass=_InnerEnumEnumTypeWrapper): + """Inner Enum""" + + INNER1: Simple1.InnerEnum.ValueType # 1 + """INNER1""" + INNER2: Simple1.InnerEnum.ValueType # 2 + """INNER2""" + + @typing.final + class InnerMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + + @typing.final + class EmailByUidEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: builtins.str + def __init__( + self, + *, + key: builtins.int | None = ..., + value: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["key", b"key", "value", b"value"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + A_STRING_FIELD_NUMBER: builtins.int + A_REPEATED_STRING_FIELD_NUMBER: builtins.int + A_BOOLEAN_FIELD_NUMBER: builtins.int + A_UINT32_FIELD_NUMBER: builtins.int + A_ENUM_FIELD_NUMBER: builtins.int + A_EXTERNAL_ENUM_FIELD_NUMBER: builtins.int + A_INNER_FIELD_NUMBER: builtins.int + A_NESTED_FIELD_NUMBER: builtins.int + INNER_ENUM_FIELD_NUMBER: builtins.int + REP_INNER_ENUM_FIELD_NUMBER: builtins.int + INNER_MESSAGE_FIELD_NUMBER: builtins.int + REP_INNER_MESSAGE_FIELD_NUMBER: builtins.int + NO_PACKAGE_FIELD_NUMBER: builtins.int + NESTED_ENUM_FIELD_NUMBER: builtins.int + NESTED_MESSAGE_FIELD_NUMBER: builtins.int + A_ONEOF_1_FIELD_NUMBER: builtins.int + A_ONEOF_2_FIELD_NUMBER: builtins.int + OUTER_MESSAGE_IN_ONEOF_FIELD_NUMBER: builtins.int + OUTER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + INNER_ENUM_IN_ONEOF_FIELD_NUMBER: builtins.int + USER_ID_FIELD_NUMBER: builtins.int + EMAIL_FIELD_NUMBER: builtins.int + EMAIL_BY_UID_FIELD_NUMBER: builtins.int + a_string: builtins.str + a_boolean: builtins.bool + a_uint32: builtins.int + a_enum: Global___OuterEnum.ValueType + a_external_enum: testproto.test3_pb2.OuterEnum.ValueType + inner_enum: Global___Simple1.InnerEnum.ValueType + nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType + a_oneof_1: builtins.str + a_oneof_2: builtins.str + outer_enum_in_oneof: Global___OuterEnum.ValueType + inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType + user_id: test.test_generated_mypy.UserId + email: test.test_generated_mypy.Email + @property + def a_repeated_string(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def a_inner(self) -> testproto.inner.inner_pb2.Inner: ... + @property + def a_nested(self) -> testproto.nested.nested_pb2.Nested: ... + @property + def rep_inner_enum(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[Global___Simple1.InnerEnum.ValueType]: ... + @property + def inner_message(self) -> Global___Simple1.InnerMessage: ... + @property + def rep_inner_message(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Simple1.InnerMessage]: ... + @property + def no_package(self) -> testproto.nopackage_pb2.NoPackage: ... + @property + def nested_message(self) -> testproto.nested.nested_pb2.AnotherNested.NestedMessage: ... + @property + def outer_message_in_oneof(self) -> Global___Simple2: ... + @property + def email_by_uid(self) -> google.protobuf.internal.containers.ScalarMap[test.test_generated_mypy.UserId, test.test_generated_mypy.Email]: ... + def __init__( + self, + *, + a_string: builtins.str | None = ..., + a_repeated_string: collections.abc.Iterable[builtins.str] | None = ..., + a_boolean: builtins.bool | None = ..., + a_uint32: builtins.int | None = ..., + a_enum: Global___OuterEnum.ValueType | None = ..., + a_external_enum: testproto.test3_pb2.OuterEnum.ValueType | None = ..., + a_inner: testproto.inner.inner_pb2.Inner | None = ..., + a_nested: testproto.nested.nested_pb2.Nested | None = ..., + inner_enum: Global___Simple1.InnerEnum.ValueType | None = ..., + rep_inner_enum: collections.abc.Iterable[Global___Simple1.InnerEnum.ValueType] | None = ..., + inner_message: Global___Simple1.InnerMessage | None = ..., + rep_inner_message: collections.abc.Iterable[Global___Simple1.InnerMessage] | None = ..., + no_package: testproto.nopackage_pb2.NoPackage | None = ..., + nested_enum: testproto.nested.nested_pb2.AnotherNested.NestedEnum.ValueType | None = ..., + nested_message: testproto.nested.nested_pb2.AnotherNested.NestedMessage | None = ..., + a_oneof_1: builtins.str | None = ..., + a_oneof_2: builtins.str | None = ..., + outer_message_in_oneof: Global___Simple2 | None = ..., + outer_enum_in_oneof: Global___OuterEnum.ValueType | None = ..., + inner_enum_in_oneof: Global___Simple1.InnerEnum.ValueType | None = ..., + user_id: test.test_generated_mypy.UserId | None = ..., + email: test.test_generated_mypy.Email | None = ..., + email_by_uid: collections.abc.Mapping[test.test_generated_mypy.UserId, test.test_generated_mypy.Email] | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "user_id", b"user_id"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_boolean", b"a_boolean", "a_enum", b"a_enum", "a_external_enum", b"a_external_enum", "a_inner", b"a_inner", "a_nested", b"a_nested", "a_oneof", b"a_oneof", "a_oneof_1", b"a_oneof_1", "a_oneof_2", b"a_oneof_2", "a_repeated_string", b"a_repeated_string", "a_string", b"a_string", "a_uint32", b"a_uint32", "email", b"email", "email_by_uid", b"email_by_uid", "inner_enum", b"inner_enum", "inner_enum_in_oneof", b"inner_enum_in_oneof", "inner_message", b"inner_message", "nested_enum", b"nested_enum", "nested_message", b"nested_message", "no_package", b"no_package", "outer_enum_in_oneof", b"outer_enum_in_oneof", "outer_message_in_oneof", b"outer_message_in_oneof", "rep_inner_enum", b"rep_inner_enum", "rep_inner_message", b"rep_inner_message", "user_id", b"user_id"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_a_oneof: typing_extensions.TypeAlias = typing.Literal["a_oneof_1", "a_oneof_2", "outer_message_in_oneof", "outer_enum_in_oneof", "inner_enum_in_oneof"] + _WhichOneofArgType_a_oneof: typing_extensions.TypeAlias = typing.Literal["a_oneof", b"a_oneof"] + def WhichOneof(self, oneof_group: _WhichOneofArgType_a_oneof) -> _WhichOneofReturnType_a_oneof | None: ... + +Global___Simple1: typing_extensions.TypeAlias = Simple1 + +@typing.final +class Simple2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Simple2: typing_extensions.TypeAlias = Simple2 + +@typing.final +class Extensions1(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EXT1_STRING_FIELD_NUMBER: builtins.int + ext1_string: builtins.str + EXT_FIELD_NUMBER: builtins.int + ext: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions1] + """ext""" + def __init__( + self, + *, + ext1_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["ext1_string", b"ext1_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["ext1_string", b"ext1_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Extensions1: typing_extensions.TypeAlias = Extensions1 + +@typing.final +class Extensions2(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FLAG_FIELD_NUMBER: builtins.int + flag: builtins.bool + FOO_FIELD_NUMBER: builtins.int + foo: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[Global___Simple1, Global___Extensions2] + """foo""" + def __init__( + self, + *, + flag: builtins.bool | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["flag", b"flag"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["flag", b"flag"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Extensions2: typing_extensions.TypeAlias = Extensions2 + +@typing.final +class _r_None(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALID_FIELD_NUMBER: builtins.int + valid: builtins.int + def __init__( + self, + *, + valid: builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["valid", b"valid"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["valid", b"valid"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global____r_None: typing_extensions.TypeAlias = _r_None + +@typing.final +class PythonReservedKeywords(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _finally: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _finallyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PythonReservedKeywords._finally.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + valid_in_finally: PythonReservedKeywords._finally.ValueType # 2 + + class _r_finally(_finally, metaclass=_finallyEnumTypeWrapper): ... + valid_in_finally: PythonReservedKeywords._r_finally.ValueType # 2 + + @typing.final + class _r_lambda(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONTINUE_FIELD_NUMBER: builtins.int + VALID_FIELD_NUMBER: builtins.int + valid: builtins.int + def __init__( + self, + *, + valid: builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["continue", b"continue", "valid", b"valid"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["continue", b"continue", "valid", b"valid"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + FROM_FIELD_NUMBER: builtins.int + IN_FIELD_NUMBER: builtins.int + IS_FIELD_NUMBER: builtins.int + FOR_FIELD_NUMBER: builtins.int + TRY_FIELD_NUMBER: builtins.int + DEF_FIELD_NUMBER: builtins.int + NONLOCAL_FIELD_NUMBER: builtins.int + WHILE_FIELD_NUMBER: builtins.int + AND_FIELD_NUMBER: builtins.int + DEL_FIELD_NUMBER: builtins.int + GLOBAL_FIELD_NUMBER: builtins.int + NOT_FIELD_NUMBER: builtins.int + WITH_FIELD_NUMBER: builtins.int + AS_FIELD_NUMBER: builtins.int + ELIF_FIELD_NUMBER: builtins.int + IF_FIELD_NUMBER: builtins.int + OR_FIELD_NUMBER: builtins.int + YIELD_FIELD_NUMBER: builtins.int + ASSERT_FIELD_NUMBER: builtins.int + ELSE_FIELD_NUMBER: builtins.int + IMPORT_FIELD_NUMBER: builtins.int + PASS_FIELD_NUMBER: builtins.int + BREAK_FIELD_NUMBER: builtins.int + EXCEPT_FIELD_NUMBER: builtins.int + RAISE_FIELD_NUMBER: builtins.int + FALSE_FIELD_NUMBER: builtins.int + TRUE_FIELD_NUMBER: builtins.int + CLASS_FIELD_NUMBER: builtins.int + NONE_FIELD_NUMBER: builtins.int + VALID_FIELD_NUMBER: builtins.int + valid: Global___PythonReservedKeywords._r_finally.ValueType + @property + def none(self) -> Global____r_None: + """Test unreserved identifiers w/ reserved message names""" + + def __init__( + self, + *, + none: Global____r_None | None = ..., + valid: Global___PythonReservedKeywords._r_finally.ValueType | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["False", b"False", "True", b"True", "and", b"and", "as", b"as", "assert", b"assert", "break", b"break", "class", b"class", "def", b"def", "del", b"del", "elif", b"elif", "else", b"else", "except", b"except", "for", b"for", "from", b"from", "global", b"global", "if", b"if", "import", b"import", "in", b"in", "is", b"is", "none", b"none", "nonlocal", b"nonlocal", "not", b"not", "or", b"or", "pass", b"pass", "raise", b"raise", "try", b"try", "valid", b"valid", "while", b"while", "with", b"with", "yield", b"yield"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___PythonReservedKeywords: typing_extensions.TypeAlias = PythonReservedKeywords + +@typing.final +class PythonReservedKeywordsSmall(google.protobuf.message.Message): + """Do one with just one arg - to make sure it's syntactically correct""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FROM_FIELD_NUMBER: builtins.int + def __init__( + self, + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["from", b"from"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["from", b"from"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___PythonReservedKeywordsSmall: typing_extensions.TypeAlias = PythonReservedKeywordsSmall + +@typing.final +class SelfField(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SELF_FIELD_NUMBER: builtins.int + self: builtins.int + """Field self -> must generate an __init__ method w/ different name""" + def __init__( + self_, # pyright: ignore[reportSelfClsParameterName] + *, + self: builtins.int | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["self", b"self"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["self", b"self"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___SelfField: typing_extensions.TypeAlias = SelfField + +@deprecated("""This message is deprecated""") +@typing.final +class DeprecatedMessage(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DeprecatedMessage: typing_extensions.TypeAlias = DeprecatedMessage + +@deprecated("""This message has been marked as deprecated using proto message options.""") +@typing.final +class DeprecatedMessageBadComment(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + A_STRING_FIELD_NUMBER: builtins.int + a_string: builtins.str + def __init__( + self, + *, + a_string: builtins.str | None = ..., + ) -> None: ... + _HasFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def HasField(self, field_name: _HasFieldArgType) -> builtins.bool: ... + _ClearFieldArgType: typing_extensions.TypeAlias = typing.Literal["a_string", b"a_string"] + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___DeprecatedMessageBadComment: typing_extensions.TypeAlias = DeprecatedMessageBadComment diff --git a/test/generated_sync_only/testproto/test_pb2_grpc.pyi b/test/generated_sync_only/testproto/test_pb2_grpc.pyi new file mode 100644 index 00000000..71b14ba3 --- /dev/null +++ b/test/generated_sync_only/testproto/test_pb2_grpc.pyi @@ -0,0 +1,44 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Proto 2 test file.""" + +import abc +import collections.abc +import grpc +import testproto.test_pb2 +import typing + + +GRPC_GENERATED_VERSION: str +GRPC_VERSION: str + +class PythonReservedKeywordsServiceStub: + """Method name is reserved""" + + def __init__(self, channel: grpc.Channel) -> None: ... + valid_method_name1: grpc.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, testproto.test_pb2._r_None] + """valid_method_name1""" + valid_method_name2: grpc.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, testproto.test_pb2.PythonReservedKeywords._r_lambda] + """valid_method_name2""" + +class PythonReservedKeywordsServiceServicer(metaclass=abc.ABCMeta): + """Method name is reserved""" + + @abc.abstractmethod + def valid_method_name1( + self, + request: testproto.test_pb2.Simple1, + context: grpc.ServicerContext, + ) -> testproto.test_pb2._r_None: + """valid_method_name1""" + + @abc.abstractmethod + def valid_method_name2( + self, + request: testproto.test_pb2.Simple1, + context: grpc.ServicerContext, + ) -> testproto.test_pb2.PythonReservedKeywords._r_lambda: + """valid_method_name2""" + +def add_PythonReservedKeywordsServiceServicer_to_server(servicer: PythonReservedKeywordsServiceServicer, server: grpc.Server) -> None: ... From ffbe6b3d479fd2cc525a32601100934563b2ade3 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 23:07:15 +0000 Subject: [PATCH 18/23] Improve tests and add pyright support for sync/async only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add comprehensive tests for sync_only and async_only that actually run servers and clients, equivalent to test_grpc_usage.py and test_grpc_async_usage.py - Restore pyright executionEnvironments for generated_sync_only and generated_async_only - Add executionEnvironments for test/async_only and test/sync_only with proper extraPaths - Clean generated_sync_only and generated_async_only directories in test script 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- pyproject.toml | 6 ++- run_test.sh | 4 +- test/async_only/test_async_only.py | 82 ++++++++++++++++++++++++----- test/sync_only/test_sync_only.py | 83 +++++++++++++++++++++++++++--- 4 files changed, 151 insertions(+), 24 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 31cb785f..a15fcfac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,13 +33,15 @@ exclude = [ "**/*_pb2.py", "**/*_pb2_grpc.py", "test/test_concrete.py", - "test/async_only/**", - "test/sync_only/**", ] executionEnvironments = [ # Due to how upb is typed, we need to disable incompatible variable override checks { root = "test/generated", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, { root = "test/generated_concrete", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, + { root = "test/generated_sync_only", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, + { root = "test/generated_async_only", extraPaths = ["./"], reportIncompatibleVariableOverride = "none" }, { root = "mypy_protobuf/extensions_pb2.pyi", reportIncompatibleVariableOverride = "none" }, + { root = "test/async_only", extraPaths = ["test/generated_async_only"] }, + { root = "test/sync_only", extraPaths = ["test/generated_sync_only"] }, ] diff --git a/run_test.sh b/run_test.sh index e5d14309..190aa587 100755 --- a/run_test.sh +++ b/run_test.sh @@ -108,8 +108,10 @@ MYPY_PROTOBUF_VENV=venv_$PY_VER_MYPY_PROTOBUF # CI Check to make sure generated files are committed SHA_BEFORE=$(find test/generated -name "*.pyi" -print0 | xargs -0 sha1sum) - # Clean out generated/ directory - except for __init__.py + # Clean out generated/ directories - except for __init__.py find test/generated -type f -not -name "__init__.py" -delete + find test/generated_sync_only -type f -not -name "__init__.py" -delete + find test/generated_async_only -type f -not -name "__init__.py" -delete # Compile protoc -> python find proto -name "*.proto" -print0 | xargs -0 "$PROTOC" "${PROTOC_ARGS[@]}" --python_out=test/generated diff --git a/test/async_only/test_async_only.py b/test/async_only/test_async_only.py index 7418a240..caea7a9a 100644 --- a/test/async_only/test_async_only.py +++ b/test/async_only/test_async_only.py @@ -1,31 +1,87 @@ """ -Type-checking test for async_only GRPC stubs. +Type-checking and runtime test for async_only GRPC stubs. -This module is run through mypy to validate that stubs generated with the -only_async flag have the correct types: +This module validates that stubs generated with the only_async flag have the correct types: - Regular (non-generic) Stub class that only accepts grpc.aio.Channel -- No AsyncStub type alias (the stub itself is async-only) +- No SyncStub type alias (the stub itself is async-only) - Servicer methods use AsyncIterator for client streaming (not _MaybeAsyncIterator) - add_XXXServicer_to_server accepts grpc.aio.Server """ -from typing import Awaitable - import grpc.aio +import pytest +import typing_extensions as typing from testproto.grpc import dummy_pb2, dummy_pb2_grpc +ADDRESS = "localhost:22225" + -class AsyncOnlyServicer(dummy_pb2_grpc.DummyServiceServicer): +class Servicer(dummy_pb2_grpc.DummyServiceServicer): async def UnaryUnary( self, request: dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, Awaitable[dummy_pb2.DummyReply]], + context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, dummy_pb2.DummyReply], ) -> dummy_pb2.DummyReply: - await context.abort(grpc.StatusCode.UNIMPLEMENTED, "Not implemented") return dummy_pb2.DummyReply(value=request.value[::-1]) + async def UnaryStream( + self, + request: dummy_pb2.DummyRequest, + context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, dummy_pb2.DummyReply], + ) -> typing.AsyncIterator[dummy_pb2.DummyReply]: + for char in request.value: + yield dummy_pb2.DummyReply(value=char) + + async def StreamUnary( + self, + request_iterator: typing.AsyncIterator[dummy_pb2.DummyRequest], + context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, dummy_pb2.DummyReply], + ) -> dummy_pb2.DummyReply: + values = [data.value async for data in request_iterator] + return dummy_pb2.DummyReply(value="".join(values)) + + async def StreamStream( + self, + request_iterator: typing.AsyncIterator[dummy_pb2.DummyRequest], + context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, dummy_pb2.DummyReply], + ) -> typing.AsyncIterator[dummy_pb2.DummyReply]: + async for data in request_iterator: + yield dummy_pb2.DummyReply(value=data.value.upper()) + + +def make_server() -> grpc.aio.Server: + server = grpc.aio.server() + servicer = Servicer() + server.add_insecure_port(ADDRESS) + dummy_pb2_grpc.add_DummyServiceServicer_to_server(servicer, server) + return server + + +@pytest.mark.asyncio +async def test_async_only_grpc() -> None: + server = make_server() + await server.start() + async with grpc.aio.insecure_channel(ADDRESS) as channel: + client = dummy_pb2_grpc.DummyServiceAsyncStub(channel) + request = dummy_pb2.DummyRequest(value="cprg") + result1 = await client.UnaryUnary(request) + result2 = client.UnaryStream(dummy_pb2.DummyRequest(value=result1.value)) + result2_list = [r async for r in result2] + assert len(result2_list) == 4 + result3 = client.StreamStream(dummy_pb2.DummyRequest(value=part.value) for part in result2_list) + result3_list = [r async for r in result3] + assert len(result3_list) == 4 + result4 = await client.StreamUnary(dummy_pb2.DummyRequest(value=part.value) for part in result3_list) + assert result4.value == "GRPC" + + await server.stop(None) + + class TestAttribute: + stub: "dummy_pb2_grpc.DummyServiceAsyncStub" + + def __init__(self) -> None: + self.stub = dummy_pb2_grpc.DummyServiceAsyncStub(grpc.aio.insecure_channel(ADDRESS)) -async def noop() -> None: - """Don't actually run anything; this is just for type-checking.""" - stub = dummy_pb2_grpc.DummyServiceAsyncStub(channel=grpc.aio.insecure_channel("localhost:50051")) - await stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) + async def test(self) -> None: + val = await self.stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) + typing.assert_type(val, dummy_pb2.DummyReply) diff --git a/test/sync_only/test_sync_only.py b/test/sync_only/test_sync_only.py index 99597587..229bf475 100644 --- a/test/sync_only/test_sync_only.py +++ b/test/sync_only/test_sync_only.py @@ -1,18 +1,22 @@ """ -Type-checking test for sync_only GRPC stubs. +Type-checking and runtime test for sync_only GRPC stubs. -This module is run through mypy to validate that stubs generated with the -only_sync flag have the correct types: +This module validates that stubs generated with the only_sync flag have the correct types: - Regular (non-generic) Stub class that only accepts grpc.Channel - Servicer methods use Iterator for client streaming (not _MaybeAsyncIterator) - add_XXXServicer_to_server accepts grpc.Server """ +from concurrent import futures + import grpc +import typing_extensions as typing from testproto.grpc import dummy_pb2, dummy_pb2_grpc +ADDRESS = "localhost:22224" + -class AsyncOnlyServicer(dummy_pb2_grpc.DummyServiceServicer): +class Servicer(dummy_pb2_grpc.DummyServiceServicer): def UnaryUnary( self, request: dummy_pb2.DummyRequest, @@ -20,8 +24,71 @@ def UnaryUnary( ) -> dummy_pb2.DummyReply: return dummy_pb2.DummyReply(value=request.value[::-1]) + def UnaryStream( + self, + request: dummy_pb2.DummyRequest, + context: grpc.ServicerContext, + ) -> typing.Iterator[dummy_pb2.DummyReply]: + for char in request.value: + yield dummy_pb2.DummyReply(value=char) + + def StreamUnary( + self, + request_iterator: typing.Iterator[dummy_pb2.DummyRequest], + context: grpc.ServicerContext, + ) -> dummy_pb2.DummyReply: + return dummy_pb2.DummyReply(value="".join(data.value for data in request_iterator)) + + def StreamStream( + self, + request_iterator: typing.Iterator[dummy_pb2.DummyRequest], + context: grpc.ServicerContext, + ) -> typing.Iterator[dummy_pb2.DummyReply]: + for data in request_iterator: + yield dummy_pb2.DummyReply(value=data.value.upper()) + + +def make_server() -> grpc.Server: + server = grpc.server(futures.ThreadPoolExecutor()) + servicer = Servicer() + server.add_insecure_port(ADDRESS) + dummy_pb2_grpc.add_DummyServiceServicer_to_server(servicer, server) + return server + + +def test_sync_only_grpc() -> None: + server = make_server() + server.start() + channel = grpc.insecure_channel(ADDRESS) + client = dummy_pb2_grpc.DummyServiceStub(channel) + request = dummy_pb2.DummyRequest(value="cprg") + result1 = client.UnaryUnary(request) + result2 = client.UnaryStream(dummy_pb2.DummyRequest(value=result1.value)) + result2_list = list(result2) + assert len(result2_list) == 4 + result3 = client.StreamStream(dummy_pb2.DummyRequest(value=part.value) for part in result2_list) + result3_list = list(result3) + assert len(result3_list) == 4 + result4 = client.StreamUnary(dummy_pb2.DummyRequest(value=part.value) for part in result3_list) + assert result4.value == "GRPC" + + # test future() in MultiCallable + future_test: grpc._CallFuture[dummy_pb2.DummyReply] = client.UnaryUnary.future(request) + result5 = future_test.result() + assert result5.value == "grpc" + + # test params on __call__ in MultiCallable + result6: dummy_pb2.DummyReply = client.UnaryUnary(request, timeout=4, metadata=(("test", "metadata"), ("cheems", "many"))) + assert result6.value == "grpc" + + server.stop(None) + + class TestAttribute: + stub: dummy_pb2_grpc.DummyServiceStub + + def __init__(self) -> None: + self.stub = dummy_pb2_grpc.DummyServiceStub(grpc.insecure_channel(ADDRESS)) -def noop() -> None: - """Don't actually run anything; this is just for type-checking.""" - stub = dummy_pb2_grpc.DummyServiceStub(channel=grpc.insecure_channel("localhost:50051")) - stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) + def test(self) -> None: + val = self.stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) + typing.assert_type(val, dummy_pb2.DummyReply) From b11e19ae507bd745c0533e789794454aa41397e6 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 23:11:25 +0000 Subject: [PATCH 19/23] Fix async_only test context types to match generated stubs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update ServicerContext type parameters to match the exact types in the generated async_only stubs. The context type parameters should match the method return types (Awaitable or AsyncIterator). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- test/async_only/test_async_only.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/async_only/test_async_only.py b/test/async_only/test_async_only.py index caea7a9a..f54d6ac6 100644 --- a/test/async_only/test_async_only.py +++ b/test/async_only/test_async_only.py @@ -20,14 +20,14 @@ class Servicer(dummy_pb2_grpc.DummyServiceServicer): async def UnaryUnary( self, request: dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, dummy_pb2.DummyReply], + context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, typing.Awaitable[dummy_pb2.DummyReply]], ) -> dummy_pb2.DummyReply: return dummy_pb2.DummyReply(value=request.value[::-1]) async def UnaryStream( self, request: dummy_pb2.DummyRequest, - context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, dummy_pb2.DummyReply], + context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, typing.AsyncIterator[dummy_pb2.DummyReply]], ) -> typing.AsyncIterator[dummy_pb2.DummyReply]: for char in request.value: yield dummy_pb2.DummyReply(value=char) @@ -35,7 +35,7 @@ async def UnaryStream( async def StreamUnary( self, request_iterator: typing.AsyncIterator[dummy_pb2.DummyRequest], - context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, dummy_pb2.DummyReply], + context: grpc.aio.ServicerContext[typing.AsyncIterator[dummy_pb2.DummyRequest], typing.Awaitable[dummy_pb2.DummyReply]], ) -> dummy_pb2.DummyReply: values = [data.value async for data in request_iterator] return dummy_pb2.DummyReply(value="".join(values)) @@ -43,7 +43,7 @@ async def StreamUnary( async def StreamStream( self, request_iterator: typing.AsyncIterator[dummy_pb2.DummyRequest], - context: grpc.aio.ServicerContext[dummy_pb2.DummyRequest, dummy_pb2.DummyReply], + context: grpc.aio.ServicerContext[typing.AsyncIterator[dummy_pb2.DummyRequest], typing.AsyncIterator[dummy_pb2.DummyReply]], ) -> typing.AsyncIterator[dummy_pb2.DummyReply]: async for data in request_iterator: yield dummy_pb2.DummyReply(value=data.value.upper()) From 965e25bf5b9ce0388aff2b519009f898c20336aa Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 23:18:24 +0000 Subject: [PATCH 20/23] Fix async_only test to use DummyServiceStub at runtime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The generated _pb2_grpc.py file only exports DummyServiceStub, while the .pyi file has DummyServiceAsyncStub as a type alias. This matches the pattern in test_grpc_async_usage.py. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- test/async_only/test_async_only.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/async_only/test_async_only.py b/test/async_only/test_async_only.py index f54d6ac6..2ac3a313 100644 --- a/test/async_only/test_async_only.py +++ b/test/async_only/test_async_only.py @@ -62,7 +62,7 @@ async def test_async_only_grpc() -> None: server = make_server() await server.start() async with grpc.aio.insecure_channel(ADDRESS) as channel: - client = dummy_pb2_grpc.DummyServiceAsyncStub(channel) + client = dummy_pb2_grpc.DummyServiceStub(channel) request = dummy_pb2.DummyRequest(value="cprg") result1 = await client.UnaryUnary(request) result2 = client.UnaryStream(dummy_pb2.DummyRequest(value=result1.value)) @@ -80,7 +80,7 @@ class TestAttribute: stub: "dummy_pb2_grpc.DummyServiceAsyncStub" def __init__(self) -> None: - self.stub = dummy_pb2_grpc.DummyServiceAsyncStub(grpc.aio.insecure_channel(ADDRESS)) + self.stub = dummy_pb2_grpc.DummyServiceStub(grpc.aio.insecure_channel(ADDRESS)) async def test(self) -> None: val = await self.stub.UnaryUnary(dummy_pb2.DummyRequest(value="test")) From c51be2f241ae2cbdb7fc954b016feadc9febde71 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 23:21:50 +0000 Subject: [PATCH 21/23] Add type alias for Stub in async_only mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In async_only mode, the .pyi file now defines both DummyServiceAsyncStub (the actual class) and DummyServiceStub (a type alias). This matches the runtime behavior where grpc_tools.protoc generates DummyServiceStub in the .py file. Fixes type checking errors where mypy couldn't find DummyServiceStub. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- mypy_protobuf/main.py | 3 +++ .../testproto/grpc/dummy_pb2_grpc.pyi | 9 +++++++++ .../testproto/grpc/import_pb2_grpc.pyi | 3 +++ .../testproto/test_no_generic_services_pb2_grpc.pyi | 3 +++ test/generated_async_only/testproto/test_pb2_grpc.pyi | 3 +++ 5 files changed, 21 insertions(+) diff --git a/mypy_protobuf/main.py b/mypy_protobuf/main.py index 4d509e7c..47bb591e 100644 --- a/mypy_protobuf/main.py +++ b/mypy_protobuf/main.py @@ -1025,6 +1025,9 @@ def write_grpc_services( wl("") wl("def __init__(self, channel: {}) -> None: ...", self._import("grpc.aio", "Channel")) self.write_grpc_stub_methods(service, scl, is_async=True) + wl("") + # Add type alias so runtime Stub name matches type stub AsyncStub name + wl("{} = {}", class_name, async_class_alias) wl("") # The service definition interface diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi index 8da17ac7..b5282566 100644 --- a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi @@ -5,6 +5,7 @@ https://github.com/vmagamedov/grpclib/blob/master/tests/dummy.proto""" import abc import collections.abc +import grpc import grpc.aio import sys import testproto.grpc.dummy_pb2 @@ -32,6 +33,8 @@ class DummyServiceAsyncStub: StreamStream: grpc.aio.StreamStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """StreamStream""" +DummyServiceStub = DummyServiceAsyncStub + class DummyServiceServicer(metaclass=abc.ABCMeta): """DummyService""" @@ -79,6 +82,8 @@ class DeprecatedServiceAsyncStub: DeprecatedMethodNotDeprecatedRequest: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """DeprecatedMethodNotDeprecatedRequest""" +DeprecatedServiceStub = DeprecatedServiceAsyncStub + @deprecated("""This service is deprecated""") class DeprecatedServiceServicer(metaclass=abc.ABCMeta): """Marking the service as deprecated""" @@ -204,6 +209,8 @@ class ManyRPCsServiceAsyncStub: Method98: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest98, testproto.grpc.dummy_pb2.ManyResponse98] Method99: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest99, testproto.grpc.dummy_pb2.ManyResponse99] +ManyRPCsServiceStub = ManyRPCsServiceAsyncStub + class ManyRPCsServiceServicer(metaclass=abc.ABCMeta): @abc.abstractmethod def Method1( @@ -903,6 +910,8 @@ def add_ManyRPCsServiceServicer_to_server(servicer: ManyRPCsServiceServicer, ser class EmptyServiceAsyncStub: def __init__(self, channel: grpc.aio.Channel) -> None: ... +EmptyServiceStub = EmptyServiceAsyncStub + class EmptyServiceServicer(metaclass=abc.ABCMeta): ... diff --git a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi index ab6ef132..8691ccf3 100644 --- a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi @@ -6,6 +6,7 @@ isort:skip_file import abc import collections.abc import google.protobuf.empty_pb2 +import grpc import grpc.aio import testproto.test_pb2 import typing @@ -24,6 +25,8 @@ class SimpleServiceAsyncStub: """UnaryStream""" NoComment: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] +SimpleServiceStub = SimpleServiceAsyncStub + class SimpleServiceServicer(metaclass=abc.ABCMeta): """SimpleService""" diff --git a/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi b/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi index b1c054f9..2e0775bd 100644 --- a/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi @@ -5,6 +5,7 @@ isort:skip_file import abc import collections.abc +import grpc import grpc.aio import testproto.test_no_generic_services_pb2 import typing @@ -17,6 +18,8 @@ class ATestService2AsyncStub: def __init__(self, channel: grpc.aio.Channel) -> None: ... Echo: grpc.aio.UnaryUnaryMultiCallable[testproto.test_no_generic_services_pb2.Simple3, testproto.test_no_generic_services_pb2.Simple3] +ATestService2Stub = ATestService2AsyncStub + class ATestService2Servicer(metaclass=abc.ABCMeta): @abc.abstractmethod def Echo( diff --git a/test/generated_async_only/testproto/test_pb2_grpc.pyi b/test/generated_async_only/testproto/test_pb2_grpc.pyi index e7ed1217..c84eb97a 100644 --- a/test/generated_async_only/testproto/test_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/test_pb2_grpc.pyi @@ -5,6 +5,7 @@ Proto 2 test file.""" import abc import collections.abc +import grpc import grpc.aio import testproto.test_pb2 import typing @@ -22,6 +23,8 @@ class PythonReservedKeywordsServiceAsyncStub: valid_method_name2: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, testproto.test_pb2.PythonReservedKeywords._r_lambda] """valid_method_name2""" +PythonReservedKeywordsServiceStub = PythonReservedKeywordsServiceAsyncStub + class PythonReservedKeywordsServiceServicer(metaclass=abc.ABCMeta): """Method name is reserved""" From 344bfd17eb69d8461abbf8bf61b9a85db761c38d Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 23:32:02 +0000 Subject: [PATCH 22/23] Use Stub naming in async_only mode (not AsyncStub) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In async_only mode, generate class DummyServiceStub instead of DummyServiceAsyncStub with a type alias. Since there's only one stub type, it should use the standard Stub naming that matches the runtime .py file generated by grpc_tools.protoc. This addresses review feedback from @aidandj. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- mypy_protobuf/main.py | 9 +++------ test/async_only/test_async_only.py | 5 ++--- .../testproto/grpc/dummy_pb2_grpc.pyi | 16 ++++------------ .../testproto/grpc/import_pb2_grpc.pyi | 4 +--- .../test_no_generic_services_pb2_grpc.pyi | 4 +--- .../testproto/test_pb2_grpc.pyi | 4 +--- 6 files changed, 12 insertions(+), 30 deletions(-) diff --git a/mypy_protobuf/main.py b/mypy_protobuf/main.py index 47bb591e..1a061563 100644 --- a/mypy_protobuf/main.py +++ b/mypy_protobuf/main.py @@ -942,7 +942,7 @@ def make_server_type(self) -> str: elif self.grpc_type == GRPCType.SYNC: return server else: - raise RuntimeError(f"Impossible, {self.grpc_type=}") # pragma: no cover + raise RuntimeError(f"Impossible, {self.grpc_type=}") def write_grpc_services( self, @@ -1018,16 +1018,13 @@ def write_grpc_services( wl("def __init__(self, channel: {}) -> None: ...", self._import("grpc.aio", "Channel")) self.write_grpc_stub_methods(service, scl, is_async=True, ignore_assignment_errors=True) else: - # ASYNC only - standalone AsyncStub - wl("class {}:", async_class_alias) + # ASYNC only - use Stub name (not AsyncStub) since there's only one type + wl("class {}:", class_name) with self._indent(): if self._write_comments(scl): wl("") wl("def __init__(self, channel: {}) -> None: ...", self._import("grpc.aio", "Channel")) self.write_grpc_stub_methods(service, scl, is_async=True) - wl("") - # Add type alias so runtime Stub name matches type stub AsyncStub name - wl("{} = {}", class_name, async_class_alias) wl("") # The service definition interface diff --git a/test/async_only/test_async_only.py b/test/async_only/test_async_only.py index 2ac3a313..d5ab78ec 100644 --- a/test/async_only/test_async_only.py +++ b/test/async_only/test_async_only.py @@ -2,8 +2,7 @@ Type-checking and runtime test for async_only GRPC stubs. This module validates that stubs generated with the only_async flag have the correct types: -- Regular (non-generic) Stub class that only accepts grpc.aio.Channel -- No SyncStub type alias (the stub itself is async-only) +- Stub class (not AsyncStub) that only accepts grpc.aio.Channel - Servicer methods use AsyncIterator for client streaming (not _MaybeAsyncIterator) - add_XXXServicer_to_server accepts grpc.aio.Server """ @@ -77,7 +76,7 @@ async def test_async_only_grpc() -> None: await server.stop(None) class TestAttribute: - stub: "dummy_pb2_grpc.DummyServiceAsyncStub" + stub: "dummy_pb2_grpc.DummyServiceStub" def __init__(self) -> None: self.stub = dummy_pb2_grpc.DummyServiceStub(grpc.aio.insecure_channel(ADDRESS)) diff --git a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi index b5282566..009b200c 100644 --- a/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/grpc/dummy_pb2_grpc.pyi @@ -20,7 +20,7 @@ else: GRPC_GENERATED_VERSION: str GRPC_VERSION: str -class DummyServiceAsyncStub: +class DummyServiceStub: """DummyService""" def __init__(self, channel: grpc.aio.Channel) -> None: ... @@ -33,8 +33,6 @@ class DummyServiceAsyncStub: StreamStream: grpc.aio.StreamStreamMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """StreamStream""" -DummyServiceStub = DummyServiceAsyncStub - class DummyServiceServicer(metaclass=abc.ABCMeta): """DummyService""" @@ -73,7 +71,7 @@ class DummyServiceServicer(metaclass=abc.ABCMeta): def add_DummyServiceServicer_to_server(servicer: DummyServiceServicer, server: grpc.aio.Server) -> None: ... @deprecated("""This service is deprecated""") -class DeprecatedServiceAsyncStub: +class DeprecatedServiceStub: """Marking the service as deprecated""" def __init__(self, channel: grpc.aio.Channel) -> None: ... @@ -82,8 +80,6 @@ class DeprecatedServiceAsyncStub: DeprecatedMethodNotDeprecatedRequest: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.DummyRequest, testproto.grpc.dummy_pb2.DummyReply] """DeprecatedMethodNotDeprecatedRequest""" -DeprecatedServiceStub = DeprecatedServiceAsyncStub - @deprecated("""This service is deprecated""") class DeprecatedServiceServicer(metaclass=abc.ABCMeta): """Marking the service as deprecated""" @@ -107,7 +103,7 @@ class DeprecatedServiceServicer(metaclass=abc.ABCMeta): @deprecated("""This service is deprecated""") def add_DeprecatedServiceServicer_to_server(servicer: DeprecatedServiceServicer, server: grpc.aio.Server) -> None: ... -class ManyRPCsServiceAsyncStub: +class ManyRPCsServiceStub: def __init__(self, channel: grpc.aio.Channel) -> None: ... Method1: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest1, testproto.grpc.dummy_pb2.ManyResponse1] Method2: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest2, testproto.grpc.dummy_pb2.ManyResponse2] @@ -209,8 +205,6 @@ class ManyRPCsServiceAsyncStub: Method98: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest98, testproto.grpc.dummy_pb2.ManyResponse98] Method99: grpc.aio.UnaryUnaryMultiCallable[testproto.grpc.dummy_pb2.ManyRequest99, testproto.grpc.dummy_pb2.ManyResponse99] -ManyRPCsServiceStub = ManyRPCsServiceAsyncStub - class ManyRPCsServiceServicer(metaclass=abc.ABCMeta): @abc.abstractmethod def Method1( @@ -907,11 +901,9 @@ class ManyRPCsServiceServicer(metaclass=abc.ABCMeta): def add_ManyRPCsServiceServicer_to_server(servicer: ManyRPCsServiceServicer, server: grpc.aio.Server) -> None: ... -class EmptyServiceAsyncStub: +class EmptyServiceStub: def __init__(self, channel: grpc.aio.Channel) -> None: ... -EmptyServiceStub = EmptyServiceAsyncStub - class EmptyServiceServicer(metaclass=abc.ABCMeta): ... diff --git a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi index 8691ccf3..555ad7e6 100644 --- a/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/grpc/import_pb2_grpc.pyi @@ -15,7 +15,7 @@ import typing GRPC_GENERATED_VERSION: str GRPC_VERSION: str -class SimpleServiceAsyncStub: +class SimpleServiceStub: """SimpleService""" def __init__(self, channel: grpc.aio.Channel) -> None: ... @@ -25,8 +25,6 @@ class SimpleServiceAsyncStub: """UnaryStream""" NoComment: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, google.protobuf.empty_pb2.Empty] -SimpleServiceStub = SimpleServiceAsyncStub - class SimpleServiceServicer(metaclass=abc.ABCMeta): """SimpleService""" diff --git a/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi b/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi index 2e0775bd..99a6ca66 100644 --- a/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/test_no_generic_services_pb2_grpc.pyi @@ -14,12 +14,10 @@ import typing GRPC_GENERATED_VERSION: str GRPC_VERSION: str -class ATestService2AsyncStub: +class ATestService2Stub: def __init__(self, channel: grpc.aio.Channel) -> None: ... Echo: grpc.aio.UnaryUnaryMultiCallable[testproto.test_no_generic_services_pb2.Simple3, testproto.test_no_generic_services_pb2.Simple3] -ATestService2Stub = ATestService2AsyncStub - class ATestService2Servicer(metaclass=abc.ABCMeta): @abc.abstractmethod def Echo( diff --git a/test/generated_async_only/testproto/test_pb2_grpc.pyi b/test/generated_async_only/testproto/test_pb2_grpc.pyi index c84eb97a..4ebe0505 100644 --- a/test/generated_async_only/testproto/test_pb2_grpc.pyi +++ b/test/generated_async_only/testproto/test_pb2_grpc.pyi @@ -14,7 +14,7 @@ import typing GRPC_GENERATED_VERSION: str GRPC_VERSION: str -class PythonReservedKeywordsServiceAsyncStub: +class PythonReservedKeywordsServiceStub: """Method name is reserved""" def __init__(self, channel: grpc.aio.Channel) -> None: ... @@ -23,8 +23,6 @@ class PythonReservedKeywordsServiceAsyncStub: valid_method_name2: grpc.aio.UnaryUnaryMultiCallable[testproto.test_pb2.Simple1, testproto.test_pb2.PythonReservedKeywords._r_lambda] """valid_method_name2""" -PythonReservedKeywordsServiceStub = PythonReservedKeywordsServiceAsyncStub - class PythonReservedKeywordsServiceServicer(metaclass=abc.ABCMeta): """Method name is reserved""" From aa774b1e5da4514e4b50cf1b45f45e424f0db951 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 14 Dec 2025 23:45:10 +0000 Subject: [PATCH 23/23] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aecc078d..7eb5e8e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Protobuf <6.32 still had the edition enums and field options, so it *should* still work. But is untested - Add support for editions (up to 2024) - Add `generate_concrete_servicer_stubs` option to generate concrete instead of abstract servicer stubs +- Add `sync_only`/`async_only` options to generate only sync or async version of GRPC stubs - Switch to types-grpcio instead of no longer maintained grpc-stubs - Add `_HasFieldArgType` and `_ClearFieldArgType` aliases to allow for typing field manipulation functions - Add `_WhichOneofArgType_` and `_WhichOneofReturnType_` type aliases