@@ -166,6 +166,58 @@ reportOverlappingOverload = false
166166reportImportCycles  = false 
167167reportPrivateUsage  = false 
168168
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+ 
169221[tool .ruff ]
170222line-length  = 120 
171223output-format  = " grouped" 
0 commit comments