Skip to content

Commit 0b12997

Browse files
mypy: upgrade to 1.10.0
Signed-off-by: Achille Roussel <achille.roussel@gmail.com>
1 parent bfdd64b commit 0b12997

File tree

13 files changed

+38
-41
lines changed

13 files changed

+38
-41
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ fmt-check:
3030
exit $$((isort_status + black_status))
3131

3232
typecheck:
33-
$(PYTHON) -m mypy src tests
33+
$(PYTHON) -m mypy --check-untyped-defs src tests examples
3434

3535
unittest:
3636
$(PYTHON) -m pytest tests

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ lambda = ["awslambdaric"]
2626
dev = [
2727
"black >= 24.1.0",
2828
"isort >= 5.13.2",
29-
"mypy >= 1.8.0",
29+
"mypy >= 1.10.0",
3030
"pytest==8.0.0",
3131
"fastapi >= 0.109.0",
3232
"coverage >= 7.4.1",
@@ -58,7 +58,7 @@ src_paths = ["src"]
5858
omit = ["*_pb2_grpc.py", "*_pb2.py", "tests/*", "examples/*", "src/buf/*"]
5959

6060
[tool.mypy]
61-
exclude = ['^src/buf', '^tests/examples']
61+
exclude = ['^src/buf', '^tests/examples', '^src/dispatch/sdk']
6262

6363
[tool.pytest.ini_options]
6464
testpaths = ['tests']

src/dispatch/experimental/durable/function.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,13 @@ def __getstate__(self):
137137
if frame_state < FRAME_CLEARED:
138138
print(f"IP = {ip}")
139139
print(f"SP = {sp}")
140-
for i, (is_null, value) in enumerate(stack):
140+
for i, (is_null, value) in enumerate(stack if stack is not None else []):
141141
if is_null:
142142
print(f"stack[{i}] = NULL")
143143
else:
144144
print(f"stack[{i}] = {value}")
145145
print(f"BP = {bp}")
146-
for i, block in enumerate(blocks):
146+
for i, block in enumerate(blocks if blocks is not None else []):
147147
print(f"block[{i}] = {block}")
148148
print()
149149

src/dispatch/experimental/durable/registry.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ def __setstate__(self, state):
4040
f"hash mismatch for function {key}: {code_hash} vs. expected {rfn.hash}"
4141
)
4242

43-
self.fn = rfn.fn
43+
# mypy 1.10.0 seems to report a false positive here:
44+
# error: Incompatible types in assignment (expression has type "FunctionType", variable has type "MethodType") [assignment]
45+
self.fn = rfn.fn # type: ignore
4446
self.key = key
4547
self.filename = filename
4648
self.lineno = lineno

src/dispatch/function.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,9 @@ def primitive_func(input: Input) -> Output:
256256
return OneShotScheduler(func).run(input)
257257

258258
primitive_func.__qualname__ = f"{name}_primitive"
259-
primitive_func = durable(primitive_func)
259+
durable_primitive_func = durable(primitive_func)
260260

261-
wrapped_func = Function[P, T](self.endpoint, self.client, name, primitive_func)
261+
wrapped_func = Function[P, T](self.endpoint, self.client, name, durable_primitive_func)
262262
self._register(name, wrapped_func)
263263
return wrapped_func
264264

src/dispatch/http.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def do_POST(self):
117117
)
118118
max_age = timedelta(minutes=5)
119119
try:
120-
verify_request(signed_request, verification_key, max_age)
120+
verify_request(signed_request, self.verification_key, max_age)
121121
except ValueError as e:
122122
self.send_error_response_unauthenticated(str(e))
123123
return

src/dispatch/status.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def __str__(self):
8383
_OUTPUT_TYPES: Dict[Type[Any], Callable[[Any], Status]] = {}
8484

8585

86-
def status_for_error(error: Exception) -> Status:
86+
def status_for_error(error: BaseException) -> Status:
8787
"""Returns a Status that corresponds to the specified error."""
8888
# See if the error matches one of the registered types.
8989
handler = _find_handler(error, _ERROR_TYPES)

