1{
2 lib,
3 appdirs,
4 build,
5 buildPythonPackage,
6 fetchFromGitHub,
7 hatchling,
8 hatch-vcs,
9 magicgui,
10 napari, # reverse dependency, for tests
11 pydantic,
12 pythonOlder,
13 pytomlpp,
14 pyyaml,
15 rich,
16 typer,
17 tomli-w,
18}:
19
20buildPythonPackage rec {
21 pname = "napari-npe2";
22 version = "0.7.2-unstable-2023-10-20";
23 pyproject = true;
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchFromGitHub {
28 owner = "napari";
29 repo = "npe2";
30 rev = "9d29e4d6dbbec75c2d36273647efd9ddfb59ded0";
31 hash = "sha256-JLu/5pXijPdpKY2z2rREtSKPiP33Yy4viegbxUiQg7Y=";
32 };
33
34 # fix this in the next release
35 env.SETUPTOOLS_SCM_PRETEND_VERSION = "0.7.2";
36
37 nativeBuildInputs = [
38 hatchling
39 hatch-vcs
40 ];
41
42 propagatedBuildInputs = [
43 appdirs
44 build
45 magicgui
46 pydantic
47 pytomlpp
48 pyyaml
49 rich
50 typer
51 tomli-w
52 ];
53
54 pythonImportsCheck = [ "npe2" ];
55
56 passthru.tests = {
57 inherit napari;
58 };
59
60 meta = with lib; {
61 description = "Plugin system for napari (the image visualizer)";
62 mainProgram = "npe2";
63 homepage = "https://github.com/napari/npe2";
64 license = licenses.bsd3;
65 maintainers = with maintainers; [ SomeoneSerge ];
66 };
67}