mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2026-02-12 16:10:57 +00:00
add typing to transport
This commit is contained in:
@ -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
|
||||
|
||||
Reference in New Issue
Block a user