Skip to content

Commit 02c652c

Browse files
committed
Lint
1 parent 51f61bb commit 02c652c

File tree

12 files changed

+101
-77
lines changed

12 files changed

+101
-77
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ SRC = src tests example.py example_with_token.py
1010
help: ## Show this help (default)
1111
@grep -F -h "##" $(MAKEFILE_LIST) | grep -F -v fgrep | sed -e 's/\\$$//' | sed -e 's/##//'
1212

13-
all: ## Run a whole CI pipeline: formatters, linters, tests and docs
14-
make lint test docs
13+
all: ## Run a whole CI pipeline: formatters, linters, tests
14+
make lint test
1515

1616
lint: ## Lint with all tools
1717
make black ruff mypy

example_with_token.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ async def on_error(message: CompletionMessage) -> None:
2626

2727
def token_factory() -> str:
2828
# Replace with logic to fetch or generate the token
29-
return "your_access_token_here"
29+
return 'your_access_token_here'
3030

3131

3232
async def main() -> None:
3333
client = SignalRClient(
3434
url='https://api.tzkt.io/v1/ws',
3535
access_token_factory=token_factory,
36-
headers={"mycustomheader": "mycustomheadervalue"},
36+
headers={'mycustomheader': 'mycustomheadervalue'},
3737
)
3838

3939
client.on_open(on_open)

src/pysignalr/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class NegotiationTimeout(Exception):
1616
"""
1717
Exception raised when the connection URL generated during negotiation is no longer valid.
1818
"""
19+
1920
pass
2021

2122

src/pysignalr/client.py

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,30 @@
33
import uuid
44
from collections import defaultdict
55
from contextlib import asynccontextmanager
6-
from typing import Any, AsyncIterator, Awaitable, Callable
6+
from typing import Any
7+
from typing import AsyncIterator
8+
from typing import Awaitable
9+
from typing import Callable
710

811
from pysignalr.exceptions import ServerError
9-
from pysignalr.messages import (
10-
CancelInvocationMessage,
11-
CloseMessage,
12-
CompletionClientStreamMessage,
13-
CompletionMessage,
14-
InvocationClientStreamMessage,
15-
InvocationMessage,
16-
Message,
17-
MessageType,
18-
PingMessage,
19-
StreamInvocationMessage,
20-
StreamItemMessage,
21-
)
12+
from pysignalr.messages import CancelInvocationMessage
13+
from pysignalr.messages import CloseMessage
14+
from pysignalr.messages import CompletionClientStreamMessage
15+
from pysignalr.messages import CompletionMessage
16+
from pysignalr.messages import InvocationClientStreamMessage
17+
from pysignalr.messages import InvocationMessage
18+
from pysignalr.messages import Message
19+
from pysignalr.messages import MessageType
20+
from pysignalr.messages import PingMessage
21+
from pysignalr.messages import StreamInvocationMessage
22+
from pysignalr.messages import StreamItemMessage
2223
from pysignalr.protocol.abstract import Protocol
2324
from pysignalr.protocol.json import JSONProtocol
2425
from pysignalr.transport.abstract import Transport
25-
from pysignalr.transport.websocket import (
26-
DEFAULT_CONNECTION_TIMEOUT,
27-
DEFAULT_MAX_SIZE,
28-
DEFAULT_PING_INTERVAL,
29-
WebsocketTransport,
30-
)
26+
from pysignalr.transport.websocket import DEFAULT_CONNECTION_TIMEOUT
27+
from pysignalr.transport.websocket import DEFAULT_MAX_SIZE
28+
from pysignalr.transport.websocket import DEFAULT_PING_INTERVAL
29+
from pysignalr.transport.websocket import WebsocketTransport
3130

3231
EmptyCallback = Callable[[], Awaitable[None]]
3332
AnyCallback = Callable[[Any], Awaitable[None]]
@@ -232,7 +231,7 @@ async def _on_message(self, message: Message) -> None:
232231
Args:
233232
message (Message): The incoming message.
234233
"""
235-
if message.type == MessageType.invocation_binding_failure:
234+
if message.type == MessageType.invocation_binding_failure: # type: ignore[attr-defined]
236235
raise ServerError(str(message))
237236

238237
elif isinstance(message, PingMessage):
@@ -306,7 +305,7 @@ async def _on_cancel_invocation_message(self, message: CancelInvocationMessage)
306305
"""
307306
_, _, callback = self._stream_handlers[message.invocation_id]
308307
if callback:
309-
await callback(message)
308+
await callback(message) # type: ignore[arg-type]
310309

311310
async def _on_close_message(self, message: CloseMessage) -> None:
312311
"""

src/pysignalr/exceptions.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class HubError(Exception):
88
"""
99
Base class for all Hub-related errors.
1010
"""
11+
1112
pass
1213

1314

@@ -16,6 +17,7 @@ class AuthorizationError(HubError):
1617
"""
1718
Exception raised for authorization errors.
1819
"""
20+
1921
pass
2022

2123

@@ -27,6 +29,7 @@ class ConnectionError(HubError):
2729
Attributes:
2830
status (int): The HTTP status code related to the connection error.
2931
"""
32+
3033
status: int
3134

