From 3683fccfd5b9d7c25fd2862f4128eef28d752ac2 Mon Sep 17 00:00:00 2001 From: AlaeddineAbdessalem Date: Wed, 28 Sep 2022 12:48:06 +0300 Subject: [PATCH] fix: fix compatibility with protobuf python backend (#5222) --- jina/serve/runtimes/gateway/http/models.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/jina/serve/runtimes/gateway/http/models.py b/jina/serve/runtimes/gateway/http/models.py index 19d60ece3a157..bfcd5b7258a93 100644 --- a/jina/serve/runtimes/gateway/http/models.py +++ b/jina/serve/runtimes/gateway/http/models.py @@ -2,15 +2,17 @@ from datetime import datetime from enum import Enum from types import SimpleNamespace -from typing import Callable, Dict, List, Optional, Union +from typing import TYPE_CHECKING, Callable, Dict, List, Optional, Union from docarray.document.pydantic_model import PydanticDocument, PydanticDocumentArray from google.protobuf.descriptor import Descriptor, FieldDescriptor -from google.protobuf.pyext.cpp_message import GeneratedProtocolMessageType from pydantic import BaseConfig, BaseModel, Field, create_model, root_validator from jina.proto.jina_pb2 import DataRequestProto, JinaInfoProto, RouteProto, StatusProto +if TYPE_CHECKING: + from google.protobuf.pyext.cpp_message import GeneratedProtocolMessageType + PROTO_TO_PYDANTIC_MODELS = SimpleNamespace() PROTOBUF_TO_PYTHON_TYPE = { FieldDescriptor.TYPE_INT32: int, @@ -97,7 +99,7 @@ def oneof_setter(cls, values): def protobuf_to_pydantic_model( - protobuf_model: Union[Descriptor, GeneratedProtocolMessageType] + protobuf_model: Union[Descriptor, 'GeneratedProtocolMessageType'] ) -> BaseModel: """ Converts Protobuf messages to Pydantic model for jsonschema creation/validattion