at 24.05-pre 1.8 kB view raw
1{ lib 2, buildPythonPackage 3, click 4, colorama 5, configparser 6, distro 7, fetchFromGitHub 8, fetchpatch 9, gevent 10, jinja2 11, paramiko 12, pytestCheckHook 13, python-dateutil 14, pythonOlder 15, pywinrm 16, pyyaml 17, setuptools 18}: 19 20buildPythonPackage rec { 21 pname = "pyinfra"; 22 version = "2.8"; 23 format = "setuptools"; 24 25 disabled = pythonOlder "3.7"; 26 27 src = fetchFromGitHub { 28 owner = "Fizzadar"; 29 repo = pname; 30 rev = "refs/tags/v${version}"; 31 hash = "sha256-BYd2UYQJD/HsmpnlQjZvjfg17ShPuA3j4rtv6fTQK/A="; 32 }; 33 34 patches = [ 35 # https://github.com/Fizzadar/pyinfra/pull/1018 36 (fetchpatch { 37 name = "bump-paramiko-major-version.patch"; 38 url = "https://github.com/Fizzadar/pyinfra/commit/62a8f081279779c4f1eed246139f615cf5fed642.patch"; 39 hash = "sha256-aT9SeSqXOD76LFzf6R/MWTtavcW6fZT7chkVg9aXiBg="; 40 }) 41 ]; 42 43 propagatedBuildInputs = [ 44 click 45 colorama 46 configparser 47 distro 48 gevent 49 jinja2 50 paramiko 51 python-dateutil 52 pywinrm 53 pyyaml 54 setuptools 55 ]; 56 57 nativeCheckInputs = [ 58 pytestCheckHook 59 ]; 60 61 pythonImportsCheck = [ 62 "pyinfra" 63 ]; 64 65 disabledTests = [ 66 # Test requires SSH binary 67 "test_load_ssh_config" 68 ]; 69 70 meta = with lib; { 71 description = "Python-based infrastructure automation"; 72 longDescription = '' 73 pyinfra automates/provisions/manages/deploys infrastructure. It can be used for 74 ad-hoc command execution, service deployment, configuration management and more. 75 ''; 76 homepage = "https://pyinfra.com"; 77 downloadPage = "https://pyinfra.com/Fizzadar/pyinfra/releases"; 78 changelog = "https://github.com/Fizzadar/pyinfra/blob/v${version}/CHANGELOG.md"; 79 maintainers = with maintainers; [ totoroot ]; 80 license = licenses.mit; 81 }; 82}