1{ lib
2, stdenv
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.9";
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 rev = "refs/tags/v${version}";
28 hash = "sha256-Qubf/mWKMgYz9IVoptMZrwy4lQKsNGgdqpJB1j/u5s8=";
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 = [
54 "iopath"
55 ];
56
57 passthru.optional-dependencies = {
58 aws = [ boto3 ];
59 };
60
61 meta = with lib; {
62 description = "A python library that provides common I/O interface across different storage backends.";
63 homepage = "https://github.com/facebookresearch/iopath";
64 changelog = "https://github.com/facebookresearch/iopath/releases/tag/v${version}";
65 license = licenses.mit;
66 maintainers = with maintainers; [ happysalada ];
67 };
68}