@@ -63,12 +63,10 @@ metadata.allow-direct-references = true
6363version.source = " vcs"
6464
6565[tool .ruff ]
66- target-version = " py311" # Replace by [project] requires-python = ">=3.11" above
6766fix = true
6867unsafe-fixes = false
6968[tool .ruff .lint ]
7069select = [ " ALL" ]
71- exclude = []
7270extend-ignore = [
7371 " COM812" , # Avoid conflicts with ruff-format
7472 # Ignored during transition phase
@@ -82,6 +80,9 @@ extend-ignore = [
8280 " FIX002" , # Line contains TODO -- Use stuff from TD area.
8381 " ICN001" , # numpy should be np, but different convention here.
8482 " ISC001" , # Avoid conflicts with ruff-format
83+ " TC001" , # Move application import into a type-checking block
84+ " TC002" , # Move third-party import into a type-checking block
85+ " TC003" , # Move standard library import into a type-checking block
8586 " N999" , # Allow non-ASCII characters in file names.
8687 " PLC2401" , # Allow non-ASCII characters in variable names.
8788 " PLC2403" , # Allow non-ASCII function names for imports.
@@ -149,7 +150,8 @@ expand_tables = [
149150 " tool.pixi.feature.tests.target.osx-64.tasks" ,
150151 " tool.pixi.feature.tests.target.osx-arm64.tasks" ,
151152 " tool.pixi.feature.tests.target.win-64.tasks" ,
152- " tool.pixi.feature.tests.tasks" ,
153+ " tool.pixi.feature.type-checking.pypi-dependencies" ,
154+ " tool.pixi.feature.type-checking.tasks" ,
153155 " tool.pixi.pypi-dependencies" ,
154156 " tool.pixi.tasks" ,
155157 " tool.pixi.workspace" ,
@@ -178,7 +180,9 @@ ini_options.norecursedirs = [ "docs" ]
178180ini_options.testpaths = [ " src/gettsim/tests_germany" ]
179181
180182[tool .ty ]
181- overrides = [ { include = [ " docs/**" ], rules.unresolved-attribute = " ignore" } ]
183+ overrides = [
184+ { include = [ " docs/**" ], rules.unresolved-attribute = " ignore" },
185+ ]
182186rules.invalid-return-type = " ignore"
183187rules.ambiguous-protocol-member = " error"
184188rules.deprecated = " error"
@@ -213,12 +217,13 @@ snakeviz = ">=2.2.2"
213217tabulate = " *"
214218toml = " *"
215219[tool .pixi .environments ]
216- py311 = [ " tests" , " py311" ]
217- py312 = [ " tests" , " py312" ]
218- py313 = [ " tests" , " py313" ]
219- py314 = [ " tests" , " py314" ]
220- py314-jax = [ " py314" , " tests" , " jax" ]
220+ py311 = [ " py311" , " tests" ]
221+ py312 = [ " py312" , " tests" ]
222+ py313 = [ " py313" , " tests" ]
223+ py314 = [ " py314" , " tests" ]
221224py314-cuda = [ " py314" , " tests" , " cuda" ]
225+ py314-jax = [ " py314" , " tests" , " jax" ]
226+ type-checking = [ " py314" , " type-checking" ]
222227py314-metal = [ " py314" , " tests" , " metal" ]
223228docs = [ " docs" , " py313" ]
224229[tool .pixi .feature .cuda ]
@@ -227,7 +232,7 @@ system-requirements = { cuda = "13" }
227232[tool .pixi .feature .cuda .target .linux-64 .pypi-dependencies ]
228233jax = { version = " >=0.8" , extras = [ " cuda13" ] }
229234[tool .pixi .feature .cuda .tasks ]
230- tests-jax = " pytest --backend=jax"
235+ tests-cuda = " pytest --backend=jax"
231236[tool .pixi .feature .docs .dependencies ]
232237myst-parser = " *"
233238nbsphinx = " *"
@@ -238,7 +243,6 @@ sphinx-copybutton = "*"
238243[tool .pixi .feature .docs .pypi-dependencies ]
239244gettsim = { path = " ." , editable = true }
240245gettsim-personas = { git = " https://github.com/ttsim-dev/gettsim-personas.git" , branch = " boilerplate" }
241- ttsim-backend = { git = " https://github.com/ttsim-dev/ttsim.git" , branch = " refactor-piecewise-polynomial" }
242246[tool .pixi .feature .docs .target .linux-64 .tasks ]
243247docs = " sphinx-build -T -b html docs docs/_build/html"
244248[tool .pixi .feature .docs .target .osx-64 .tasks ]
@@ -276,9 +280,6 @@ pytest-cov = "*"
276280pytest-profiling = " *"
277281pytest-xdist = " *"
278282gettsim-personas = { git = " https://github.com/ttsim-dev/gettsim-personas.git" , branch = " main" }
279- ty = " *"
280- types-PyYAML = " *"
281- types-pytz = " *"
282283[tool .pixi .feature .tests .target .linux-64 .tasks ]
283284tests = " pytest"
284285[tool .pixi .feature .tests .target .osx-64 .tasks ]
@@ -288,13 +289,19 @@ tests = "dot -c && pytest" # dot -c needed for pygraphviz on macOS
288289[tool .pixi .feature .tests .target .win-64 .tasks ]
289290tests = " pytest"
290291[tool .pixi .feature .tests .tasks ]
292+ [tool .pixi .feature .type-checking .pypi-dependencies ]
293+ ty = " *"
294+ types-PyYAML = " *"
295+ types-pytz = " *"
296+ [tool .pixi .feature .type-checking .tasks ]
291297ty = " ty check"
292298[tool .pixi .pypi-dependencies ]
293299gettsim = { path = " ." , editable = true }
294- ttsim-backend = { git = " https://github.com/ttsim-dev/ttsim.git" , branch = " refactor-piecewise-polynomial" }
295300jaxtyping = " >=0.3.2"
296301kaleido = " >=1.0.0"
297302pdbp = " >=1.7.1"
303+ dags = " >=0.5"
304+ ttsim-backend = { git = " https://github.com/ttsim-dev/ttsim.git" , branch = " refactor-piecewise-polynomial" }
298305[tool .pixi .workspace ]
299306channels = [ " conda-forge" ]
300307platforms = [ " linux-64" , " osx-64" , " osx-arm64" , " win-64" ]
0 commit comments