1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6
7 darkdetect,
8 poetry-core,
9
10 pyqt5,
11 pytest-mock,
12 pytest-qt,
13 pytestCheckHook,
14 qt5,
15}:
16
17buildPythonPackage rec {
18 pname = "pyqtdarktheme";
19 version = "2.1.0";
20 pyproject = true;
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchFromGitHub {
25 owner = "5yutan5";
26 repo = "PyQtDarkTheme";
27 rev = "v${version}";
28 hash = "sha256-jK+wnIyPE8Bav0pzbvVisYYCzdRshYw1S2t0H3Pro5M=";
29 };
30
31 patches = [ ./add-missing-argument-to-the-proxy-style-initializer.patch ];
32
33 nativeBuildInputs = [ poetry-core ];
34
35 propagatedBuildInputs = [ darkdetect ];
36
37 nativeCheckInputs = [
38 pyqt5
39 pytest-mock
40 pytest-qt
41 pytestCheckHook
42 ];
43
44 pythonImportsCheck = [ "qdarktheme" ];
45
46 prePatch = ''
47 sed -i 's#darkdetect = ".*"#darkdetect = "*"#' pyproject.toml
48 '';
49
50 preCheck = ''
51 export HOME=$(mktemp -d)
52 export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
53 export QT_QPA_PLATFORM_PLUGIN_PATH="${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins";
54 export QT_QPA_PLATFORM=offscreen
55 '';
56
57 meta = with lib; {
58 description = "Flat dark theme for PySide and PyQt";
59 homepage = "https://pyqtdarktheme.readthedocs.io/en/stable";
60 license = licenses.mit;
61 maintainers = with maintainers; [ ];
62 };
63}