1{
2 lib,
3 atom,
4 buildPythonPackage,
5 bytecode,
6 cppy,
7 fetchFromGitHub,
8 kiwisolver,
9 pegen,
10 ply,
11 qtpy,
12 setuptools,
13 setuptools-scm,
14 pythonOlder,
15 sip,
16}:
17
18buildPythonPackage rec {
19 pname = "enaml";
20 version = "0.17.0";
21 format = "pyproject";
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = "nucleic";
27 repo = pname;
28 rev = "refs/tags/${version}";
29 hash = "sha256-DYLDQ9QwdK/a8eY0bFX31UNgxm8FUOaeNAnisFcyFNI=";
30 };
31
32 nativeBuildInputs = [
33 setuptools
34 setuptools-scm
35 ];
36
37 propagatedBuildInputs = [
38 atom
39 bytecode
40 cppy
41 kiwisolver
42 pegen
43 ply
44 qtpy
45 sip
46 ];
47
48 # qt bindings cannot be found during tests
49 doCheck = false;
50
51 pythonImportsCheck = [
52 "enaml"
53 "enaml.applib"
54 "enaml.core"
55 "enaml.core.parser"
56 "enaml.layout"
57 # qt bindings cannot be found during checking
58 #"enaml.qt"
59 #"enaml.qt.docking"
60 "enaml.scintilla"
61 "enaml.stdlib"
62 "enaml.widgets"
63 "enaml.workbench"
64 ];
65
66 meta = with lib; {
67 description = "Declarative User Interfaces for Python";
68 homepage = "https://github.com/nucleic/enaml";
69 changelog = "https://github.com/nucleic/enaml/releases/tag/${version}";
70 license = licenses.bsd3;
71 maintainers = with maintainers; [ raboof ];
72 };
73}