-
Notifications
You must be signed in to change notification settings - Fork 34
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Привет!
Я заметил, что у вас в SDK при создании клиента, в 73 строке аннотацией типа stub_ctor указан Type и возвращается Any
У меня тайпинг указывает, что возвращаемый объект Any:

И не предлагает подсказок по методам и полям класса
Разумеется это можно решить сделав так:
service: ServiceAccountServiceStub = s.client(ServiceAccountServiceStub)Но я предлагаю небольшую модификацию:
from typing import TYPE_CHECKING, Any, Dict, Optional, Type, TypeVar, Union
...
Client = TypeVar("Client")
...
class SDK:
def __init__(
...
def client(
self,
stub_ctor: type[Client], # Указываем, что принимаем тип клиента
interceptor: Union[
grpc.UnaryUnaryClientInterceptor,
grpc.UnaryStreamClientInterceptor,
grpc.StreamUnaryClientInterceptor,
grpc.StreamStreamClientInterceptor,
None,
] = None,
endpoint: Optional[str] = None,
insecure: bool = False,
) -> Client: # Указываем, что возвращаем объект клиента
...После этого для клиентов появляется тайпинг:

Если для вас это не будет проблемой, то для меня это облегчит взаимодействие с SDK
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request