1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 mock,
6 pathlib-abc,
7 pytestCheckHook,
8 pythonOlder,
9 pythonRelaxDepsHook,
10 setuptools,
11 smart-open,
12 typer,
13}:
14
15buildPythonPackage rec {
16 pname = "pathy";
17 version = "0.11.0";
18 pyproject = true;
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchPypi {
23 inherit pname version;
24 hash = "sha256-uz0OawuL92709jxxkeluCvLtZcj9tfoXSI+ch55jcG0=";
25 };
26
27 nativeBuildInputs = [ pythonRelaxDepsHook ];
28
29 pythonRelaxDeps = [ "smart-open" ];
30
31 build-system = [ setuptools ];
32
33 dependencies = [
34 pathlib-abc
35 smart-open
36 typer
37 ];
38
39 nativeCheckInputs = [
40 mock
41 pytestCheckHook
42 ];
43
44 disabledTestPaths = [
45 # Exclude tests that require provider credentials
46 "pathy/_tests/test_clients.py"
47 "pathy/_tests/test_gcs.py"
48 "pathy/_tests/test_s3.py"
49 ];
50
51 pythonImportsCheck = [ "pathy" ];
52
53 meta = with lib; {
54 description = "A Path interface for local and cloud bucket storage";
55 mainProgram = "pathy";
56 homepage = "https://github.com/justindujardin/pathy";
57 license = licenses.asl20;
58 maintainers = with maintainers; [ melling ];
59 };
60}