1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fsspec,
6 funcy,
7 pytest-asyncio,
8 pytest-mock,
9 pytestCheckHook,
10 pythonOlder,
11 reflink,
12 setuptools-scm,
13 shortuuid,
14}:
15
16buildPythonPackage rec {
17 pname = "dvc-objects";
18 version = "5.1.1";
19 pyproject = true;
20
21 disabled = pythonOlder "3.8";
22
23 src = fetchFromGitHub {
24 owner = "iterative";
25 repo = "dvc-objects";
26 tag = version;
27 hash = "sha256-NjpQJhpNkl+M+aFWG0AaPUc546F7L23PcduMKNtGDL4=";
28 };
29
30 postPatch = ''
31 substituteInPlace pyproject.toml \
32 --replace " --benchmark-skip" ""
33 '';
34
35 nativeBuildInputs = [ setuptools-scm ];
36
37 propagatedBuildInputs = [ fsspec ] ++ lib.optionals (pythonOlder "3.12") [ funcy ];
38
39 nativeCheckInputs = [
40 pytest-asyncio
41 pytest-mock
42 pytestCheckHook
43 reflink
44 shortuuid
45 ];
46
47 pythonImportsCheck = [ "dvc_objects" ];
48
49 disabledTestPaths = [
50 # Disable benchmarking
51 "tests/benchmarks/"
52 ];
53
54 meta = with lib; {
55 description = "Library for DVC objects";
56 homepage = "https://github.com/iterative/dvc-objects";
57 changelog = "https://github.com/iterative/dvc-objects/releases/tag/${src.tag}";
58 license = licenses.asl20;
59 maintainers = with maintainers; [ fab ];
60 };
61}