src/dispatch/test/service.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,8 @@ def __init__(
8787
self.pollers: Dict[DispatchID, Poller] = {}
8888
self.parents: Dict[DispatchID, Poller] = {}
8989

90-
self.roundtrips: Optional[OrderedDict[DispatchID, List[RoundTrip]]] = None
91-
if collect_roundtrips:
92-
self.roundtrips = OrderedDict()
90+
self.roundtrips: OrderedDict[DispatchID, List[RoundTrip]] = OrderedDict()
91+
self.collect_roundtrips = collect_roundtrips
9392

9493
self._thread: Optional[threading.Thread] = None
9594
self._stop_event = threading.Event()
@@ -142,7 +141,7 @@ def _make_dispatch_id(self) -> DispatchID:
142141
def dispatch_calls(self):
143142
"""Synchronously dispatch pending function calls to the
144143
configured endpoint."""
145-
_next_queue = []
144+
_next_queue: List[Tuple[DispatchID, function_pb.RunRequest, CallType]] = []
146145
while self.queue:
147146
dispatch_id, request, call_type = self.queue.pop(0)
148147

@@ -161,7 +160,7 @@ def dispatch_calls(self):
161160
self.queue.append((dispatch_id, request, CallType.RETRY))
162161
raise
163162

164-
if self.roundtrips is not None:
163+
if self.collect_roundtrips:
165164
try:
166165
roundtrips = self.roundtrips[dispatch_id]
167166
except KeyError:

tests/dispatch/signature/test_signature.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -146,58 +146,58 @@ def test_known_signature(self):
146146
@mock.patch.dict(os.environ, {"DISPATCH_VERIFICATION_KEY": public_key2_pem})
147147
def test_parse_verification_key_env_pem_str(self):
148148
verification_key = parse_verification_key(None)
149-
self.assertIsInstance(verification_key, Ed25519PublicKey)
150-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
149+
assert isinstance(verification_key, Ed25519PublicKey)
150+
assert verification_key.public_bytes_raw(), public_key2_bytes
151151

152152
@mock.patch.dict(os.environ, {"DISPATCH_VERIFICATION_KEY": public_key2_pem2})
153153
def test_parse_verification_key_env_pem_escaped_newline_str(self):
154154
verification_key = parse_verification_key(None)
155-
self.assertIsInstance(verification_key, Ed25519PublicKey)
156-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
155+
assert isinstance(verification_key, Ed25519PublicKey)
156+
assert verification_key.public_bytes_raw(), public_key2_bytes
157157

158158
@mock.patch.dict(
159159
os.environ, {"DISPATCH_VERIFICATION_KEY": public_key2_b64.decode()}
160160
)
161161
def test_parse_verification_key_env_b64_str(self):
162162
verification_key = parse_verification_key(None)
163-
self.assertIsInstance(verification_key, Ed25519PublicKey)
164-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
163+
assert isinstance(verification_key, Ed25519PublicKey)
164+
assert verification_key.public_bytes_raw() == public_key2_bytes
165165

166166
def test_parse_verification_key_none(self):
167167
# The verification key is optional. Both Dispatch(verification_key=...) and
168168
# DISPATCH_VERIFICATION_KEY may be omitted/None.
169169
verification_key = parse_verification_key(None)
170-
self.assertIsNone(verification_key)
170+
assert verification_key is None
171171

172172
def test_parse_verification_key_ed25519publickey(self):
173173
verification_key = parse_verification_key(public_key2)
174-
self.assertIsInstance(verification_key, Ed25519PublicKey)
175-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
174+
assert isinstance(verification_key, Ed25519PublicKey)
175+
assert verification_key.public_bytes_raw() == public_key2_bytes
176176

177177
def test_parse_verification_key_pem_str(self):
178178
verification_key = parse_verification_key(public_key2_pem)
179-
self.assertIsInstance(verification_key, Ed25519PublicKey)
180-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
179+
assert isinstance(verification_key, Ed25519PublicKey)
180+
assert verification_key.public_bytes_raw() == public_key2_bytes
181181

182182
def test_parse_verification_key_pem_escaped_newline_str(self):
183183
verification_key = parse_verification_key(public_key2_pem2)
184-
self.assertIsInstance(verification_key, Ed25519PublicKey)
185-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
184+
assert isinstance(verification_key, Ed25519PublicKey)
185+
assert verification_key.public_bytes_raw() == public_key2_bytes
186186

187187
def test_parse_verification_key_pem_bytes(self):
188188
verification_key = parse_verification_key(public_key2_pem.encode())
189-
self.assertIsInstance(verification_key, Ed25519PublicKey)
190-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
189+
assert isinstance(verification_key, Ed25519PublicKey)
190+
assert verification_key.public_bytes_raw() == public_key2_bytes
191191

192192
def test_parse_verification_key_b64_str(self):
193193
verification_key = parse_verification_key(public_key2_b64.decode())
194-
self.assertIsInstance(verification_key, Ed25519PublicKey)
195-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
194+
assert isinstance(verification_key, Ed25519PublicKey)
195+
assert verification_key.public_bytes_raw() == public_key2_bytes
196196

197197
def test_parse_verification_key_b64_bytes(self):
198198
verification_key = parse_verification_key(public_key2_b64)
199-
self.assertIsInstance(verification_key, Ed25519PublicKey)
200-
self.assertEqual(verification_key.public_bytes_raw(), public_key2_bytes)
199+
assert isinstance(verification_key, Ed25519PublicKey)
200+
assert verification_key.public_bytes_raw() == public_key2_bytes
201201

202202
def test_parse_verification_key_invalid(self):
203203
with self.assertRaisesRegex(ValueError, "invalid verification key 'foo'"):

tests/dispatch/test_error.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def test_conversion_without_traceback(self):
6565
original_exception = e
6666

6767
error = Error.from_exception(original_exception)
68-
error.traceback = ""
68+
error.traceback = b""
6969

7070
reconstructed_exception = error.to_exception()
7171
assert type(reconstructed_exception) is type(original_exception)

0 commit comments

Comments
 (0)