about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/soco/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/soco/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/soco/default.nix57
1 files changed, 44 insertions, 13 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/soco/default.nix b/nixpkgs/pkgs/development/python-modules/soco/default.nix
index b56e43e13219..e203dc1c7aa5 100644
--- a/nixpkgs/pkgs/development/python-modules/soco/default.nix
+++ b/nixpkgs/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.19";
+  version = "0.20";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0dgca286vhrabm4r4jj545k895z6w2c70ars06vrjhf9cpgg7qck";
+  # 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 ];
   };
 }