add typing to transport

This commit is contained in:
Chih Cheng Liang
2019-08-02 16:32:33 +08:00
parent a20c172480
commit 29fbb9e40a
5 changed files with 125 additions and 71 deletions

View File

@ -1,22 +1,29 @@
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from multiaddr import Multiaddr
from libp2p.peer.id import ID
from libp2p.network.connection.raw_connection_interface import IRawConnection
from .listener_interface import IListener
from .typing import THandler
class ITransport(ABC):
@abstractmethod
def dial(self, maddr, self_id, options=None):
async def dial(self, maddr: "Multiaddr", self_id: "ID") -> "IRawConnection":
"""
dial a transport to peer listening on multiaddr
:param multiaddr: multiaddr of peer
:param self_id: peer_id of the dialer (to send to receiver)
:param options: optional object
:return: list of multiaddrs
"""
@abstractmethod
def create_listener(self, handler_function, options=None):
def create_listener(self, handler_function: "THandler") -> "IListener":
"""
create listener on transport
:param options: optional object with properties the listener must have
:param handler_function: a function called when a new conntion is received
that takes a connection as argument which implements interface-connection
:return: a listener object that implements listener_interface.py