@@ -51,10 +51,7 @@ dev = [
5151 " hypothesis~=6.0" ,
5252 " coverage[toml]~=7.13" ,
5353 " ruff>=0.15.10,<1.0" ,
54- " mypy>=1.11,<3.0" ,
55- " types-colorama~=0.4" ,
56- " types-PyYAML~=6.0" ,
57- " types-aiofiles~=25.1" ,
54+ " pyright>=1.1.408" ,
5855 " pre-commit~=4.5" ,
5956 " mutmut~=3.5" ,
6057 " radon~=6.0" ,
@@ -190,39 +187,21 @@ quote-style = "double"
190187indent-style = " space"
191188line-ending = " lf"
192189
193- [tool .mypy ]
194- strict = true
195- warn_unreachable = true
196- warn_redundant_casts = true
197- warn_unused_ignores = false
198- disallow_any_generics = true
199- disallow_untyped_defs = true
200- disallow_incomplete_defs = true
201- check_untyped_defs = true
202- no_implicit_optional = true
203- files = [" src/" ]
204- exclude = [" tests/" , " ^docs/" , " ^benchmarks/" ]
205-
206- [[tool .mypy .overrides ]]
207- module = [
208- " litellm" , " litellm.*" ,
209- " sklearn" , " sklearn.*" ,
210- " markdown_it" , " markdown_it.*" ,
211- " httpx" , " httpx.*" ,
212- " dotenv" , " dotenv.*" ,
213- " yaml" , " yaml.*" ,
214- " colorama" , " colorama.*" ,
215- " pydantic" , " pydantic.*" ,
216- " bcrypt" , " bcrypt.*" ,
217- " jwt" , " jwt.*" ,
218- " psycopg2" , " psycopg2.*" ,
219- ]
220- ignore_missing_imports = true
221- disable_error_code = [" attr-defined" ]
222-
223- [[tool .mypy .overrides ]]
224- module = " certamen.infrastructure.config.models"
225- disable_error_code = [" misc" ]
190+ [tool .pyright ]
191+ include = [" src" ]
192+ exclude = [" **/__pycache__" , " tests" , " docs" , " benchmarks" , " build" , " dist" ]
193+ pythonVersion = " 3.11"
194+ typeCheckingMode = " strict"
195+ # Untyped third-party libs (litellm, sklearn, bcrypt, jwt, psycopg2) ship no
196+ # stubs. The prior mypy config treated them as Any via ignore_missing_imports;
197+ # silencing the Unknown-type reports keeps that stance so strict checking still
198+ # applies fully to our own annotated code without drowning in external noise.
199+ reportMissingTypeStubs = " none"
200+ reportMissingModuleSource = " none"
201+ reportUnknownMemberType = " none"
202+ reportUnknownVariableType = " none"
203+ reportUnknownArgumentType = " none"
204+ reportUnknownLambdaType = " none"
226205
227206# Mutation testing configuration
228207# Evidence: Mutation score correlates with real fault detection
0 commit comments