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