Hi @ColdrickSotK - I merged PR #13 and added the example you posted as the basis for a test; unfortunately there's now a large number of type errors that happen when I run it:
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:52: error: Definition of "metadata" in base class "_ClientCallDetails" is incompatible with definition in base class "ClientCallDetails" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:143: error: Definition of "initial_metadata" in base class "InterceptedCall" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:143: error: Definition of "trailing_metadata" in base class "InterceptedCall" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:164: error: Definition of "initial_metadata" in base class "InterceptedCall" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:164: error: Definition of "trailing_metadata" in base class "InterceptedCall" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:185: error: Definition of "initial_metadata" in base class "InterceptedCall" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:185: error: Definition of "trailing_metadata" in base class "InterceptedCall" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:207: error: Definition of "initial_metadata" in base class "InterceptedCall" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:207: error: Definition of "trailing_metadata" in base class "InterceptedCall" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:242: error: Return type "Coroutine[Any, Any, Optional[Metadata]]" of "initial_metadata" incompatible with return type "Coroutine[Any, Any, Metadata]" in supertype "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:244: error: Return type "Coroutine[Any, Any, Optional[Metadata]]" of "trailing_metadata" incompatible with return type "Coroutine[Any, Any, Metadata]" in supertype "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:289: error: Definition of "initial_metadata" in base class "_StreamCallResponseIterator" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:289: error: Definition of "trailing_metadata" in base class "_StreamCallResponseIterator" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:294: error: Definition of "initial_metadata" in base class "_StreamCallResponseIterator" is incompatible with definition in base class "Call" (diff)
E ../../home/bl/code/py/grpc-stubs/grpc-stubs/aio/_interceptori:294: error: Definition of "trailing_metadata" in base class "_StreamCallResponseIterator" is incompatible with definition in base class "Call" (diff)
E main:16: error: Argument 3 to "ClientCallDetails" has incompatible type "List[Any]"; expected "Optional[Metadata]" (diff)
I think a lot of it stems from the fact that the aio module uses a bit of an unholy mix of the abc module combined with messy multiple inheritance and type overloads just for good measure.
Do you have any suggestions for how some of these issues can be resolved?
Hi @ColdrickSotK - I merged PR #13 and added the example you posted as the basis for a test; unfortunately there's now a large number of type errors that happen when I run it:
I think a lot of it stems from the fact that the aio module uses a bit of an unholy mix of the
abc
module combined with messy multiple inheritance and type overloads just for good measure.Do you have any suggestions for how some of these issues can be resolved?