1{
2 lib,
3 python3,
4 fetchFromGitHub,
5}:
6
7python3.pkgs.buildPythonApplication rec {
8 pname = "strictdoc";
9 version = "0.9.3";
10 pyproject = true;
11
12 src = fetchFromGitHub {
13 owner = "strictdoc-project";
14 repo = "strictdoc";
15 tag = version;
16 hash = "sha256-3bZfyjylNrCK2UFXgCoNI/LckSa8FkVWD/kBopFIbec=";
17 };
18
19 build-system = [
20 python3.pkgs.hatchling
21 ];
22
23 dependencies = with python3.pkgs; [
24 beautifulsoup4
25 datauri
26 docutils
27 fastapi
28 graphviz
29 html2pdf4doc
30 html5lib
31 jinja2
32 lark
33 lxml
34 openpyxl
35 pybtex
36 pygments
37 python-multipart
38 reqif
39 requests
40 robotframework
41 selenium
42 setuptools
43 spdx-tools
44 textx
45 toml
46 tree-sitter
47 tree-sitter-grammars.tree-sitter-cpp
48 tree-sitter-grammars.tree-sitter-python
49 uvicorn
50 webdriver-manager
51 websockets
52 xlrd
53 xlsxwriter
54 ];
55
56 optional-dependencies = with python3.pkgs; {
57 development = [
58 invoke
59 tox
60 ];
61 nuitka = [
62 nuitka
63 ordered-set
64 ];
65 };
66
67 pythonRelaxDeps = [
68 "python-datauri"
69 "xlsxwriter"
70 ];
71
72 pythonImportsCheck = [ "strictdoc" ];
73
74 meta = {
75 description = "Software for technical documentation and requirements management";
76 homepage = "https://github.com/strictdoc-project/strictdoc";
77 changelog = "https://github.com/strictdoc-project/strictdoc/blob/${src.rev}/CHANGELOG.md";
78 license = lib.licenses.asl20;
79 maintainers = with lib.maintainers; [ yuu ];
80 mainProgram = "strictdoc";
81 };
82}