nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 docstring-parser,
5 fetchFromGitHub,
6 hatch-vcs,
7 hatchling,
8 napari, # a reverse-dependency, for tests
9 psygnal,
10 pyside2,
11 pyside6,
12 pyqt6,
13 pyqt5,
14 pytestCheckHook,
15 superqt,
16 typing-extensions,
17}:
18
19buildPythonPackage rec {
20 pname = "magicgui";
21 version = "0.10.1";
22 pyproject = true;
23
24 src = fetchFromGitHub {
25 owner = "pyapp-kit";
26 repo = "magicgui";
27 tag = "v${version}";
28 hash = "sha256-jpM5OpQ10cF+HBhAI9cI/gXdHMzYsgY9vtpfNq+5fIw=";
29 };
30
31 build-system = [
32 hatch-vcs
33 hatchling
34 ];
35
36 dependencies = [
37 typing-extensions
38 superqt
39 psygnal
40 docstring-parser
41 ];
42
43 optional-dependencies = {
44 pyside2 = [ pyside2 ];
45 pyside6 = [ pyside6 ];
46 pyqt6 = [ pyqt6 ];
47 pyqt5 = [ pyqt5 ];
48 };
49
50 nativeCheckInputs = [ pytestCheckHook ];
51
52 doCheck = false; # Reports "Fatal Python error"
53
54 passthru.tests = {
55 inherit napari;
56 };
57
58 meta = {
59 description = "Build GUIs from python functions, using magic. (napari/magicgui)";
60 homepage = "https://github.com/pyapp-kit/magicgui";
61 changelog = "https://github.com/pyapp-kit/magicgui/blob/${src.tag}/CHANGELOG.md";
62 license = lib.licenses.mit;
63 maintainers = with lib.maintainers; [ SomeoneSerge ];
64 };
65}