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 {}; python-youtube = pyFinal.callPackage ./python/python-youtube.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 {}; git-url-parse = pyFinal.callPackage ./python/git-url-parse.nix {}; maxminddb-geolite2 = pyFinal.callPackage ./python/maxminddb-geolite2.nix {}; posthog = pyFinal.callPackage ./python/posthog.nix {}; premailer = pyFinal.callPackage ./python/premailer.nix {}; psycopg2-binary = pyFinal.callPackage ./python/psycopg2-binary.nix {}; pypdf2 = pyFinal.callPackage ./python/pypdf2.nix {}; pypika = pyFinal.callPackage ./python/pypika.nix {}; rauth = pyFinal.callPackage ./python/rauth.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 {}; bleach = pyPrev.bleach.overridePythonAttrs (oldAttrs: (rec { version = "3.3.1"; src = pyPrev.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-MGSDpal5VHQWCtV/zj3dG1BVHpge7Y4VpYLTTO8oqvo="; }; })); 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"; })); tweepy = pyPrev.tweepy.overridePythonAttrs (oldAttrs: (rec { version = "3.10.0"; src = pyPrev.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-duaVS4BspHDdqHf1fbh5L/8GoL66DtQ+/DgFdx458Go="; }; doCheck = false; pythonImportsCheck = []; })); }; }; }