1{
2 lib,
3 bcrypt,
4 buildPythonPackage,
5 cryptography,
6 fetchPypi,
7 gssapi,
8 icecream,
9 invoke,
10 mock,
11 pyasn1,
12 pynacl,
13 pytest-relaxed,
14 pytestCheckHook,
15 setuptools,
16}:
17
18buildPythonPackage rec {
19 pname = "paramiko";
20 version = "4.0.0";
21 pyproject = true;
22
23 src = fetchPypi {
24 inherit pname version;
25 hash = "sha256-aiXwezgMycmojSuSCtNxZ6xGZ/jZiGzOvY+Q9lS11p8=";
26 };
27
28 build-system = [ setuptools ];
29
30 dependencies = [
31 bcrypt
32 cryptography
33 pynacl
34 ];
35
36 optional-dependencies = {
37 gssapi = [
38 pyasn1
39 gssapi
40 ];
41 ed25519 = [ ];
42 invoke = [ invoke ];
43 };
44
45 nativeCheckInputs = [
46 icecream
47 mock
48 pytestCheckHook
49 pytest-relaxed
50 ]
51 ++ lib.flatten (builtins.attrValues optional-dependencies);
52
53 pythonImportsCheck = [ "paramiko" ];
54
55 __darwinAllowLocalNetworking = true;
56
57 meta = {
58 homepage = "https://github.com/paramiko/paramiko/";
59 changelog = "https://github.com/paramiko/paramiko/blob/${version}/sites/www/changelog.rst";
60 description = "Native Python SSHv2 protocol library";
61 license = lib.licenses.lgpl21Plus;
62 longDescription = ''
63 Library for making SSH2 connections (client or server). Emphasis is
64 on using SSH2 as an alternative to SSL for making secure connections
65 between python scripts. All major ciphers and hash methods are
66 supported. SFTP client and server mode are both supported too.
67 '';
68 teams = [ lib.teams.helsinki-systems ];
69 };
70}