@@ -7,7 +7,9 @@ authors = [
77 { name = " idatsy" , email = " stefan@ranvier.co.uk" }
88]
99requires-python = " >=3.13"
10- dependencies = []
10+ dependencies = [
11+ " loguru" ,
12+ ]
1113
1214[project .scripts ]
1315python-base-uv = " python_base_uv:main"
@@ -16,32 +18,52 @@ python-base-uv = "python_base_uv:main"
1618requires = [" hatchling" ]
1719build-backend = " hatchling.build"
1820
21+ [tool .uv ]
22+ default-groups = [" dev" ]
23+
24+ [tool .pytest .ini_options ]
25+ asyncio_mode = " auto"
26+ asyncio_default_fixture_loop_scope = " function"
27+
1928[dependency-groups ]
2029dev = [
21- " pyrefly>=0.25.1 " ,
22- " pyright>=1.1.403 " ,
23- " pytest>=8.4.1 " ,
24- " pytest-asyncio>=1.1.0 " ,
25- " pytest-watcher>=0.4.3 " ,
26- " ruff>=0.12.5 " ,
30+ " pyrefly" ,
31+ " pyright" ,
32+ " pytest" ,
33+ " pytest-asyncio" ,
34+ " pytest-watcher" ,
35+ " ruff" ,
2736]
2837
2938[tool .ruff ]
3039line-length = 125
3140target-version = " py313"
3241
3342[tool .ruff .lint ]
34- extend-select = [" E" ," W" ," F" ," I" ," B" ," C4" ," N" ," D" ," UP" ," S" ," ANN" ," ARG" ," ERA" ," ICN" ," PD" ," NPY" ," PT" ," RET" ," SIM" ," TCH" ]
35- ignore = [" ANN204" , " C901" ," S608" ," D401" ," E501" ," D107" ," W291" ," RET503" ," D100" ," D101" ," D102" ," D103" ," D104" ," D105" ," S104" ," PD901" ]
43+ select = [" ALL" ]
44+ ignore = [
45+ " ANN204" , # Missing return type for __init__
46+ " C901" , # Too complex
47+ " COM812" , # Missing trailing comma (conflicts with formatter)
48+ " D100" , " D101" , " D102" , " D103" , " D104" , " D105" , " D107" , # Missing docstrings
49+ " D401" , # First line imperative mood
50+ " E501" , # Line too long (handled by formatter)
51+ " ISC001" , # Single line implicit string concatenation (conflicts with formatter)
52+ " RET503" , # Missing explicit return
53+ " S104" , # Possible binding to all interfaces
54+ " S608" , # SQL injection (too many false positives)
55+ " W291" , # Trailing whitespace
56+ ]
3657fixable = [" ALL" ]
3758pydocstyle = { convention = " google" }
3859
3960[tool .ruff .lint .per-file-ignores ]
4061"**/wip*.py" = [" ALL" ]
41- "**/tests/*" = [" D" ," ANN" ," S" ," ERA" ]
42- "*_" = [" D" ," ANN" ," S" ]
43- "wip*" = [" D" ," ANN" ," S" ]
62+ "**/tests/*" = [" D" , " ANN" , " S" , " ERA" , " INP001 " ]
63+ "*_" = [" D" , " ANN" , " S" ]
64+ "wip*" = [" D" , " ANN" , " S" ]
4465"__init__.py" = [" D" ]
66+ "__main__.py" = [" T201" ] # Allow print in main entry point
4567"**/gen/*" = [" ALL" ]
4668"**/*.ipynb" = [" ALL" ]
4769
@@ -69,7 +91,6 @@ defineConstant = { DEBUG = true }
6991typeCheckingMode = " standard"
7092pythonVersion = " 3.13"
7193pythonPlatform = " All"
72- stubPath = " typings"
7394reportMissingImports = " error"
7495reportMissingTypeStubs = false
7596reportMissingModuleSource = false
@@ -83,10 +104,3 @@ reportImportCycles = "warning"
83104reportUnusedImport = " warning"
84105reportUnusedVariable = " warning"
85106reportDuplicateImport = " warning"
86-
87- [[tool .pyright .overrides ]]
88- pattern = " .venv/**"
89- reportUnknownParameterType = " none"
90- reportUnknownArgumentType = " none"
91- reportUnknownMemberType = " none"
92- reportMissingParameterType = " none"
0 commit comments