about summary refs log tree commit diff
path: root/pkgs/development/python-modules/ua-parser/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/ua-parser/default.nix')
-rw-r--r--pkgs/development/python-modules/ua-parser/default.nix40
1 files changed, 32 insertions, 8 deletions
diff --git a/pkgs/development/python-modules/ua-parser/default.nix b/pkgs/development/python-modules/ua-parser/default.nix
index d2fc2461a446b..ec55add71d69d 100644
--- a/pkgs/development/python-modules/ua-parser/default.nix
+++ b/pkgs/development/python-modules/ua-parser/default.nix
@@ -1,20 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyyaml
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "ua-parser";
   version = "0.10.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0csh307zfz666kkk5idrw3crj1x8q8vsqgwqil0r1n1hs4p7ica7";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "ua-parser";
+    repo = "uap-python";
+    rev = version;
+    fetchSubmodules = true;
+    hash = "sha256-kaTAfUtHj2vH7i7eIU61efuB4/XVHoc/z6o3ny+sgrQ=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace '"pyyaml"' ""
+  patches = [
+    ./dont-fetch-submodule.patch
+  ];
+
+  nativeBuildInputs = [
+    pyyaml
+  ];
+
+  preBuild = ''
+    mkdir -p build/lib/ua_parser
   '';
 
-  doCheck = false; # requires files from uap-core
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    # import from $out
+    rm ua_parser/__init__.py
+  '';
 
   pythonImportsCheck = [ "ua_parser" ];