1{ lib
2, apptools
3, buildPythonPackage
4, fetchPypi
5, fetchpatch
6, ipython
7, pytestCheckHook
8, pythonAtLeast
9, pythonOlder
10, setuptools
11, traits
12}:
13
14buildPythonPackage rec {
15 pname = "envisage";
16 version = "6.1.0";
17 format = "setuptools";
18
19 disabled = pythonOlder "3.6";
20
21 src = fetchPypi {
22 inherit pname version;
23 hash = "sha256-AATsUNcYLB4vtyvuooAMDZx8p5fayijb6yJoUKTCW40=";
24 };
25
26 patches = [
27 # TODO: remove on next release
28 (fetchpatch {
29 name = "fix-mistake-in-menu-group-specification.patch";
30 url = "https://github.com/enthought/envisage/commit/f23ea3864a5f6ffca665d47dec755992e062029b.patch";
31 hash = "sha256-l4CWB4jRkSmoTDoV8CtP2w87Io2cLINKfOSaSPy7cXE=";
32 })
33 ];
34
35 # for the optional dependency ipykernel, only versions < 6 are
36 # supported, so it's not included in the tests, and not propagated
37 propagatedBuildInputs = [
38 traits
39 apptools
40 setuptools
41 ];
42
43 preCheck = ''
44 export HOME=$PWD/HOME
45 '';
46
47 nativeCheckInputs = [
48 ipython
49 pytestCheckHook
50 ];
51
52 disabledTestPaths = lib.optionals (pythonAtLeast "3.10") [
53 # https://github.com/enthought/envisage/issues/455
54 "envisage/tests/test_egg_basket_plugin_manager.py"
55 "envisage/tests/test_egg_plugin_manager.py"
56 ];
57
58 pythonImportsCheck = [
59 "envisage"
60 ];
61
62 meta = with lib; {
63 description = "Framework for building applications whose functionalities can be extended by adding plug-ins";
64 homepage = "https://github.com/enthought/envisage";
65 license = licenses.bsdOriginal;
66 maintainers = with lib.maintainers; [ knedlsepp ];
67 };
68}