1{
2 lib,
3 asyncssh,
4 buildPythonPackage,
5 cryptography,
6 fetchFromGitHub,
7 httpcore,
8 httpx,
9 psrpcore,
10 psutil,
11 pyspnego,
12 pytest-mock,
13 pytestCheckHook,
14 pythonOlder,
15 pyyaml,
16 requests,
17 requests-credssp,
18 xmldiff,
19}:
20
21buildPythonPackage rec {
22 pname = "pypsrp";
23 version = "0.8.1";
24 format = "pyproject";
25
26 disabled = pythonOlder "3.7";
27
28 src = fetchFromGitHub {
29 owner = "jborean93";
30 repo = "pypsrp";
31 tag = "v${version}";
32 hash = "sha256-Pwfc9e39sYPdcHN1cZtxxGEglEYzPp4yOYLD5/4SSiU=";
33 };
34
35 propagatedBuildInputs = [
36 cryptography
37 httpcore
38 httpx
39 psrpcore
40 pyspnego
41 requests
42 ];
43
44 nativeCheckInputs = [
45 pytest-mock
46 pytestCheckHook
47 pyyaml
48 xmldiff
49 ];
50
51 optional-dependencies = {
52 credssp = [ requests-credssp ];
53 kerberos = pyspnego.optional-dependencies.kerberos;
54 named_pipe = [ psutil ];
55 ssh = [ asyncssh ];
56 };
57
58 pythonImportsCheck = [ "pypsrp" ];
59
60 disabledTests = [
61 # TypeError: Backend.load_rsa_private_numbers() missing 1 required...
62 "test_psrp_pshost_ui_mocked_methods"
63 "test_psrp_key_exchange_timeout"
64 "test_psrp_multiple_commands"
65 ];
66
67 meta = with lib; {
68 description = "PowerShell Remoting Protocol Client library";
69 homepage = "https://github.com/jborean93/pypsrp";
70 changelog = "https://github.com/jborean93/pypsrp/blob/v${version}/CHANGELOG.md";
71 license = licenses.mit;
72 maintainers = with maintainers; [ fab ];
73 };
74}