final: prev: { # Without this, we may inadvertedly end up with old versions (if we happen to # overlay a dependency for other packages) python3Packages = final.python3.pkgs; python3 = prev.python3.override { packageOverrides = pyFinal: pyPrev: { bench = pyFinal.callPackage ./python/bench.nix {}; erpnext = pyFinal.callPackage ./python/erpnext.nix {}; frappe = pyFinal.callPackage ./python/frappe.nix {}; # bench dependencies honcho = pyFinal.callPackage ./python/honcho.nix {}; # erpnext dependencies gocardless-pro = pyFinal.callPackage ./python/gocardless-pro.nix {}; redisearch = pyFinal.callPackage ./python/redisearch.nix {}; taxjar = pyFinal.callPackage ./python/taxjar.nix {}; # frappe dependencies email-reply-parser = pyFinal.callPackage ./python/email-reply-parser.nix {}; maxminddb-geolite2 = pyFinal.callPackage ./python/maxminddb-geolite2.nix {}; psycopg2-binary = pyFinal.callPackage ./python/psycopg2-binary.nix {}; traceback-with-variables = pyFinal.callPackage ./python/traceback-with-variables.nix {}; # indirect dependencies # taxjar jsonobject = pyFinal.callPackage ./python/jsonobject.nix {}; # redisearch rejson = pyFinal.callPackage ./python/rejson.nix {}; plaid-python = pyPrev.plaid-python.overridePythonAttrs (oldAttrs: (rec { version = "7.2.1"; src = pyPrev.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-ryrTJug3fIyG2XGE9gwL5BzXH1B1IB39szMcyF1N5RM="; }; propagatedBuildInputs = [ pyPrev.requests ]; checkInputs = [ pyPrev.pytest ]; # Integration tests require API keys and internet access checkPhase = "pyPrev.test -rxs ./tests/unit"; })); }; }; }