[project] name = "settled-reach-tooling" version = "0.1.0" requires-python = ">=3.11" dependencies = [ "PyYAML", "jsonschema", "numpy", # scipy 1.17.1 — checked clean against NVD + OSV, no CVEs on record (2026-04-06) "scipy==1.17.1", # Pillow 12.2.0 — checked clean against NVD + OSV (2026-04-06) # CVE-2026-25990 fixed in 12.1.1, CVE-2025-48379 fixed in 11.3.0 "Pillow==12.2.0", ] [project.optional-dependencies] dev = [ # ruff 0.15.9 — checked clean against NVD + OSV, no CVEs on record (2026-04-05) "ruff==0.15.9", ] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] # Widened from {E9, F401, F811, F821} to the full ruff-default tiers + W (T-1066). # E4: import placement/style # E7: statement-level pitfalls (== None, bare except, lambda assignment, ...) # E9: runtime syntax/encoding errors # F: all pyflakes (unused imports/names, undefined names, f-string misuse, ...) # W: whitespace + invalid escape sequences (zero violations at adoption) select = ["E4", "E7", "E9", "F", "W"] # Rules excluded at adoption because the existing violation count was not # trivially fixable (T-1066) — re-enable per-rule as the debt is paid down: # E402 (43×): module-import-not-at-top — script-style sys.path.insert before import # E702 (41×): semicolon-paired assignments, deliberate style in planet-gen noise math # F841 (21×): unused locals, mostly in numeric/diagnostic code — needs manual review ignore = ["E402", "E702", "F841"]