1{
2 lib,
3 asyncssh,
4 buildPythonPackage,
5 dulwich,
6 dvc-http,
7 dvc-objects,
8 fetchFromGitHub,
9 fsspec,
10 funcy,
11 gitpython,
12 pathspec,
13 pygit2,
14 pygtrie,
15 pythonOlder,
16 setuptools,
17 setuptools-scm,
18 shortuuid,
19}:
20
21buildPythonPackage rec {
22 pname = "scmrepo";
23 version = "3.3.9";
24 pyproject = true;
25
26 disabled = pythonOlder "3.9";
27
28 src = fetchFromGitHub {
29 owner = "iterative";
30 repo = "scmrepo";
31 rev = "refs/tags/${version}";
32 hash = "sha256-HrJraiETYC7U2IB9ykjGUOg3khA4lBIH18r7btvXRH8=";
33 };
34
35 build-system = [
36 setuptools
37 setuptools-scm
38 ];
39
40 dependencies = [
41 asyncssh
42 dulwich
43 dvc-http
44 dvc-objects
45 fsspec
46 funcy
47 gitpython
48 pathspec
49 pygit2
50 pygtrie
51 shortuuid
52 ];
53
54 # Requires a running Docker instance
55 doCheck = false;
56
57 pythonImportsCheck = [ "scmrepo" ];
58
59 meta = with lib; {
60 description = "SCM wrapper and fsspec filesystem";
61 homepage = "https://github.com/iterative/scmrepo";
62 changelog = "https://github.com/iterative/scmrepo/releases/tag/${version}";
63 license = licenses.asl20;
64 maintainers = with maintainers; [ fab ];
65 };
66}