Skip to content

Commit b6215c9

Browse files
chore/quality (#142)
Why === We had a number of long-standing nice-to-haves, let's just do them What changed ============ - We discussed switching from `Dict`/`List`/`Tuple`/`Optional` the builtin types. Let's do that. - `lambda` to `def` for readability and maintainability - Fixing some slop in `is_literal` - Add `# noqa` to remove the need for `sed` in our generator scripts Test plan ========= _Describe what you did to test this change to a level of detail that allows your reviewer to test it_
1 parent ec9c44c commit b6215c9

File tree

27 files changed

+362
-320
lines changed

27 files changed

+362
-320
lines changed

scripts/lint/src/lint/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def raise_err(code: int) -> None:
1111

1212
def main() -> None:
1313
fix = ["--fix"] if "--fix" in sys.argv else []
14-
raise_err(os.system(" ".join(["ruff", "check", "src"] + fix)))
15-
raise_err(os.system("ruff format src"))
14+
raise_err(os.system(" ".join(["ruff", "check", "src", "scripts", "tests"] + fix)))
15+
raise_err(os.system("ruff format src scripts tests"))
1616
raise_err(os.system("mypy src"))
1717
raise_err(os.system("pyright src"))

scripts/parity/check_parity.py

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Callable, Literal, TypedDict, TypeVar, Union
1+
from typing import Any, Callable, Literal, TypedDict, TypeVar
22

33
import pyd
44
import tyd
@@ -85,35 +85,37 @@ def testAgenttoollanguageserverOpendocumentInput() -> None:
8585
)
8686

8787

88-
kind_type = Union[
89-
Literal[1],
90-
Literal[2],
91-
Literal[3],
92-
Literal[4],
93-
Literal[5],
94-
Literal[6],
95-
Literal[7],
96-
Literal[8],
97-
Literal[9],
98-
Literal[10],
99-
Literal[11],
100-
Literal[12],
101-
Literal[13],
102-
Literal[14],
103-
Literal[15],
104-
Literal[16],
105-
Literal[17],
106-
Literal[18],
107-
Literal[19],
108-
Literal[20],
109-
Literal[21],
110-
Literal[22],
111-
Literal[23],
112-
Literal[24],
113-
Literal[25],
114-
Literal[26],
115-
None,
116-
]
88+
kind_type = (
89+
Literal[
90+
1,
91+
2,
92+
3,
93+
4,
94+
5,
95+
6,
96+
7,
97+
8,
98+
9,
99+
10,
100+
11,
101+
12,
102+
13,
103+
14,
104+
15,
105+
16,
106+
17,
107+
18,
108+
19,
109+
20,
110+
21,
111+
22,
112+
23,
113+
24,
114+
25,
115+
26,
116+
]
117+
| None
118+
)
117119

118120

119121
def testAgenttoollanguageserverGetcodesymbolInput() -> None:

scripts/parity/gen.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import random
22
import string
3-
from typing import Callable, Optional, TypeVar
3+
from typing import Callable, TypeVar
44

55
A = TypeVar("A")
66

@@ -37,7 +37,7 @@ def gen_choice(choices: list[A]) -> Callable[[], A]:
3737
return lambda: random.choice(choices)
3838

3939

40-
def gen_opt(gen_x: Callable[[], A]) -> Callable[[], Optional[A]]:
40+
def gen_opt(gen_x: Callable[[], A]) -> Callable[[], A | None]:
4141
return lambda: gen_x() if gen_bool() else None
4242

4343

src/replit_river/client.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from contextlib import contextmanager
44
from dataclasses import dataclass
55
from datetime import timedelta
6-
from typing import Any, AsyncGenerator, Generator, Generic, Literal, Optional, Union
6+
from typing import Any, AsyncGenerator, Generator, Generic, Literal
77

