1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 passlib, 6 pip, 7 pytestCheckHook, 8 pythonOlder, 9 setuptools, 10 setuptools-git, 11 twine, 12 watchdog, 13 webtest, 14 wheel, 15}: 16 17buildPythonPackage rec { 18 pname = "pypiserver"; 19 version = "2.0.1"; 20 format = "setuptools"; 21 22 disabled = pythonOlder "3.7"; 23 24 src = fetchFromGitHub { 25 owner = pname; 26 repo = pname; 27 rev = "refs/tags/v${version}"; 28 hash = "sha256-Eh/3URt7pcJhoDDLRP8iHyjlPsE5E9M/0Hixqi5YNdg="; 29 }; 30 31 nativeBuildInputs = [ 32 setuptools 33 setuptools-git 34 wheel 35 ]; 36 37 propagatedBuildInputs = [ pip ]; 38 39 passthru.optional-dependencies = { 40 passlib = [ passlib ]; 41 cache = [ watchdog ]; 42 }; 43 44 __darwinAllowLocalNetworking = true; 45 46 # Tests need these permissions in order to use the FSEvents API on macOS. 47 sandboxProfile = '' 48 (allow mach-lookup (global-name "com.apple.FSEvents")) 49 ''; 50 51 preCheck = '' 52 export HOME=$TMPDIR 53 ''; 54 55 nativeCheckInputs = [ 56 pip 57 pytestCheckHook 58 setuptools 59 twine 60 webtest 61 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); 62 63 disabledTests = [ 64 # Fails to install the package 65 "test_hash_algos" 66 "test_pip_install_authed_succeeds" 67 "test_pip_install_open_succeeds" 68 ]; 69 70 disabledTestPaths = [ 71 # Test requires docker service running 72 "docker/test_docker.py" 73 ]; 74 75 pythonImportsCheck = [ "pypiserver" ]; 76 77 meta = with lib; { 78 description = "Minimal PyPI server for use with pip/easy_install"; 79 mainProgram = "pypi-server"; 80 homepage = "https://github.com/pypiserver/pypiserver"; 81 changelog = "https://github.com/pypiserver/pypiserver/releases/tag/v${version}"; 82 license = with licenses; [ 83 mit 84 zlib 85 ]; 86 maintainers = with maintainers; [ austinbutler ]; 87 }; 88}