diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix index e5fe491939fb..e203dc1c7aa5 100644 --- a/pkgs/development/python-modules/soco/default.nix +++ b/pkgs/development/python-modules/soco/default.nix @@ -1,29 +1,60 @@ -{ lib, buildPythonPackage, fetchPypi, xmltodict, requests -, toml - -# Test dependencies -, pytest, pytestcov, coveralls, pylint, flake8, graphviz, mock, sphinx +{ buildPythonPackage +, coveralls +, fetchFromGitHub +, flake8 +, graphviz +, lib +, mock +, pytestCheckHook +, requests +, sphinx , sphinx_rtd_theme +, toml +, xmltodict }: buildPythonPackage rec { pname = "soco"; version = "0.20"; - src = fetchPypi { - inherit pname version; - sha256 = "929d4fae20b32efc08bb9985798c592aa7268162885541513eddbff0a757418f"; + # N.B. We fetch from GitHub because the PyPI tarball doesn't contain the + # required files to run the tests. + src = fetchFromGitHub { + owner = "SoCo"; + repo = "SoCo"; + rev = "v${version}"; + sha256 = "0p87aw7wxgdjz0m0nqqcfvbn24hlbq1hh1zxdq2c0k2jcbmaj8zc"; }; - propagatedBuildInputs = [ xmltodict requests toml ]; + # N.B. These exist because: + # 1. Upstream's pinning isn't well maintained, leaving dependency versions no + # longer in nixpkgs. + # 2. There is no benefit for us to be running linting and coverage tests. + postPatch = '' + sed -i "/black/d" ./requirements-dev.txt + sed -i "/pylint/d" ./requirements-dev.txt + sed -i "/pytest-cov/d" ./requirements-dev.txt + ''; + + propagatedBuildInputs = [ + requests + toml + xmltodict + ]; checkInputs = [ - pytest pytestcov coveralls pylint flake8 graphviz mock sphinx + pytestCheckHook + coveralls + flake8 + graphviz + mock + sphinx sphinx_rtd_theme ]; - meta = { + meta = with lib; { homepage = "http://python-soco.com/"; description = "A CLI and library to control Sonos speakers"; - license = lib.licenses.mit; + license = licenses.mit; + maintainers = with maintainers; [ lovesegfault ]; }; }