1{
2 lib,
3 beautifulsoup4,
4 buildPythonPackage,
5 fetchFromGitHub,
6 hatchling,
7 jinja2,
8 lxml,
9 pytestCheckHook,
10 python,
11 pythonOlder,
12 xmlschema,
13}:
14
15buildPythonPackage rec {
16 pname = "reqif";
17 version = "0.0.42";
18 pyproject = true;
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchFromGitHub {
23 owner = "strictdoc-project";
24 repo = "reqif";
25 rev = "refs/tags/${version}";
26 hash = "sha256-cQhis7jrcly3cw2LRv7hpPBFAB0Uag69czf+wJvbh/Q=";
27 };
28
29 postPatch = ''
30 substituteInPlace ./tests/unit/conftest.py \
31 --replace-fail "os.path.abspath(os.path.join(__file__, \"../../../../reqif\"))" \
32 "\"${placeholder "out"}/${python.sitePackages}/reqif\""
33 '';
34
35 nativeBuildInputs = [
36 hatchling
37 ];
38
39 propagatedBuildInputs = [
40 beautifulsoup4
41 lxml
42 jinja2
43 xmlschema
44 ];
45
46 nativeCheckInputs = [ pytestCheckHook ];
47
48 pythonImportsCheck = [ "reqif" ];
49
50 meta = with lib; {
51 description = "Python library for ReqIF format";
52 mainProgram = "reqif";
53 homepage = "https://github.com/strictdoc-project/reqif";
54 changelog = "https://github.com/strictdoc-project/reqif/releases/tag/${version}";
55 license = licenses.asl20;
56 maintainers = with maintainers; [ yuu ];
57 };
58}