about summary refs log tree commit diff
path: root/pkgs/development/python-modules/urllib3/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/urllib3/default.nix')
-rw-r--r--pkgs/development/python-modules/urllib3/default.nix21
1 files changed, 12 insertions, 9 deletions
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index 6d29a107f0045..8a79241eebca3 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -1,11 +1,13 @@
 { lib
 , brotli
+, brotlicffi
 , buildPythonPackage
+, certifi
 , cryptography
 , python-dateutil
 , fetchPypi
+, isPyPy
 , idna
-, isPy27
 , mock
 , pyopenssl
 , pysocks
@@ -26,14 +28,9 @@ buildPythonPackage rec {
     hash = "sha256-qrrxZHeAal4d0ZqkH4wreVDdPHRjYtfjIj2+beasRI4=";
   };
 
-  propagatedBuildInputs = [
-    brotli
-    pysocks
-  ] ++ lib.optionals isPy27 [
-    cryptography
-    idna
-    pyopenssl
-  ];
+  # FIXME: remove backwards compatbility hack
+  propagatedBuildInputs = passthru.optional-dependencies.brotli
+    ++ passthru.optional-dependencies.secure;
 
   checkInputs = [
     python-dateutil
@@ -66,6 +63,12 @@ buildPythonPackage rec {
     "urllib3"
   ];
 
+  passthru.optional-dependencies = {
+    brotli = if isPyPy then [ brotlicffi ] else [ brotli ];
+    secure = [ certifi cryptography idna pyopenssl ];
+    socks = [ pysocks ];
+  };
+
   meta = with lib; {
     description = "Powerful, sanity-friendly HTTP client for Python";
     homepage = "https://github.com/shazow/urllib3";