Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 20.03 96 lines 2.3 kB view raw
1{ lib, buildPythonPackage, fetchPypi, callPackage 2, isPy27, isPy34, pythonOlder 3, cleo 4, requests 5, cachy 6, requests-toolbelt 7, pyrsistent 8, pyparsing 9, cachecontrol 10, pkginfo 11, html5lib 12, shellingham 13, subprocess32 14, tomlkit 15, typing 16, pathlib2 17, virtualenv 18, functools32 19, clikit 20, keyring 21, pexpect 22, importlib-metadata 23, pytest 24, jsonschema 25, intreehooks 26, lockfile 27}: 28 29let 30 glob2 = callPackage ./glob2.nix { }; 31 32in buildPythonPackage rec { 33 pname = "poetry"; 34 version = "1.0.3"; 35 36 src = fetchPypi { 37 inherit pname version; 38 sha256 = "0fx1ilgkrsqjjnpgv5zljsp0wpcsywdqvvi8im9z396qq6qpk830"; 39 }; 40 41 postPatch = '' 42 substituteInPlace pyproject.toml \ 43 --replace "pyrsistent = \"^0.14.2\"" "pyrsistent = \"^0.15.0\"" \ 44 --replace "requests-toolbelt = \"^0.8.0\"" "requests-toolbelt = \"^0.9.0\"" \ 45 --replace "importlib-metadata = {version = \"~1.1.3\", python = \"<3.8\"}" \ 46 "importlib-metadata = {version = \"~1.3.0\", python = \"<3.8\"}" 47 ''; 48 49 format = "pyproject"; 50 51 nativeBuildInputs = [ intreehooks ]; 52 53 propagatedBuildInputs = [ 54 cleo 55 clikit 56 requests 57 cachy 58 requests-toolbelt 59 jsonschema 60 pyrsistent 61 pyparsing 62 cachecontrol 63 pkginfo 64 html5lib 65 shellingham 66 tomlkit 67 pexpect 68 keyring 69 lockfile 70 ] ++ lib.optionals (isPy27 || isPy34) [ typing pathlib2 glob2 ] 71 ++ lib.optionals isPy27 [ virtualenv functools32 subprocess32 ] 72 ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ]; 73 74 postInstall = '' 75 mkdir -p "$out/share/bash-completion/completions" 76 "$out/bin/poetry" completions bash > "$out/share/bash-completion/completions/poetry" 77 mkdir -p "$out/share/zsh/vendor-completions" 78 "$out/bin/poetry" completions zsh > "$out/share/zsh/vendor-completions/_poetry" 79 mkdir -p "$out/share/fish/vendor_completions.d" 80 "$out/bin/poetry" completions fish > "$out/share/fish/vendor_completions.d/poetry.fish" 81 ''; 82 83 # No tests in Pypi tarball 84 doCheck = false; 85 checkInputs = [ pytest ]; 86 checkPhase = '' 87 pytest tests 88 ''; 89 90 meta = with lib; { 91 homepage = "https://python-poetry.org/"; 92 description = "Python dependency management and packaging made easy"; 93 license = licenses.mit; 94 maintainers = with maintainers; [ jakewaksbaum ]; 95 }; 96}