88
from opentelemetry import trace
99
from opentelemetry.trace import Span, SpanKind, Status, StatusCode
@@ -100,9 +100,9 @@ async def send_upload(
100100
self,
101101
service_name: str,
102102
procedure_name: str,
103-
init: Optional[InitType],
103+
init: InitType | None,
104104
request: AsyncIterable[RequestType],
105-
init_serializer: Optional[Callable[[InitType], Any]],
105+
init_serializer: Callable[[InitType], Any] | None,
106106
request_serializer: Callable[[RequestType], Any],
107107
response_deserializer: Callable[[Any], ResponseType],
108108
error_deserializer: Callable[[Any], ErrorType],
@@ -129,7 +129,7 @@ async def send_subscription(
129129
request_serializer: Callable[[RequestType], Any],
130130
response_deserializer: Callable[[Any], ResponseType],
131131
error_deserializer: Callable[[Any], ErrorType],
132-
) -> AsyncGenerator[Union[ResponseType, RiverError], None]:
132+
) -> AsyncGenerator[ResponseType | RiverError, None]:
133133
with _trace_procedure(
134134
"subscription", service_name, procedure_name
135135
) as span_handle:
@@ -151,13 +151,13 @@ async def send_stream(
151151
self,
152152
service_name: str,
153153
procedure_name: str,
154-
init: Optional[InitType],
154+
init: InitType | None,
155155
request: AsyncIterable[RequestType],
156-
init_serializer: Optional[Callable[[InitType], Any]],
156+
init_serializer: Callable[[InitType], Any] | None,
157157
request_serializer: Callable[[RequestType], Any],
158158
response_deserializer: Callable[[Any], ResponseType],
159159
error_deserializer: Callable[[Any], ErrorType],
160-
) -> AsyncGenerator[Union[ResponseType, RiverError], None]:
160+
) -> AsyncGenerator[ResponseType | RiverError, None]:
161161
with _trace_procedure("stream", service_name, procedure_name) as span_handle:
162162
session = await self._transport.get_or_create_session()
163163
async for msg in session.send_stream(
@@ -185,8 +185,8 @@ class _SpanHandle:
185185

186186
def set_status(
187187
self,
188-
status: Union[Status, StatusCode],
189-
description: Optional[str] = None,
188+
status: Status | StatusCode,
189+
description: str | None = None,
190190
) -> None:
191191
if self.did_set_status:
192192
return

src/replit_river/client_session.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import logging
33
from collections.abc import AsyncIterable
44
from datetime import timedelta
5-
from typing import Any, AsyncGenerator, Callable, Optional, Union
5+
from typing import Any, AsyncGenerator, Callable
66

77
import nanoid # type: ignore
88
from aiochannel import Channel
@@ -102,9 +102,9 @@ async def send_upload(
102102
self,
103103
service_name: str,
104104
procedure_name: str,
105-
init: Optional[InitType],
105+
init: InitType | None,
106106
request: AsyncIterable[RequestType],
107-
init_serializer: Optional[Callable[[InitType], Any]],
107+
init_serializer: Callable[[InitType], Any] | None,
108108
request_serializer: Callable[[RequestType], Any],
109109
response_deserializer: Callable[[Any], ResponseType],
110110
error_deserializer: Callable[[Any], ErrorType],
@@ -194,7 +194,7 @@ async def send_subscription(
194194
response_deserializer: Callable[[Any], ResponseType],
195195
error_deserializer: Callable[[Any], ErrorType],
196196
span: Span,
197-
) -> AsyncGenerator[Union[ResponseType, ErrorType], None]:
197+
) -> AsyncGenerator[ResponseType | ErrorType, None]:
198198
"""Sends a subscription request to the server.
199199
200200
Expects the input and output be messages that will be msgpacked.
@@ -241,14 +241,14 @@ async def send_stream(
241241
self,
242242
service_name: str,
243243
procedure_name: str,
244-
init: Optional[InitType],
244+
init: InitType | None,
245245
request: AsyncIterable[RequestType],
246-
init_serializer: Optional[Callable[[InitType], Any]],
246+
init_serializer: Callable[[InitType], Any] | None,
247247
request_serializer: Callable[[RequestType], Any],
248248
response_deserializer: Callable[[Any], ResponseType],
249249
error_deserializer: Callable[[Any], ErrorType],
250250
span: Span,
251-
) -> AsyncGenerator[Union[ResponseType, ErrorType], None]:
251+
) -> AsyncGenerator[ResponseType | ErrorType, None]:
252252
"""Sends a subscription request to the server.
253253
254254
Expects the input and output be messages that will be msgpacked.

src/replit_river/client_transport.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import asyncio
22
import logging
33
from collections.abc import Awaitable, Callable
4-
from typing import Generic, Optional, Tuple
4+
from typing import Generic
55

66
import websockets
77
from pydantic import ValidationError
@@ -98,7 +98,7 @@ async def get_or_create_session(self) -> ClientSession:
9898
await existing_session.close()
9999
return await self._create_new_session()
100100

101-
async def _get_existing_session(self) -> Optional[ClientSession]:
101+
async def _get_existing_session(self) -> ClientSession | None:
102102
async with self._session_lock:
103103
if not self._sessions:
104104
return None
@@ -117,8 +117,8 @@ async def _get_existing_session(self) -> Optional[ClientSession]:
117117

118118
async def _establish_new_connection(
119119
self,
120-
old_session: Optional[ClientSession] = None,
121-
) -> Tuple[
120+
old_session: ClientSession | None = None,
121+
) -> tuple[
122122
WebSocketCommonProtocol,
123123
ControlMessageHandshakeRequest[HandshakeMetadataType],
124124
ControlMessageHandshakeResponse,
@@ -129,7 +129,7 @@ async def _establish_new_connection(
129129
client_id = self._client_id
130130
logger.info("Attempting to establish new ws connection")
131131

132-
last_error: Optional[Exception] = None
132+
last_error: Exception | None = None
133133
for i in range(max_retry):
134134
if i > 0:
135135
logger.info(f"Retrying build handshake number {i} times")
@@ -221,7 +221,7 @@ async def _send_handshake_request(
221221
transport_id: str,
222222
to_id: str,
223223
session_id: str,
224-
handshake_metadata: Optional[HandshakeMetadataType],
224+
handshake_metadata: HandshakeMetadataType | None,
225225
websocket: WebSocketCommonProtocol,
226226
expected_session_state: ExpectedSessionState,
227227
) -> ControlMessageHandshakeRequest[HandshakeMetadataType]:
@@ -291,8 +291,8 @@ async def _establish_handshake(
291291
session_id: str,
292292
handshake_metadata: HandshakeMetadataType,
293293
websocket: WebSocketCommonProtocol,
294-
old_session: Optional[ClientSession],
295-
) -> Tuple[
294+
old_session: ClientSession | None,
295+
) -> tuple[
296296
ControlMessageHandshakeRequest[HandshakeMetadataType],
297297
ControlMessageHandshakeResponse,
298298
]:

0 commit comments

Comments
 (0)