1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitLab,
6 setuptools,
7 setuptools-scm,
8 attrs,
9 attrs-strict,
10 dateutils,
11 deprecated,
12 hypothesis,
13 iso8601,
14 typing-extensions,
15 click,
16 dulwich,
17 aiohttp,
18 pytestCheckHook,
19 pytz,
20 types-click,
21 types-python-dateutil,
22 types-pytz,
23 types-deprecated,
24
25}:
26
27buildPythonPackage rec {
28 pname = "swh-model";
29 version = "8.4.1";
30 pyproject = true;
31
32 src = fetchFromGitLab {
33 domain = "gitlab.softwareheritage.org";
34 group = "swh";
35 owner = "devel";
36 repo = "swh-model";
37 tag = "v${version}";
38 hash = "sha256-v/vbY0mxvsbuLUAmDACW9brfVF5djMYyvv9Mf1VL6do=";
39 };
40
41 build-system = [
42 setuptools
43 setuptools-scm
44 ];
45
46 dependencies = [
47 attrs
48 attrs-strict
49 click
50 dulwich
51 dateutils
52 deprecated
53 hypothesis
54 iso8601
55 typing-extensions
56 ];
57
58 pythonImportsCheck = [ "swh.model" ];
59
60 nativeCheckInputs = [
61 aiohttp
62 click
63 pytestCheckHook
64 pytz
65 types-click
66 types-python-dateutil
67 types-pytz
68 types-deprecated
69 ];
70
71 disabledTestPaths = lib.optionals (stdenv.hostPlatform.isDarwin) [
72 # OSError: [Errno 92] Illegal byte sequence
73 "swh/model/tests/test_cli.py::TestIdentify::test_exclude"
74 "swh/model/tests/test_from_disk.py::DirectoryToObjects::test_exclude"
75 "swh/model/tests/test_from_disk.py::DirectoryToObjects::test_exclude_trailing"
76 ];
77
78 meta = {
79 description = "Implementation of the Data model of the Software Heritage project, used to archive source code artifacts";
80 homepage = "https://gitlab.softwareheritage.org/swh/devel/swh-model";
81 license = lib.licenses.gpl3Only;
82 maintainers = with lib.maintainers; [ ];
83 };
84}