nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 pytestCheckHook,
7 matplotlib,
8 legacy-cgi,
9 python-snap7,
10 opencv4,
11}:
12
13buildPythonPackage rec {
14 pname = "remi";
15 version = "2022.7.27";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "rawpython";
20 repo = "remi";
21 rev = version;
22 hash = "sha256-VQn+Uzp6oGSit8ot0e8B0C2N41Q8+J+o91skyVN1gDA=";
23 };
24
25 preCheck = ''
26 # for some reason, REMI already deal with these using try blocks, but they fail
27 substituteInPlace test/test_widget.py \
28 --replace-fail \
29 "from html_validator import " \
30 "from .html_validator import "
31 substituteInPlace test/test_examples_app.py \
32 --replace-fail \
33 "from mock_server_and_request import " \
34 "from .mock_server_and_request import " \
35 --replace-fail \
36 "from html_validator import " \
37 "from .html_validator import "
38 # Halves number of warnings
39 substituteInPlace test/test_*.py \
40 --replace-quiet \
41 "self.assertEquals(" \
42 "self.assertEqual("
43 '';
44
45 build-system = [ setuptools ];
46
47 dependencies = [
48 setuptools # pkg_resources is referenced at runtime
49 legacy-cgi
50 ];
51
52 nativeCheckInputs = [
53 pytestCheckHook
54 python-snap7
55 opencv4
56 matplotlib
57 ];
58
59 pythonImportsCheck = [
60 "remi"
61 "editor"
62 "editor.widgets"
63 ];
64
65 meta = {
66 description = "Pythonic, lightweight and websocket-based webui library";
67 homepage = "https://github.com/rawpython/remi";
68 license = with lib.licenses; [ asl20 ];
69 maintainers = with lib.maintainers; [ pbsds ];
70 };
71}