add still needed TYPE_CHECK

This commit is contained in:
Chih Cheng Liang 2019-08-05 10:35:56 +08:00
parent 87ef2e4618
commit 29091266fc
No known key found for this signature in database
GPG Key ID: C86B5E6612B1487A
6 changed files with 22 additions and 12 deletions

View File

@ -19,6 +19,7 @@ from .network_interface import INetwork
from .notifee_interface import INotifee from .notifee_interface import INotifee
from .stream.net_stream import NetStream from .stream.net_stream import NetStream
from .stream.net_stream_interface import INetStream from .stream.net_stream_interface import INetStream
from .typing import GenericProtocolHandlerFn
StreamHandlerFn = Callable[[INetStream], Awaitable[None]] StreamHandlerFn = Callable[[INetStream], Awaitable[None]]
@ -248,9 +249,6 @@ class Swarm(INetwork):
# TODO: `disconnect`? # TODO: `disconnect`?
GenericProtocolHandlerFn = Callable[[IMuxedStream], Awaitable[None]]
def create_generic_protocol_handler(swarm: Swarm) -> GenericProtocolHandlerFn: def create_generic_protocol_handler(swarm: Swarm) -> GenericProtocolHandlerFn:
""" """
Create a generic protocol handler from the given swarm. We use swarm Create a generic protocol handler from the given swarm. We use swarm

4
libp2p/network/typing.py Normal file
View File

@ -0,0 +1,4 @@
from typing import Awaitable, Callable
from libp2p.stream_muxer.muxed_stream_interface import IMuxedStream
GenericProtocolHandlerFn = Callable[[IMuxedStream], Awaitable[None]]

View File

@ -4,7 +4,7 @@ from typing import Tuple, Dict
from multiaddr import Multiaddr from multiaddr import Multiaddr
from libp2p.security.secure_conn_interface import ISecureConn from libp2p.security.secure_conn_interface import ISecureConn
from libp2p.network.connection.raw_connection_interface import IRawConnection from libp2p.network.connection.raw_connection_interface import IRawConnection
from libp2p.network.swarm import GenericProtocolHandlerFn from libp2p.network.typing import GenericProtocolHandlerFn
from libp2p.peer.id import ID from libp2p.peer.id import ID
from libp2p.stream_muxer.muxed_connection_interface import IMuxedConn from libp2p.stream_muxer.muxed_connection_interface import IMuxedConn
from libp2p.stream_muxer.muxed_stream_interface import IMuxedStream from libp2p.stream_muxer.muxed_stream_interface import IMuxedStream
@ -24,8 +24,8 @@ class Mplex(IMuxedConn):
initiator: bool initiator: bool
generic_protocol_handler = None generic_protocol_handler = None
peer_id: ID peer_id: ID
buffers: Dict[int, asyncio.Queue[bytes]] buffers: Dict[int, "asyncio.Queue[bytes]"]
stream_queue: asyncio.Queue[int] stream_queue: "asyncio.Queue[int]"
def __init__( def __init__(
self, self,

View File

@ -2,11 +2,16 @@ from abc import ABC, abstractmethod
from multiaddr import Multiaddr from multiaddr import Multiaddr
from libp2p.security.secure_conn_interface import ISecureConn from libp2p.security.secure_conn_interface import ISecureConn
from libp2p.network.swarm import GenericProtocolHandlerFn from libp2p.network.typing import GenericProtocolHandlerFn
from libp2p.peer.id import ID from libp2p.peer.id import ID
from libp2p.stream_muxer.muxed_stream_interface import IMuxedStream
from libp2p.stream_muxer.mplex.constants import HeaderTags from libp2p.stream_muxer.mplex.constants import HeaderTags
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from libp2p.stream_muxer.muxed_stream_interface import IMuxedStream
class IMuxedConn(ABC): class IMuxedConn(ABC):
""" """
@ -55,7 +60,7 @@ class IMuxedConn(ABC):
@abstractmethod @abstractmethod
async def open_stream( async def open_stream(
self, protocol_id: str, multi_addr: Multiaddr self, protocol_id: str, multi_addr: Multiaddr
) -> IMuxedStream: ) -> "IMuxedStream":
""" """
creates a new muxed_stream creates a new muxed_stream
:param protocol_id: protocol_id of stream :param protocol_id: protocol_id of stream

View File

@ -1,11 +1,14 @@
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
from typing import TYPE_CHECKING
from libp2p.stream_muxer.muxed_connection_interface import IMuxedConn
if TYPE_CHECKING:
from libp2p.stream_muxer.muxed_connection_interface import IMuxedConn
class IMuxedStream(ABC): class IMuxedStream(ABC):
mplex_conn: IMuxedConn mplex_conn: "IMuxedConn"
@abstractmethod @abstractmethod
async def read(self) -> bytes: async def read(self) -> bytes:

View File

@ -3,7 +3,7 @@ from typing import Dict, Sequence
from libp2p.stream_muxer.mplex.mplex import Mplex from libp2p.stream_muxer.mplex.mplex import Mplex
from libp2p.security.security_multistream import SecurityMultistream, TProtocol from libp2p.security.security_multistream import SecurityMultistream, TProtocol
from libp2p.network.connection.raw_connection_interface import IRawConnection from libp2p.network.connection.raw_connection_interface import IRawConnection
from libp2p.network.swarm import GenericProtocolHandlerFn from libp2p.network.typing import GenericProtocolHandlerFn
from libp2p.peer.id import ID from libp2p.peer.id import ID
from libp2p.security.secure_conn_interface import ISecureConn from libp2p.security.secure_conn_interface import ISecureConn
from libp2p.security.secure_transport_interface import ISecureTransport from libp2p.security.secure_transport_interface import ISecureTransport