@@ -166,6 +166,58 @@ reportOverlappingOverload = false
166
166
reportImportCycles = false
167
167
reportPrivateUsage = false
168
168
169
+ [tool .mypy ]
170
+ pretty = true
171
+ show_error_codes = true
172
+
173
+ # Exclude _files.py because mypy isn't smart enough to apply
174
+ # the correct type narrowing and as this is an internal module
175
+ # it's fine to just use Pyright.
176
+ #
177
+ # We also exclude our `tests` as mypy doesn't always infer
178
+ # types correctly and Pyright will still catch any type errors.
179
+ exclude = [' src/browserbase/_files.py' , ' _dev/.*.py' , ' tests/.*' ]
180
+
181
+ strict_equality = true
182
+ implicit_reexport = true
183
+ check_untyped_defs = true
184
+ no_implicit_optional = true
185
+
186
+ warn_return_any = true
187
+ warn_unreachable = true
188
+ warn_unused_configs = true
189
+
190
+ # Turn these options off as it could cause conflicts
191
+ # with the Pyright options.
192
+ warn_unused_ignores = false
193
+ warn_redundant_casts = false
194
+
195
+ disallow_any_generics = true
196
+ disallow_untyped_defs = true
197
+ disallow_untyped_calls = true
198
+ disallow_subclassing_any = true
199
+ disallow_incomplete_defs = true
200
+ disallow_untyped_decorators = true
201
+ cache_fine_grained = true
202
+
203
+ # By default, mypy reports an error if you assign a value to the result
204
+ # of a function call that doesn't return anything. We do this in our test
205
+ # cases:
206
+ # ```
207
+ # result = ...
208
+ # assert result is None
209
+ # ```
210
+ # Changing this codegen to make mypy happy would increase complexity
211
+ # and would not be worth it.
212
+ disable_error_code = " func-returns-value,overload-cannot-match"
213
+
214
+ # https://github.com/python/mypy/issues/12162
215
+ [[tool .mypy .overrides ]]
216
+ module = " black.files.*"
217
+ ignore_errors = true
218
+ ignore_missing_imports = true
219
+
220
+
169
221
[tool .ruff ]
170
222
line-length = 120
171
223
output-format = " grouped"
0 commit comments