diff --git a/pkgs/development/python-modules/pyatem/default.nix b/pkgs/development/python-modules/pyatem/default.nix new file mode 100644 index 000000000000..5b7749ea57c9 --- /dev/null +++ b/pkgs/development/python-modules/pyatem/default.nix @@ -0,0 +1,75 @@ +{ lib +, stdenv +, buildPythonPackage +, fetchFromSourcehut + +# build-system +, setuptools + +# dependencies +, pyusb +, tqdm +, zeroconf + +# tests +, pillow +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "pyatem"; + version = "0.9.0"; # check latest version in setup.py + pyproject = true; + + src = fetchFromSourcehut { + owner = "~martijnbraam"; + repo = "pyatem"; + rev = version; + hash = "sha256-ntwUhgC8Cgrim+kU3B3ckgPDmPe+aEHDP4wsB45KbJg="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + pyusb + tqdm + zeroconf + ]; + + nativeCheckInputs = [ + pillow + pytestCheckHook + ]; + + preCheck = '' + TESTDIR=$(mktemp -d) + cp -r pyatem/{test_*.py,fixtures} $TESTDIR/ + pushd $TESTDIR + ''; + + disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [ + # colorspace mapping has weird, but constant offsets on aarch64-linux + "test_blueramp" + "test_greenramp" + "test_hues" + "test_primaries" + "test_redramp" + ]; + + postCheck = '' + popd + ''; + + pythonImportsCheck = [ + "pyatem" + ]; + + meta = with lib; { + description = "Library for controlling Blackmagic Design ATEM video mixers"; + homepage = "https://git.sr.ht/~martijnbraam/pyatem"; + license = licenses.lgpl3Only; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b00707ff4ad1..35c07c5c5a50 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9362,6 +9362,8 @@ self: super: with self; { pyatag = callPackage ../development/python-modules/pyatag { }; + pyatem = callPackage ../development/python-modules/pyatem { }; + pyatome = callPackage ../development/python-modules/pyatome { }; pycketcasts = callPackage ../development/python-modules/pycketcasts { };