1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 setuptools-scm, 6 bottle, 7 importlib-resources, 8 proxy-tools, 9 pygobject3, 10 pyqtwebengine, 11 pytest, 12 pythonOlder, 13 qt5, 14 qtpy, 15 six, 16 xvfb-run, 17}: 18 19buildPythonPackage rec { 20 pname = "pywebview"; 21 version = "5.0.5"; 22 pyproject = true; 23 24 disabled = pythonOlder "3.5"; 25 26 src = fetchFromGitHub { 27 owner = "r0x0r"; 28 repo = "pywebview"; 29 rev = "refs/tags/${version}"; 30 hash = "sha256-Mep4r5OujsefXFQA09OospqnzgQ3xn8HHdZFKNo3oM4="; 31 }; 32 33 nativeBuildInputs = [ 34 setuptools-scm 35 qt5.wrapQtAppsHook 36 ]; 37 38 propagatedBuildInputs = [ 39 bottle 40 pyqtwebengine 41 proxy-tools 42 six 43 ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ]; 44 45 nativeCheckInputs = [ 46 pygobject3 47 pytest 48 qtpy 49 xvfb-run 50 ]; 51 52 checkPhase = '' 53 # Cannot create directory /homeless-shelter/.... Error: FILE_ERROR_ACCESS_DENIED 54 export HOME=$TMPDIR 55 # QStandardPaths: XDG_RUNTIME_DIR not set 56 export XDG_RUNTIME_DIR=$HOME/xdg-runtime-dir 57 58 pushd tests 59 substituteInPlace run.sh \ 60 --replace "PYTHONPATH=.." "PYTHONPATH=$PYTHONPATH" \ 61 --replace "pywebviewtest test_js_api.py::test_concurrent ''${PYTEST_OPTIONS}" "# skip flaky test_js_api.py::test_concurrent" 62 63 patchShebangs run.sh 64 wrapQtApp run.sh 65 66 xvfb-run -s '-screen 0 800x600x24' ./run.sh 67 popd 68 ''; 69 70 pythonImportsCheck = [ "webview" ]; 71 72 meta = with lib; { 73 description = "Lightweight cross-platform wrapper around a webview"; 74 homepage = "https://github.com/r0x0r/pywebview"; 75 license = licenses.bsd3; 76 maintainers = with maintainers; [ jojosch ]; 77 }; 78}