diff --git a/libp2p/host/basic_host.py b/libp2p/host/basic_host.py index f424cb6..661d83e 100644 --- a/libp2p/host/basic_host.py +++ b/libp2p/host/basic_host.py @@ -1,4 +1,4 @@ -from typing import Any, Awaitable, Callable, List, Sequence +from typing import Any, List, Sequence import multiaddr diff --git a/libp2p/host/host_interface.py b/libp2p/host/host_interface.py index d53ba1e..ce31dbc 100644 --- a/libp2p/host/host_interface.py +++ b/libp2p/host/host_interface.py @@ -1,5 +1,5 @@ from abc import ABC, abstractmethod -from typing import Any, Awaitable, Callable, List, Sequence +from typing import Any, List, Sequence import multiaddr diff --git a/libp2p/network/network_interface.py b/libp2p/network/network_interface.py index 28b6208..468adfd 100644 --- a/libp2p/network/network_interface.py +++ b/libp2p/network/network_interface.py @@ -1,5 +1,5 @@ from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Awaitable, Callable, Dict, Sequence +from typing import TYPE_CHECKING, Dict, Sequence from multiaddr import Multiaddr @@ -12,7 +12,7 @@ from libp2p.typing import StreamHandlerFn from .stream.net_stream_interface import INetStream if TYPE_CHECKING: - from .notifee_interface import INotifee + from .notifee_interface import INotifee # noqa: F401 class INetwork(ABC): diff --git a/libp2p/network/notifee_interface.py b/libp2p/network/notifee_interface.py index 2eadd49..ef996bf 100644 --- a/libp2p/network/notifee_interface.py +++ b/libp2p/network/notifee_interface.py @@ -7,7 +7,7 @@ from libp2p.network.stream.net_stream_interface import INetStream from libp2p.stream_muxer.abc import IMuxedConn if TYPE_CHECKING: - from .network_interface import INetwork + from .network_interface import INetwork # noqa: F401 class INotifee(ABC): diff --git a/libp2p/network/swarm.py b/libp2p/network/swarm.py index 71a365b..26cdc34 100644 --- a/libp2p/network/swarm.py +++ b/libp2p/network/swarm.py @@ -1,5 +1,5 @@ import asyncio -from typing import Awaitable, Callable, Dict, List, Sequence +from typing import Callable, Dict, List, Sequence from multiaddr import Multiaddr diff --git a/libp2p/protocol_muxer/multiselect.py b/libp2p/protocol_muxer/multiselect.py index af22358..6312e27 100644 --- a/libp2p/protocol_muxer/multiselect.py +++ b/libp2p/protocol_muxer/multiselect.py @@ -1,4 +1,4 @@ -from typing import Dict, Tuple, TypeVar +from typing import Dict, Tuple from libp2p.stream_muxer.abc import IMuxedStream from libp2p.typing import StreamHandlerFn, TProtocol diff --git a/libp2p/protocol_muxer/multiselect_muxer_interface.py b/libp2p/protocol_muxer/multiselect_muxer_interface.py index 0d0ed59..edacc6b 100644 --- a/libp2p/protocol_muxer/multiselect_muxer_interface.py +++ b/libp2p/protocol_muxer/multiselect_muxer_interface.py @@ -1,5 +1,5 @@ from abc import ABC, abstractmethod -from typing import Dict, Tuple, TypeVar +from typing import Dict, Tuple from libp2p.stream_muxer.abc import IMuxedStream from libp2p.typing import StreamHandlerFn, TProtocol diff --git a/libp2p/pubsub/pubsub.py b/libp2p/pubsub/pubsub.py index d0dad89..e715dba 100644 --- a/libp2p/pubsub/pubsub.py +++ b/libp2p/pubsub/pubsub.py @@ -15,7 +15,7 @@ from .pubsub_notifee import PubsubNotifee from .validators import signature_validator if TYPE_CHECKING: - from .pubsub_router_interface import IPubsubRouter + from .pubsub_router_interface import IPubsubRouter # noqa: F401 log = logging.getLogger(__name__) diff --git a/libp2p/pubsub/pubsub_notifee.py b/libp2p/pubsub/pubsub_notifee.py index 9d5132e..8878a27 100644 --- a/libp2p/pubsub/pubsub_notifee.py +++ b/libp2p/pubsub/pubsub_notifee.py @@ -8,8 +8,8 @@ from libp2p.network.stream.net_stream_interface import INetStream from libp2p.stream_muxer.abc import IMuxedConn if TYPE_CHECKING: - import asyncio - from libp2p.peer.id import ID + import asyncio # noqa: F401 + from libp2p.peer.id import ID # noqa: F401 class PubsubNotifee(INotifee): diff --git a/libp2p/pubsub/pubsub_router_interface.py b/libp2p/pubsub/pubsub_router_interface.py index ce445d0..f2c01a3 100644 --- a/libp2p/pubsub/pubsub_router_interface.py +++ b/libp2p/pubsub/pubsub_router_interface.py @@ -6,7 +6,7 @@ from libp2p.peer.id import ID from .pb import rpc_pb2 if TYPE_CHECKING: - from .pubsub import Pubsub + from .pubsub import Pubsub # noqa: F401 class IPubsubRouter(ABC): diff --git a/libp2p/security/insecure_security.py b/libp2p/security/insecure_security.py index 867e366..96187f2 100644 --- a/libp2p/security/insecure_security.py +++ b/libp2p/security/insecure_security.py @@ -1,12 +1,11 @@ -from typing import TYPE_CHECKING, cast +from typing import cast from libp2p.security.secure_conn_interface import ISecureConn from libp2p.security.secure_transport_interface import ISecureTransport -if TYPE_CHECKING: - from libp2p.network.connection.raw_connection_interface import IRawConnection - from libp2p.peer.id import ID - from .typing import TSecurityDetails +from libp2p.network.connection.raw_connection_interface import IRawConnection +from libp2p.peer.id import ID +from .typing import TSecurityDetails class InsecureTransport(ISecureTransport): @@ -20,7 +19,7 @@ class InsecureTransport(ISecureTransport): def __init__(self, transport_id: str) -> None: self.transport_id = transport_id - async def secure_inbound(self, conn: "IRawConnection") -> ISecureConn: + async def secure_inbound(self, conn: IRawConnection) -> ISecureConn: """ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are not the initiator) @@ -29,7 +28,7 @@ class InsecureTransport(ISecureTransport): insecure_conn = InsecureConn(conn, self.transport_id) return insecure_conn - async def secure_outbound(self, conn: "IRawConnection", peer_id: "ID") -> ISecureConn: + async def secure_outbound(self, conn: IRawConnection, peer_id: ID) -> ISecureConn: """ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are the initiator) @@ -40,21 +39,21 @@ class InsecureTransport(ISecureTransport): class InsecureConn(ISecureConn): - conn: "IRawConnection" - details: "TSecurityDetails" + conn: IRawConnection + details: TSecurityDetails - def __init__(self, conn: "IRawConnection", conn_id: str) -> None: + def __init__(self, conn: IRawConnection, conn_id: str) -> None: self.conn = conn - self.details = cast("TSecurityDetails", {}) + self.details = cast(TSecurityDetails, {}) self.details["id"] = conn_id - def get_conn(self) -> "IRawConnection": + def get_conn(self) -> IRawConnection: """ :return: connection object that has been made secure """ return self.conn - def get_security_details(self) -> "TSecurityDetails": + def get_security_details(self) -> TSecurityDetails: """ :return: map containing details about the connections security """ diff --git a/libp2p/security/secure_conn_interface.py b/libp2p/security/secure_conn_interface.py index ce4f31c..17c3753 100644 --- a/libp2p/security/secure_conn_interface.py +++ b/libp2p/security/secure_conn_interface.py @@ -1,9 +1,7 @@ from abc import ABC, abstractmethod -from typing import TYPE_CHECKING -if TYPE_CHECKING: - from libp2p.network.connection.raw_connection_interface import IRawConnection - from .typing import TSecurityDetails +from libp2p.network.connection.raw_connection_interface import IRawConnection +from .typing import TSecurityDetails """ @@ -16,13 +14,13 @@ Relevant go repo: https://github.com/libp2p/go-conn-security/blob/master/interfa class ISecureConn(ABC): @abstractmethod - def get_conn(self) -> "IRawConnection": + def get_conn(self) -> IRawConnection: """ :return: the underlying raw connection """ @abstractmethod - def get_security_details(self) -> "TSecurityDetails": + def get_security_details(self) -> TSecurityDetails: """ :return: map containing details about the connections security """ diff --git a/libp2p/security/secure_transport_interface.py b/libp2p/security/secure_transport_interface.py index fdadcd7..14366f6 100644 --- a/libp2p/security/secure_transport_interface.py +++ b/libp2p/security/secure_transport_interface.py @@ -1,10 +1,8 @@ from abc import ABC, abstractmethod -from typing import TYPE_CHECKING -if TYPE_CHECKING: - from .secure_conn_interface import ISecureConn - from libp2p.network.connection.raw_connection_interface import IRawConnection - from libp2p.peer.id import ID +from .secure_conn_interface import ISecureConn +from libp2p.network.connection.raw_connection_interface import IRawConnection +from libp2p.peer.id import ID """ @@ -17,7 +15,7 @@ Relevant go repo: https://github.com/libp2p/go-conn-security/blob/master/interfa class ISecureTransport(ABC): @abstractmethod - async def secure_inbound(self, conn: "IRawConnection") -> "ISecureConn": + async def secure_inbound(self, conn: IRawConnection) -> ISecureConn: """ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are not the initiator) @@ -25,7 +23,7 @@ class ISecureTransport(ABC): """ @abstractmethod - async def secure_outbound(self, conn: "IRawConnection", peer_id: "ID") -> "ISecureConn": + async def secure_outbound(self, conn: IRawConnection, peer_id: ID) -> ISecureConn: """ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are the initiator) diff --git a/libp2p/security/security_multistream.py b/libp2p/security/security_multistream.py index 519cc6c..cc5b90c 100644 --- a/libp2p/security/security_multistream.py +++ b/libp2p/security/security_multistream.py @@ -1,5 +1,5 @@ from abc import ABC -from typing import Dict, NewType +from typing import Dict from libp2p.network.connection.raw_connection_interface import IRawConnection from libp2p.peer.id import ID @@ -20,9 +20,9 @@ Relevant go repo: https://github.com/libp2p/go-conn-security/blob/master/interfa class SecurityMultistream(ABC): - transports: Dict[TProtocol, "ISecureTransport"] - multiselect: "Multiselect" - multiselect_client: "MultiselectClient" + transports: Dict[TProtocol, ISecureTransport] + multiselect: Multiselect + multiselect_client: MultiselectClient def __init__(self) -> None: # Map protocol to secure transport @@ -34,7 +34,7 @@ class SecurityMultistream(ABC): # Create multiselect client self.multiselect_client = MultiselectClient() - def add_transport(self, protocol: TProtocol, transport: "ISecureTransport") -> None: + def add_transport(self, protocol: TProtocol, transport: ISecureTransport) -> None: # Associate protocol with transport self.transports[protocol] = transport @@ -43,7 +43,7 @@ class SecurityMultistream(ABC): # we only care about selecting the protocol, not any handler function self.multiselect.add_handler(protocol, None) - async def secure_inbound(self, conn: "IRawConnection") -> "ISecureConn": + async def secure_inbound(self, conn: IRawConnection) -> ISecureConn: """ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are not the initiator) @@ -58,7 +58,7 @@ class SecurityMultistream(ABC): return secure_conn - async def secure_outbound(self, conn: "IRawConnection", peer_id: "ID") -> "ISecureConn": + async def secure_outbound(self, conn: IRawConnection, peer_id: ID) -> ISecureConn: """ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are the initiator) @@ -73,7 +73,7 @@ class SecurityMultistream(ABC): return secure_conn - async def select_transport(self, conn: "IRawConnection", initiator: bool) -> "ISecureTransport": + async def select_transport(self, conn: IRawConnection, initiator: bool) -> ISecureTransport: """ Select a transport that both us and the node on the other end of conn support and agree on diff --git a/libp2p/security/simple_security.py b/libp2p/security/simple_security.py index a3df592..66e111b 100644 --- a/libp2p/security/simple_security.py +++ b/libp2p/security/simple_security.py @@ -1,13 +1,12 @@ import asyncio -from typing import TYPE_CHECKING, cast +from typing import cast from libp2p.security.secure_conn_interface import ISecureConn from libp2p.security.secure_transport_interface import ISecureTransport -if TYPE_CHECKING: - from libp2p.network.connection.raw_connection_interface import IRawConnection - from libp2p.peer.id import ID - from .typing import TSecurityDetails +from libp2p.network.connection.raw_connection_interface import IRawConnection +from libp2p.peer.id import ID +from .typing import TSecurityDetails class SimpleSecurityTransport(ISecureTransport): @@ -16,7 +15,7 @@ class SimpleSecurityTransport(ISecureTransport): def __init__(self, key_phrase: str) -> None: self.key_phrase = key_phrase - async def secure_inbound(self, conn: "IRawConnection") -> "ISecureConn": + async def secure_inbound(self, conn: IRawConnection) -> ISecureConn: """ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are not the initiator) @@ -31,7 +30,7 @@ class SimpleSecurityTransport(ISecureTransport): secure_conn = SimpleSecureConn(conn, self.key_phrase) return secure_conn - async def secure_outbound(self, conn: "IRawConnection", peer_id: "ID") -> "ISecureConn": + async def secure_outbound(self, conn: IRawConnection, peer_id: ID) -> ISecureConn: """ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are the initiator) @@ -52,22 +51,22 @@ class SimpleSecurityTransport(ISecureTransport): class SimpleSecureConn(ISecureConn): - conn: "IRawConnection" + conn: IRawConnection key_phrase: str - details: "TSecurityDetails" + details: TSecurityDetails - def __init__(self, conn: "IRawConnection", key_phrase: str) -> None: + def __init__(self, conn: IRawConnection, key_phrase: str) -> None: self.conn = conn - self.details = cast("TSecurityDetails", {}) + self.details = cast(TSecurityDetails, {}) self.details["key_phrase"] = key_phrase - def get_conn(self) -> "IRawConnection": + def get_conn(self) -> IRawConnection: """ :return: connection object that has been made secure """ return self.conn - def get_security_details(self) -> "TSecurityDetails": + def get_security_details(self) -> TSecurityDetails: """ :return: map containing details about the connections security """ diff --git a/tests/examples/test_chat.py b/tests/examples/test_chat.py index 8a43152..0422c95 100644 --- a/tests/examples/test_chat.py +++ b/tests/examples/test_chat.py @@ -89,7 +89,7 @@ async def no_common_protocol(host_a, host_b): # try to creates a new new with a procotol not known by the other host with pytest.raises(MultiselectClientError): - _ = await host_b.new_stream(host_a.get_id(), ["/fakeproto/0.0.1"]) + await host_b.new_stream(host_a.get_id(), ["/fakeproto/0.0.1"]) @pytest.mark.asyncio diff --git a/tests/peer/test_peerid.py b/tests/peer/test_peerid.py index 908e6b8..65b3c06 100644 --- a/tests/peer/test_peerid.py +++ b/tests/peer/test_peerid.py @@ -19,7 +19,7 @@ def test_init(): def test_no_init_value(): - with pytest.raises(Exception) as _: + with pytest.raises(Exception): ID() diff --git a/tests/peer/test_peerinfo.py b/tests/peer/test_peerinfo.py index a25cb80..fb58298 100644 --- a/tests/peer/test_peerinfo.py +++ b/tests/peer/test_peerinfo.py @@ -28,7 +28,7 @@ def test_init_(): def test_init_no_value(): - with pytest.raises(Exception) as _: + with pytest.raises(Exception): PeerInfo() diff --git a/tests/pubsub/test_mcache.py b/tests/pubsub/test_mcache.py index b6d0a4c..e80ad27 100644 --- a/tests/pubsub/test_mcache.py +++ b/tests/pubsub/test_mcache.py @@ -4,6 +4,8 @@ from libp2p.pubsub.mcache import MessageCache class Msg: + __slots__ = ["topicIDs", "seqno", "from_id"] + def __init__(self, topicIDs, seqno, from_id): self.topicIDs = topicIDs self.seqno = seqno