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