@@ -9,7 +9,7 @@ description = "Flask web application for browsing and exporting Cursor AI chat h
99readme = " README.md"
1010license = { file = " LICENSE" }
1111authors = [{ name = " C++ Alliance" , email = " admin@cppalliance.org" }]
12- requires-python = " >=3.11 "
12+ requires-python = " >=3.10 "
1313
1414# Runtime dependencies — bounded on both sides so CI resolves deterministically
1515# and breaking major releases are caught at install time rather than at runtime.
@@ -18,9 +18,6 @@ requires-python = ">=3.11"
1818dependencies = [
1919 " flask>=3.0,<4" ,
2020 " fpdf2>=2.7,<3" ,
21- # fpdf2 depends on Pillow; declare a floor + cap so resolvers cannot pick
22- # known-vulnerable Pillow releases while staying on Pillow 10.x.
23- " pillow>=10.0.0,<11" ,
2421]
2522
2623[project .optional-dependencies ]
@@ -63,6 +60,7 @@ include = [
6360 " launcher.py" ,
6461]
6562
63+ # sdist includes tests + ancillary files; wheel is runtime-only.
6664[tool .hatch .build .targets .sdist ]
6765include = [
6866 " api/" ,
@@ -90,4 +88,5 @@ no_strict_optional = true
9088pretty = true
9189# Exclude virtual-env and build artefact directories so that `mypy .` from the
9290# repo root matches CI behaviour (CI runs in a clean runner without a local venv).
93- exclude = [" venv/" , " \\ .venv/" , " build/" , " dist/" ]
91+ # Anchored regexes — unanchored `venv/` would match any path segment containing "venv/".
92+ exclude = [" ^venv/" , " ^\\ .venv/" , " ^build/" , " ^dist/" ]
0 commit comments