3235

@@ -38,4 +41,5 @@ class ServerError(HubError):
3841
Attributes:
3942
message (str | None): The error message from the server.
4043
"""
44+
4145
message: str | None

src/pysignalr/messages.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class HandshakeMessage:
1010
"""
1111
Base class for handshake messages.
1212
"""
13+
1314
def dump(self) -> dict[str, Any]:
1415
"""
1516
Dumps the handshake message into a dictionary.
@@ -29,6 +30,7 @@ class HandshakeRequestMessage(HandshakeMessage):
2930
protocol (str): The protocol name.
3031
version (int): The protocol version.
3132
"""
33+
3234
protocol: str
3335
version: int
3436

@@ -41,6 +43,7 @@ class HandshakeResponseMessage(HandshakeMessage):
4143
Attributes:
4244
error (str | None): The error message if the handshake failed.
4345
"""
46+
4447
error: str | None
4548

4649

@@ -58,6 +61,7 @@ class MessageType(IntEnum):
5861
close (int): Close message type.
5962
invocation_binding_failure (int): Invocation binding failure message type.
6063
"""
64+
6165
_ = 9999
6266
invocation = 1
6367
stream_item = 2
@@ -77,6 +81,7 @@ class Message:
7781
Methods:
7882
dump() -> dict[str, Any]: Dumps the message into a dictionary.
7983
"""
84+
8085
def __init_subclass__(cls, type_: MessageType) -> None:
8186
cls.type = type_ # type: ignore[attr-defined]
8287

@@ -110,6 +115,7 @@ class ResponseMessage(Message, type_=MessageType._):
110115
error (str | None): The error message.
111116
result (Any | None): The result of the message.
112117
"""
118+
113119
error: str | None
114120
result: Any | None
115121

@@ -123,6 +129,7 @@ class CancelInvocationMessage(Message, type_=MessageType.cancel_invocation):
123129
invocation_id (str): The ID of the invocation to cancel.
124130
headers (dict[str, Any] | None): Optional headers.
125131
"""
132+
126133
invocation_id: str
127134
headers: dict[str, Any] | None = None
128135

@@ -137,6 +144,7 @@ class CloseMessage(Message, type_=MessageType.close):
137144
allow_reconnect (bool | None): Whether reconnection is allowed.
138145
headers (dict[str, Any] | None): Optional headers.
139146
"""
147+
140148
error: str | None = None
141149
allow_reconnect: bool | None = None
142150
headers: dict[str, Any] | None = None
@@ -151,6 +159,7 @@ class CompletionClientStreamMessage(Message, type_=MessageType.stream_item):
151159
invocation_id (str): The ID of the invocation.
152160
headers (dict[str, Any] | None): Optional headers.
153161
"""
162+
154163
invocation_id: str
155164
headers: dict[str, Any] | None = None
156165

@@ -166,6 +175,7 @@ class CompletionMessage(Message, type_=MessageType.completion):
166175
error (str | None): The error message if the invocation failed.
167176
headers (dict[str, Any] | None): Optional headers.
168177
"""
178+
169179
invocation_id: str
170180
result: Any | None = None
171181
error: str | None = None
@@ -183,6 +193,7 @@ class InvocationMessage(Message, type_=MessageType.invocation):
183193
arguments: The arguments for the method invocation.
184194
headers (dict[str, Any] | None): Optional headers.
185195
"""
196+
186197
invocation_id: str
187198
target: str
188199
arguments: Any
@@ -200,6 +211,7 @@ class InvocationClientStreamMessage(Message, type_=MessageType.invocation):
200211
arguments: The arguments for the method invocation.
201212
headers (dict[str, Any] | None): Optional headers.
202213
"""
214+
203215
stream_ids: list[str]
204216
target: str
205217
arguments: Any
@@ -211,6 +223,7 @@ class PingMessage(Message, type_=MessageType.ping):
211223
"""
212224
Ping message.
213225
"""
226+
214227
pass
215228

216229

@@ -225,6 +238,7 @@ class StreamInvocationMessage(Message, type_=MessageType.stream_invocation):
225238
arguments: The arguments for the method invocation.
226239
headers (dict[str, Any] | None): Optional headers.
227240
"""
241+
228242
invocation_id: str
229243
target: str
230244
arguments: Any
@@ -241,6 +255,7 @@ class StreamItemMessage(Message, type_=MessageType.stream_item):
241255
item: The stream item.
242256
headers (dict[str, Any] | None): Optional headers.
243257
"""
258+
244259
invocation_id: str
245260
item: Any
246261
headers: dict[str, Any] | None = None
@@ -253,6 +268,7 @@ class JSONMessage(Message, type_=MessageType._):
253268
Attributes:
254269
data (dict[str, Any]): The JSON data.
255270
"""
271+
256272
def __init__(self, data: dict[str, Any]) -> None:
257273
self.data = data
258274

