1{ lib
2, buildPythonPackage
3, fetchPypi
4, pytestCheckHook
5, typer
6, smart-open
7, mock
8, google-cloud-storage
9}:
10
11buildPythonPackage rec {
12 pname = "pathy";
13 version = "0.6.1";
14
15 src = fetchPypi {
16 inherit pname version;
17 sha256 = "838624441f799a06b446a657e4ecc9ebc3fdd05234397e044a7c87e8f6e76b1c";
18 };
19
20 propagatedBuildInputs = [ smart-open typer google-cloud-storage ];
21
22 postPatch = ''
23 substituteInPlace requirements.txt \
24 --replace "smart-open>=2.2.0,<4.0.0" "smart-open>=2.2.0"
25 '';
26
27 checkInputs = [ pytestCheckHook mock ];
28
29 # Exclude tests that require provider credentials
30 pytestFlagsArray = [
31 "--ignore=pathy/_tests/test_clients.py"
32 "--ignore=pathy/_tests/test_gcs.py"
33 "--ignore=pathy/_tests/test_s3.py"
34 ];
35
36 meta = with lib; {
37 description = "A Path interface for local and cloud bucket storage";
38 homepage = "https://github.com/justindujardin/pathy";
39 license = licenses.asl20;
40 maintainers = with maintainers; [ melling ];
41 };
42}