1{ lib
2, glibcLocales
3, buildPythonPackage
4, fetchPypi
5, six
6, nose
7, appdirs
8, scandir
9, backports_os
10, typing
11, pytz
12, enum34
13, pyftpdlib
14, psutil
15, mock
16, pythonAtLeast
17, isPy3k
18}:
19
20buildPythonPackage rec {
21 pname = "fs";
22 version = "2.3.1";
23
24 src = fetchPypi {
25 inherit pname version;
26 sha256 = "6c3f79a16dfcbf8a8f437f81dd8afaa3741285d9369574c48e1d27e40b0c980e";
27 };
28
29 buildInputs = [ glibcLocales ];
30 checkInputs = [ nose pyftpdlib mock psutil ];
31 propagatedBuildInputs = [ six appdirs pytz ]
32 ++ lib.optionals (!isPy3k) [ backports_os ]
33 ++ lib.optionals (!pythonAtLeast "3.6") [ typing ]
34 ++ lib.optionals (!pythonAtLeast "3.5") [ scandir ]
35 ++ lib.optionals (!pythonAtLeast "3.5") [ enum34 ];
36
37 LC_ALL="en_US.utf-8";
38
39 checkPhase = ''
40 HOME=$(mktemp -d) nosetests tests []
41 '';
42
43 meta = with lib; {
44 description = "Filesystem abstraction";
45 homepage = https://github.com/PyFilesystem/pyfilesystem2;
46 license = licenses.bsd3;
47 maintainers = with maintainers; [ lovek323 ];
48 platforms = platforms.unix;
49 };
50
51}