1{
2 lib,
3 buildPythonPackage,
4 fetchFromSourcehut,
5
6 # build-system
7 setuptools,
8
9 # dependencies
10 pyusb,
11 tqdm,
12 zeroconf,
13
14 # tests
15 pillow,
16 pytestCheckHook,
17}:
18
19buildPythonPackage rec {
20 pname = "pyatem";
21 version = "0.13.0"; # check latest version in setup.py
22 pyproject = true;
23
24 src = fetchFromSourcehut {
25 owner = "~martijnbraam";
26 repo = "pyatem";
27 rev = version;
28 hash = "sha256-eEn09e+ZED4DGEWTUou9CRgazngHIXZv51CLhX9YuBI=";
29 };
30
31 nativeBuildInputs = [ setuptools ];
32
33 propagatedBuildInputs = [
34 pyusb
35 tqdm
36 zeroconf
37 ];
38
39 nativeCheckInputs = [
40 pillow
41 pytestCheckHook
42 ];
43
44 preCheck = ''
45 TESTDIR=$(mktemp -d)
46 cp -r pyatem/{test_*.py,fixtures} $TESTDIR/
47 pushd $TESTDIR
48 '';
49
50 postCheck = ''
51 popd
52 '';
53
54 pythonImportsCheck = [ "pyatem" ];
55
56 meta = with lib; {
57 description = "Library for controlling Blackmagic Design ATEM video mixers";
58 homepage = "https://git.sr.ht/~martijnbraam/pyatem";
59 license = licenses.lgpl3Only;
60 maintainers = with maintainers; [ hexa ];
61 };
62}