@@ -71,6 +71,7 @@ classifiers = [
7171 " Natural Language :: English" ,
7272]
7373
74+ # WARNING: The upper bound of requires-python is *not* respected by uvx
7475requires-python = " >=3.11, <3.15"
7576
7677dependencies = [
@@ -96,7 +97,7 @@ dependencies = [
9697 " duckdb>=1.4.2,<=2" ,
9798 " google-cloud-storage>=3.6.0,<4" ,
9899 " crc32c>=2.8,<3" , # TODO(Helmut): Remove and back to google_crc32c when that supports Python 3.14
99- " highdicom>=0.26.1,<1" ,
100+ " highdicom>=0.26.1,<1; python_version < '3.14' " , # transitive dependency pyjpegls not yet supporting Python 3.14
100101 " html-sanitizer>=2.6.0,<3" ,
101102 " httpx>=0.28.1,<1" ,
102103 " idc-index-data==23.0.1" ,
@@ -124,15 +125,32 @@ dependencies = [
124125 " truststore>=0.10.4,<1" ,
125126 " urllib3>=2.6.1,<3" ,
126127 " wsidicom>=0.28.1,<1" ,
128+ # Transitive overrides
129+ # WARNING: one cannot negate or downgrade a dependency required here. use override-dependencies for that.
130+ " rfc3987; sys_platform == 'never'" , # GPLv3
131+ " h11>=0.16.0" , # CVE-2025-43859
132+ " tornado>=6.5.0" , # CVE-2025-47287
133+ " urllib3>=2.5.0" , # CVE-2025-50181, CVE-2025-50182,
134+ " pillow>=11.3.0" , # CVE-2025-48379,
135+ " aiohttp>=3.12.14" , # CVE-2025-53643
136+ " starlette>=0.47.2" , # CVE-2025-54121
137+ " starlette>=0.49.1" , # GHSA-7f5h-v6xp-fcq8
138+ " lxml>=6.0.2" , # For python 3.14 pre-built wheels
127139]
128140
129141[project .optional-dependencies ]
130142pyinstaller = [" pyinstaller>=6.14.0,<7" ]
131- jupyter = [" jupyter>=1.1.1,<2" ]
143+ jupyter = [
144+ " jupyter>=1.1.1,<2" ,
145+ # Transitive overrides
146+ # WARNING: one cannot negate or downgrade a dependency required here. use override-dependencies for that.
147+ " jupyter-core>=5.8.1" , # CVE-2025-30167
148+ " jupyterlab>=4.4.9" , # CVE-2025-59842
149+ ]
132150marimo = [
133151 " cloudpathlib>=0.23.0,<1" ,
134152 " ipython>=9.8.0,<10" ,
135- " marimo>=0.18.3 ,<1" ,
153+ " marimo>=0.18.4 ,<1" ,
136154 " matplotlib>=3.10.7,<4" ,
137155 " shapely>=2.1.0,<3" ,
138156]
@@ -185,27 +203,18 @@ dev = [
185203 " types-pyyaml>=6.0.12.20250915,<7" ,
186204 " types-requests>=2.32.4.20250913,<3" ,
187205 " watchdog>=6.0.0,<7" ,
206+ # Transitive overrides
207+ # WARNING: one cannot negate or downgrade a dependency required here. use override-dependencies for that.
208+ " pip>=5.3" , # CVE-2025-8869
209+ " uv>=0.9.7" , # CVE-2025-54368, GHSA-w476-p2h3-79g9, GHSA-pqhf-p39g-3x64
210+ " fonttools>=4.60.2" , # CVE-2025-66034 (GHSA-768j-98cg-p3fv), dep of matplotlib
188211]
189212
190213[tool .uv ]
191214required-version = " >=0.9.7" # CVE-2025-54368, GHSA-w476-p2h3-79g9, GHSA-pqhf-p39g-3x64
215+ # WARNING: override-dependencies is *not* respected by uvx
192216override-dependencies = [ # https://github.com/astral-sh/uv/issues/4422
193- " rfc3987; sys_platform == 'never'" , # GPLv3
194- " h11>=0.16.0" , # CVE-2025-43859
195- " tornado>=6.5.0" , # CVE-2025-47287
196- " jupyter-core>=5.8.1" , # CVE-2025-30167
197- " urllib3>=2.5.0" , # CVE-2025-50181, CVE-2025-50182,
198- " pillow>=11.3.0" , # CVE-2025-48379,
199- " aiohttp>=3.12.14" , # CVE-2025-53643
200- " starlette>=0.47.2" , # CVE-2025-54121
201- " uv>=0.9.7" , # CVE-2025-54368, GHSA-w476-p2h3-79g9, GHSA-pqhf-p39g-3x64
202- " jupyterlab>=4.4.9" , # CVE-2025-59842
203- " pip>=5.3" , # CVE-2025-8869
204- " starlette>=0.49.1" , # GHSA-7f5h-v6xp-fcq8
205- " fonttools>=4.60.2" , # CVE-2025-66034 (GHSA-768j-98cg-p3fv), dep of matplotlib
206- " pyjpegls; python_version < '3.14'" , # No Python 3.14 support yet
207- " pytest>=9.0.1" , # pytest-md-report depends on pytest<9 unnecessarily
208- " lxml>=6.0.2" , # For python 3.14 pre-built wheels
217+ " pytest>=9.0.1" , # pytest-md-report depends on pytest<9 unnecessarily
209218]
210219
211220[tool .uv .sources ]
0 commit comments