@@ -33,9 +33,9 @@ dependencies = [
3333dev = [
3434 " pytest>=8.0.0" ,
3535 " pytest-qt>=4.4.0" ,
36+ " pytest-timeout>=2.3.0" ,
3637 " pytest-cov>=4.1.0" ,
3738 " ruff>=0.1.0" ,
38- # "mypy>=1.8.0",
3939 " pre-commit>=3.6" ,
4040 " ty>=0.0.30" ,
4141 " pandas-stubs>=3.0.0.260204" ,
@@ -76,10 +76,26 @@ python_classes = ["Test*"]
7676python_functions = [" test_*" ]
7777addopts = [
7878 " --verbose" ,
79+ " --timeout=3" ,
7980 " --cov=dbs_annotator" ,
8081 " --cov-report=html" ,
8182 " --cov-report=term-missing" ,
8283]
84+ filterwarnings = [
85+ " ignore::DeprecationWarning" ,
86+ ]
87+ markers = [
88+ " gui: Qt GUI / widget tests" ,
89+ " integration: cross-module behavior" ,
90+ " slow: longer GUI or lazy-loaded wizard flows; skip locally with pytest -m \" not slow\" " ,
91+ ]
92+
93+ [tool .coverage .run ]
94+ source = [" src" ]
95+ omit = [" */tests/*" ]
96+
97+ [tool .coverage .report ]
98+ omit = [" */tests/*" ]
8399
84100[tool .ruff ]
85101line-length = 88
@@ -107,21 +123,3 @@ select = [
107123ignore = [
108124 " E501" , # line too long (handled by formatter/line-length)
109125]
110-
111- [tool .mypy ]
112- python_version = " 3.11"
113- warn_return_any = true
114- warn_unused_configs = true
115- disallow_untyped_defs = false
116- disallow_incomplete_defs = false
117- check_untyped_defs = true
118- no_implicit_optional = true
119- warn_redundant_casts = true
120- warn_unused_ignores = true
121- warn_no_return = true
122- strict_optional = true
123-
124- [[tool .mypy .overrides ]]
125- module = " PySide6.*"
126- ignore_missing_imports = true
127-
0 commit comments