]>
Commit | Line | Data |
---|---|---|
1 | { pkgs ? import <nixpkgs> { }, lint ? false }: | |
2 | ||
3 | let | |
4 | ||
5 | # Remove after https://github.com/NixOS/nixpkgs/pull/93377 reaches stable | |
6 | backoff-fallback = { lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook | |
7 | , poetry, pytest-asyncio, }: | |
8 | buildPythonPackage rec { | |
9 | pname = "backoff"; | |
10 | version = "1.10.0"; | |
11 | src = fetchFromGitHub { | |
12 | owner = "litl"; | |
13 | repo = pname; | |
14 | rev = "v${version}"; | |
15 | sha256 = "1jj0l6pjx747d2yyvnzd3qbm4qr73sq6cc56dhvd8wqfbp5279x0"; | |
16 | }; | |
17 | format = "pyproject"; | |
18 | nativeBuildInputs = [ poetry ]; | |
19 | checkInputs = [ pytestCheckHook pytest-asyncio ]; | |
20 | }; | |
21 | ||
22 | git-cache-fallback = { buildPythonPackage, fetchgit, git, backoff, mypy, }: | |
23 | buildPythonPackage rec { | |
24 | pname = "git-cache"; | |
25 | version = "1.3.1"; | |
26 | src = fetchgit { | |
27 | url = "https://scottworley.com/git-cache.git"; | |
28 | rev = "v${version}"; | |
29 | sha256 = "0awz7f6avzw9fk9gp1kadj0nbmf1s60qic9zb6ww92zig3khg12k"; | |
30 | }; | |
31 | propagatedBuildInputs = [ backoff ]; | |
32 | checkInputs = [ git mypy ]; | |
33 | doCheck = true; | |
34 | checkPhase = "./test.sh"; | |
35 | }; | |
36 | ||
37 | in pkgs.python3Packages.callPackage ({ lib, buildPythonPackage, nix, git | |
38 | , autopep8, makeWrapper, mypy, pylint, git-cache, }: | |
39 | buildPythonPackage rec { | |
40 | pname = "pinch"; | |
41 | version = "3.0.5-pre"; | |
42 | src = lib.cleanSource ./.; | |
43 | buildInputs = [ makeWrapper ]; | |
44 | propagatedBuildInputs = [ git-cache ]; | |
45 | checkInputs = [ nix git mypy ] ++ lib.optionals lint [ autopep8 pylint ]; | |
46 | postInstall = '' | |
47 | wrapProgram "$out/bin/pinch" --prefix PATH : ${nix}/bin | |
48 | ''; | |
49 | doCheck = true; | |
50 | checkPhase = "./test.sh"; | |
51 | }) { | |
52 | git-cache = | |
53 | pkgs.python3Packages.git-cache or (pkgs.python3Packages.callPackage | |
54 | git-cache-fallback { | |
55 | backoff = | |
56 | pkgs.python3Packages.backoff or (pkgs.python3Packages.callPackage | |
57 | backoff-fallback { }); | |
58 | }); | |
59 | } |