src/pysignalr/protocol/abstract.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@
44
from abc import abstractmethod
55
from typing import Iterable
66

7-
from pysignalr.messages import (
8-
HandshakeRequestMessage,
9-
HandshakeResponseMessage,
10-
Message
11-
)
7+
from pysignalr.messages import HandshakeRequestMessage
8+
from pysignalr.messages import HandshakeResponseMessage
9+
from pysignalr.messages import Message
10+
1211

1312
class Protocol(ABC):
1413
"""

src/pysignalr/protocol/json.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,27 @@
66

77
import orjson
88

9-
from pysignalr.messages import (
10-
CancelInvocationMessage, # 5
11-
CloseMessage, # 7
12-
CompletionMessage, # 3
13-
HandshakeMessage,
14-
HandshakeRequestMessage,
15-
HandshakeResponseMessage,
16-
InvocationMessage, # 1
17-
JSONMessage, # virtual
18-
Message,
19-
MessageType,
20-
PingMessage, # 6
21-
StreamInvocationMessage, # 4
22-
StreamItemMessage # 2
23-
)
9+
from pysignalr.messages import CancelInvocationMessage # 5
10+
from pysignalr.messages import CloseMessage # 7
11+
from pysignalr.messages import CompletionMessage # 3
12+
from pysignalr.messages import HandshakeMessage
13+
from pysignalr.messages import HandshakeRequestMessage
14+
from pysignalr.messages import HandshakeResponseMessage
15+
from pysignalr.messages import InvocationMessage # 1
16+
from pysignalr.messages import JSONMessage # virtual
17+
from pysignalr.messages import Message
18+
from pysignalr.messages import MessageType
19+
from pysignalr.messages import PingMessage # 6
20+
from pysignalr.messages import StreamInvocationMessage # 4
21+
from pysignalr.messages import StreamItemMessage # 2
2422
from pysignalr.protocol.abstract import Protocol
2523

2624

2725
class MessageEncoder(JSONEncoder):
2826
"""
2927
Custom JSONEncoder for encoding Message and MessageType objects.
3028
31-
This class is a subclass of JSONEncoder and overrides the default() method
29+
This class is a subclass of JSONEncoder and overrides the default() method
3230
to provide custom serialization for Message and MessageType objects.
3331
"""
3432

@@ -54,7 +52,7 @@ class BaseJSONProtocol(Protocol):
5452
"""
5553
Base class for JSON protocols.
5654
57-
This class provides the basic structure for JSON protocols and defines
55+
This class provides the basic structure for JSON protocols and defines
5856
some abstract methods that must be implemented by subclasses.
5957
"""
6058

src/pysignalr/protocol/messagepack.py

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,26 @@
22

33
# TODO: Refactor this module
44
from collections import deque
5-
from typing import (
6-
Any,
7-
Iterable,
8-
Sequence,
9-
cast
10-
)
5+
from typing import Any
6+
from typing import Iterable
7+
from typing import Sequence
8+
from typing import cast
119

1210
import msgpack # type: ignore[import-untyped]
1311
import orjson
1412

15-
from pysignalr.messages import (
16-
CancelInvocationMessage,
17-
CloseMessage,
18-
CompletionMessage,
19-
HandshakeRequestMessage,
20-
HandshakeResponseMessage,
21-
InvocationClientStreamMessage,
22-
InvocationMessage,
23-
Message,
24-
MessageType,
25-
PingMessage,
26-
StreamInvocationMessage,
27-
StreamItemMessage
28-
)
13+
from pysignalr.messages import CancelInvocationMessage
14+
from pysignalr.messages import CloseMessage
15+
from pysignalr.messages import CompletionMessage
16+
from pysignalr.messages import HandshakeRequestMessage
17+
from pysignalr.messages import HandshakeResponseMessage
18+
from pysignalr.messages import InvocationClientStreamMessage
19+
from pysignalr.messages import InvocationMessage
20+
from pysignalr.messages import Message
21+
from pysignalr.messages import MessageType
22+
from pysignalr.messages import PingMessage
23+
from pysignalr.messages import StreamInvocationMessage
24+
from pysignalr.messages import StreamItemMessage
2925
from pysignalr.protocol.abstract import Protocol
3026

3127
_attribute_priority = (

src/pysignalr/transport/abstract.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class ConnectionState(IntEnum):
1717
reconnecting: The connection is being reestablished after being lost.
1818
disconnected: The connection has been lost or intentionally closed.
1919
"""
20+
2021
connecting = auto()
2122
connected = auto()
2223
reconnecting = auto()

0 commit comments

Comments
 (0)