@@ -61,38 +61,18 @@ unfixable = []
6161
6262[tool .pyright ]
6363include = [" scenedetect" , " tests" ]
64- # Vendored third-party code: don't lint upstream source (mirrors the ruff
65- # per-file-ignores convention).
66- exclude = [" scenedetect/_thirdparty" ]
67- # Run pyright from inside an activated venv (or pass `--pythonpath` /
68- # configure your editor's interpreter) so cv2 / av / numpy / moviepy
69- # resolve. Without this, pyright uses its bundled Python and the report
70- # fills with cascading "import could not be resolved" noise.
71- # Per-developer venv paths are deliberately NOT pinned here.
72- #
73- # Modes: "off" | "basic" | "standard" | "strict".
74- # We're at "basic" for 0.7. Bumping requires the cleanup in TODO(0.8) below.
75- typeCheckingMode = " basic"
76-
77- # Third-party noise: cv2, av, moviepy ship without (or with partial) type
78- # stubs; these reports are unactionable in this codebase.
79- reportMissingTypeStubs = " none"
80- reportUnknownMemberType = " none"
81- reportUnknownArgumentType = " none"
82- reportUnknownVariableType = " none"
83- reportUnknownParameterType = " none"
84-
85- # Click + pytest decorators are conventionally untyped.
86- reportUntypedFunctionDecorator = " none"
64+ exclude = [
65+ # Pyright built-in defaults
66+ " **/node_modules" ,
67+ " **/__pycache__" ,
68+ " **/.*" ,
69+ " .venv" ,
70+ # Vendored third-party code
71+ " scenedetect/_thirdparty" ,
72+ ]
8773
88- # TODO(0.8): Audit the rules below. They were added globally with a
89- # third-party justification, but they affect the whole codebase. After the
90- # remaining first-party type-debt is cleared (FrameTimecode/TimecodeLike in
91- # common.py, _cli/config.py CropValue overloads, Click CLI typing in
92- # _cli/__init__.py), re-enable each in isolation and decide keep/drop:
93- # reportMissingParameterType — first-party coverage looks complete
94- # reportMissingTypeArgument — modern Python defaults absorb most
95- # reportPrivateUsage — no cross-module _private access seen
96- reportMissingParameterType = " none"
97- reportMissingTypeArgument = " none"
98- reportPrivateUsage = " none"
74+ # Modes: "off" | "basic" | "standard" | "strict". The 0.7 codebase is clean
75+ # at "basic". When tightening to "standard" or "strict" in the future, the
76+ # cv2 / av / numpy / moviepy noise rules (reportUnknown*, reportMissingTypeStubs)
77+ # will likely need to be re-added with "none" or scoped per-file.
78+ typeCheckingMode = " basic"
0 commit comments