Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatchling,
6 hatch-vcs,
7 pythonOlder,
8 pyyaml,
9 platformdirs,
10 build,
11 psygnal,
12 pydantic,
13 tomli-w,
14 tomli,
15 rich,
16 typer,
17 napari, # reverse dependency, for tests
18}:
19
20buildPythonPackage rec {
21 pname = "napari-npe2";
22 version = "0.7.9";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "napari";
27 repo = "npe2";
28 tag = "v${version}";
29 hash = "sha256-q+vgzUuSSHFR64OajT/j/tLsNgSm3azQPCvDlrIvceM=";
30 };
31
32 build-system = [
33 hatchling
34 hatch-vcs
35 ];
36
37 dependencies = [
38 pyyaml
39 platformdirs
40 build
41 psygnal
42 pydantic
43 tomli-w
44 rich
45 typer
46 ]
47 ++ lib.optionals (pythonOlder "3.11") [
48 tomli
49 ];
50
51 pythonImportsCheck = [ "npe2" ];
52
53 passthru.tests = {
54 inherit napari;
55 };
56
57 meta = {
58 description = "Plugin system for napari (the image visualizer)";
59 homepage = "https://github.com/napari/npe2";
60 license = lib.licenses.bsd3;
61 maintainers = with lib.maintainers; [ SomeoneSerge ];
62 mainProgram = "npe2";
63 };
64}