depot/third_party/nixpkgs/pkgs/applications/science/engineering/strictdoc/default.nix

97 lines
1.7 KiB
Nix
Raw Normal View History

{ lib
, stdenv
, buildPythonApplication
, fetchFromGitHub
, python3
, html5lib
, invoke
, openpyxl
, poetry-core
, tidylib
, beautifulsoup4
, datauri
, docutils
, jinja2
, lxml
, markupsafe
, pygments
, reqif
, setuptools
, textx
, xlrd
, XlsxWriter
, pytestCheckHook
}:
buildPythonApplication rec {
pname = "strictdoc";
version = "0.0.26";
format = "pyproject";
src = fetchFromGitHub {
owner = "strictdoc-project";
repo = pname;
rev = version;
sha256 = "sha256-SMAwji75AjW8CzXRKBDF+fR/a5++GhgIvkcuD+a/vp4=";
};
patches = [
./conftest.py.patch
];
postPatch = ''
substituteInPlace ./tests/unit/conftest.py \
--replace @strictdoc_root_path@ "${placeholder "out"}/${python3.sitePackages}/strictdoc"
substituteInPlace requirements.txt \
--replace "jinja2 >= 2.11.2, <3.0" "jinja2 >= 2.11.2" \
--replace "reqif >= 0.0.18, == 0.*" "reqif>=0.0.8" \
--replace "==" ">=" \
--replace "~=" ">="
'';
nativeBuildInputs = [
html5lib
invoke
openpyxl
poetry-core
tidylib
];
propagatedBuildInputs = [
beautifulsoup4
datauri
docutils
jinja2
lxml
markupsafe
pygments
reqif
setuptools
textx
xlrd
XlsxWriter
];
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"strictdoc"
];
disabledTests = [
# fixture 'fs' not found
"test_001_load_from_files"
];
meta = with lib; {
description = "Software requirements specification tool";
homepage = "https://github.com/strictdoc-project/strictdoc";
changelog = "https://github.com/strictdoc-project/strictdoc/releases";
license = licenses.asl20;
maintainers = with maintainers; [ yuu ];
};
}