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