1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 mock,
6 psutil,
7 pyasyncore,
8 pyasynchat,
9 pyopenssl,
10 pysendfile,
11 pythonOlder,
12 setuptools,
13}:
14
15buildPythonPackage rec {
16 pname = "pyftpdlib";
17 version = "2.0.1";
18 pyproject = true;
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchPypi {
23 inherit pname version;
24 hash = "sha256-7w0XKoK/rhDi3sIi6HUzUUYJ1Bv0sP0PB+KdQ4D7lr8=";
25 };
26
27 build-system = [ setuptools ];
28
29 dependencies = [
30 pyasyncore
31 pyasynchat
32 pysendfile
33 ];
34
35 optional-dependencies = {
36 ssl = [ pyopenssl ];
37 };
38
39 nativeCheckInputs = [
40 mock
41 psutil
42 ];
43
44 # Impure filesystem-related tests cause timeouts
45 # on Hydra: https://hydra.nixos.org/build/84374861
46 doCheck = false;
47
48 pythonImportsCheck = [ "pyftpdlib" ];
49
50 meta = with lib; {
51 description = "Asynchronous FTP server library";
52 homepage = "https://github.com/giampaolo/pyftpdlib/";
53 changelog = "https://github.com/giampaolo/pyftpdlib/blob/release-${version}/HISTORY.rst";
54 license = licenses.mit;
55 maintainers = [ ];
56 mainProgram = "ftpbench";
57 };
58}