1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 # build inputs
7 tqdm,
8 portalocker,
9 boto3,
10 # check inputs
11 pytestCheckHook,
12 torch,
13}:
14let
15 pname = "iopath";
16 version = "0.1.10";
17in
18buildPythonPackage {
19 inherit pname version;
20 format = "setuptools";
21
22 disabled = pythonOlder "3.10";
23
24 src = fetchFromGitHub {
25 owner = "facebookresearch";
26 repo = "iopath";
27 tag = "v${version}";
28 hash = "sha256-vJV0c+dCFO0wOHahKJ8DbwT2Thx3YjkNLVSpQv9H69g=";
29 };
30
31 propagatedBuildInputs = [
32 tqdm
33 portalocker
34 ];
35
36 nativeCheckInputs = [
37 pytestCheckHook
38 torch
39 ];
40
41 disabledTests = [
42 # requires network access
43 "test_download"
44 "test_bad_args"
45 ];
46
47 disabledTestPaths = [
48 # flakey
49 "tests/async_torch_test.py"
50 "tests/async_writes_test.py"
51 ];
52
53 pythonImportsCheck = [ "iopath" ];
54
55 optional-dependencies = {
56 aws = [ boto3 ];
57 };
58
59 meta = with lib; {
60 description = "Python library that provides common I/O interface across different storage backends";
61 homepage = "https://github.com/facebookresearch/iopath";
62 changelog = "https://github.com/facebookresearch/iopath/releases/tag/v${version}";
63 license = licenses.mit;
64 maintainers = with maintainers; [ happysalada ];
65 };
66}