1{ lib 2, stdenv 3, buildPythonPackage 4, eventlet 5, fetchPypi 6, gevent 7, pkgs 8, process-tests 9, pytestCheckHook 10, pythonOlder 11, redis 12, withDjango ? false 13, django-redis 14}: 15 16buildPythonPackage rec { 17 pname = "python-redis-lock"; 18 version = "4.0.0"; 19 format = "setuptools"; 20 21 disabled = pythonOlder "3.7"; 22 23 src = fetchPypi { 24 inherit pname version; 25 hash = "sha256-Sr0Lz0kTasrWZye/VIbdJJQHjKVeSe+mk/eUB3MZCRo="; 26 }; 27 28 propagatedBuildInputs = [ 29 redis 30 ] ++ lib.optionals withDjango [ 31 django-redis 32 ]; 33 34 nativeCheckInputs = [ 35 eventlet 36 gevent 37 pytestCheckHook 38 process-tests 39 pkgs.redis 40 ]; 41 42 disabledTests = [ 43 # https://github.com/ionelmc/python-redis-lock/issues/86 44 "test_no_overlap2" 45 ] ++ lib.optionals stdenv.isDarwin [ 46 # fail on Darwin because it defaults to multiprocessing `spawn` 47 "test_reset_signalizes" 48 "test_reset_all_signalizes" 49 ]; 50 51 pythonImportsCheck = [ 52 "redis_lock" 53 ]; 54 55 meta = with lib; { 56 changelog = "https://github.com/ionelmc/python-redis-lock/blob/v${version}/CHANGELOG.rst"; 57 description = "Lock context manager implemented via redis SETNX/BLPOP"; 58 homepage = "https://github.com/ionelmc/python-redis-lock"; 59 license = licenses.bsd2; 60 maintainers = with maintainers; [ vanschelven ]; 61 }; 62}