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