# Fixups for frappix's python overlay on current nixos-unstable. Everything # here belongs upstream in kurogeek/frappix; drop entries as they land. # Must be applied after frappixPythonOverlay. _final: prev: let inherit (prev) lib; in { pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ (_pyFinal: pyPrev: { # frappe >= v15.120 needs sqlparse 0.6 (db_query.py touches # sqlparse.engine.grouping.MAX_GROUPING_TOKENS), but every sql_metadata # 2.x release pins sqlparse<0.6; the sqlglot-based 3.x needs sqlglot >= 30, # which nixpkgs does not ship yet. Relaxing the pin is safe for frappe: its # two call sites (desk/reportview.py, core/doctype/recorder/db_optimizer.py) # only parse SELECT statements, and the only sql_metadata test regressions # on sqlparse 0.6 are `CREATE TABLE IF NOT EXISTS` name extraction (2/150). sql_metadata = if lib.versionAtLeast pyPrev.sql_metadata.version "3" then lib.warn "frappix ships sql_metadata ${pyPrev.sql_metadata.version} (no sqlparse dependency): drop the sql_metadata entry from overlays/frappix-fixups.nix" pyPrev.sql_metadata else pyPrev.sql_metadata.overridePythonAttrs (old: { pythonRelaxDeps = (old.pythonRelaxDeps or [ ]) ++ [ "sqlparse" ]; }); # rq 1.16.2 (frappix's rq_1 pin): test_parse_connection compares redis # connection kwargs against a literal; redis-py 8.1 (current nixpkgs) adds # `himport_registry`, so the assertion fails. Test-only. rq_1 = pyPrev.rq_1.overridePythonAttrs (old: { disabledTests = old.disabledTests ++ [ "test_parse_connection" ]; }); }) ]; }