{ pkgs }: pkgs.python3.override { packageOverrides = self: super: { bench = self.callPackage ./python/bench.nix {}; erpnext = self.callPackage ./python/erpnext.nix {}; frappe = self.callPackage ./python/frappe.nix {}; email-reply-parser = self.callPackage ./python/email-reply-parser.nix {}; git-url-parse = self.callPackage ./python/git-url-parse.nix {}; gocardless-pro = self.callPackage ./python/gocardless-pro.nix {}; honcho = self.callPackage ./python/honcho.nix {}; jsonobject = self.callPackage ./python/jsonobject.nix {}; maxminddb-geolite2 = self.callPackage ./python/maxminddb-geolite2.nix {}; posthog = self.callPackage ./python/posthog.nix {}; psycopg2-binary = self.callPackage ./python/psycopg2-binary.nix {}; pypdf2 = self.callPackage ./python/pypdf2.nix {}; pypika = self.callPackage ./python/pypika.nix {}; python-youtube = self.callPackage ./python/python-youtube.nix {}; rauth = self.callPackage ./python/rauth.nix {}; redisearch = self.callPackage ./python/redisearch.nix {}; rejson = self.callPackage ./python/rejson.nix {}; taxjar = self.callPackage ./python/taxjar.nix {}; traceback-with-variables = self.callPackage ./python/traceback-with-variables.nix {}; barcodenumber = super.barcodenumber.overridePythonAttrs (oldAttrs: (rec { version = "0.5.0"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-VZfHLwSF9aDoy5L1x4O2mu8/f2ijYKgyjCrQ1KKY5Ho="; }; })); bleach = super.bleach.overridePythonAttrs (oldAttrs: (rec { version = "3.3.1"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-MGSDpal5VHQWCtV/zj3dG1BVHpge7Y4VpYLTTO8oqvo="; }; })); phonenumbers = super.phonenumbers.overridePythonAttrs (oldAttrs: (rec { version = "8.12.40"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-APKVWkVrRY+barDSQykEnD5zWMRN/Bl5/kkIztQPHrg="; }; })); plaid-python = super.plaid-python.overridePythonAttrs (oldAttrs: (rec { version = "7.2.1"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-ryrTJug3fIyG2XGE9gwL5BzXH1B1IB39szMcyF1N5RM="; }; propagatedBuildInputs = [ super.requests ]; checkInputs = [ super.pytest ]; # Integration tests require API keys and internet access checkPhase = "py.test -rxs ./tests/unit"; })); pycountry = super.pycountry.overridePythonAttrs (oldAttrs: (rec { version = "20.7.3"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-gQhKU9NFQ0TAKS3uvCD80KFIjBNtSQAxLL1GXPVSy0I="; }; })); pymysql = super.pymysql.overridePythonAttrs (oldAttrs: (rec { version = "1.0.3"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-PdqUPvNpQGinXWnQcXVdvsrO4a35ofxbIGgw0rZ9Jeg="; }; format = "pyproject"; buildInputs = [super.setuptools]; })); pypng = super.pypng.overridePythonAttrs (oldAttrs: (rec { version = "0.20220715.0"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-c5xDO6lvB4MV3lTA25da7lN8vD4dCuTtmqsMoeQn4sE="; }; })); pytz = super.pytz.overridePythonAttrs (oldAttrs: (rec { version = "2022.1"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-HnYOL+aoFjvAs9mhnE+ENCr6Cir/6/qoSwG5eKAuyqc="; }; })); redis = super.redis.overridePythonAttrs (oldAttrs: (rec { version = "3.5.3"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-Dn4M/KhmDeqLfVzYxPbF4p4R8xFYwLCukaOX8A5aBaI="; }; pythonImportsCheck = []; # tests require a running redis doCheck = false; })); tweepy = super.tweepy.overridePythonAttrs (oldAttrs: (rec { version = "3.10.0"; src = super.fetchPypi { inherit version; inherit (oldAttrs) pname; sha256 = "sha256-duaVS4BspHDdqHf1fbh5L/8GoL66DtQ+/DgFdx458Go="; }; doCheck = false; pythonImportsCheck = []; })); unidecode = super.unidecode.overridePythonAttrs (oldAttrs: (rec { version = "1.2.0"; src = super.fetchPypi { inherit version; pname = "Unidecode"; sha256 = "sha256-jXOpfTh6lWkiNE9rdCQ8LGdxWUZZd4dEstvarY9rcn0="; }; })); }; }