StrictDoc Documentation
pyproject.toml
Source file coverage
Path:
pyproject.toml
Lines:
150
Non-empty lines:
124
Non-empty lines covered with requirements:
124 / 124 (100.0%)
Functions:
0
Functions covered by requirements:
0 / 0 (0.0%)
1
#
2
# @relation(SDOC-SRS-8, scope=file)
3
#
4
 
5
[build-system]
6
requires = ["hatchling"]
7
build-backend = "hatchling.build"
8
 
9
[tool.hatch.version]
10
path = "strictdoc/__init__.py"
11
 
12
[tool.hatch.build]
13
include = [
14
    "/strictdoc/",
15
    "LICENSE",
16
    "NOTICE",
17
    "README.md",
18
    "pyproject.toml"
19
]
20
 
21
exclude = [
22
    # Without this, the folder is still included to the output tar.gz because it has a Markdown file.
23
    "/developer",
24
]
25
 
26
[project]
27
name = "strictdoc"
28
dynamic = ["version"]
29
description = "StrictDoc is open-source software for technical documentation and requirements management."
30
readme = "README.md"
31
license = "Apache-2.0"
32
requires-python = ">=3.10"
33
authors = [
34
    { name = "Stanislav Pankevich", email = "s.pankevich@gmail.com" },
35
    { name = "Maryna Balioura", email = "mettta@gmail.com" },
36
]
37
classifiers = [
38
    "License :: OSI Approved :: Apache Software License",
39
    "Operating System :: OS Independent",
40
    "Programming Language :: Python :: 3",
41
    "Programming Language :: Python :: 3.10",
42
    "Programming Language :: Python :: 3.11",
43
    "Programming Language :: Python :: 3.12",
44
    "Programming Language :: Python :: 3.13",
45
    "Programming Language :: Python :: 3.14",
46
    "Programming Language :: Python :: Implementation :: CPython",
47
    "Programming Language :: Python :: Implementation :: PyPy",
48
]
49
 
50
# @relation(SDOC-SRS-89, scope=range_start)
51
dependencies = [
52
    "textx >= 4.0.0, == 4.*",
53
    "lark >= 1.2.2",
54
 
55
    "jinja2 >= 2.11.2",
56
    # Reading project config from strictdoc.toml file.
57
    "toml",
58
 
59
    # Parsing and rendering RST.
60
    "docutils >= 0.22.2, == 0.*",
61
 
62
    # Parsing Markdown in CommonMark mode. Converting Markdown to HTML.
63
    "markdown-it-py >= 4.0.0, == 4.*",
64
 
65
    # Tree Sitter is used for language/AST-aware parsing of Python, C and other files.
66
    "tree-sitter >= 0.25",
67
    "tree_sitter_cpp",
68
    "tree-sitter-python",
69
    "tree-sitter-rust",
70
 
71
    # Requirements-to-source traceability. Colored syntax for source files.
72
    "pygments >= 2.10.0, == 2.*",
73
 
74
    # Faster JSON serialization for Static HTML search.
75
    "orjson",
76
 
77
    # Static HTML export with embedded assets.
78
    "beautifulsoup4 >= 4.12.0, == 4.*",
79
    "html5lib>=1.1",  # Used by beautifulsoup4 as an optional plugin.
80
    "python-datauri >= 2.1.1, == 2.*",
81
 
82
    # Excel
83
    "XlsxWriter >= 1.3.7, == 1.*",
84
    "xlrd >= 2.0.1, == 2.*",
85
    "openpyxl >= 3.1.0",
86
 
87
    # ReqIF
88
    # @relation(SDOC-SRS-73, scope=line)
89
    "reqif >= 0.0.39, == 0.*",
90
 
91
    # SPDX
92
    "spdx-tools >= 0.8.5",
93
 
94
    # Web server dependencies
95
    "fastapi >= 0.83.0",
96
    # FastAPI: To receive uploaded files and/or form data, first install python-multipart.
97
    "python-multipart",
98
    "uvicorn[standard] >= 0.14.0",
99
    "WebSockets",
100
 
101
    # HTML2PDF dependencies
102
    "html2pdf4doc == 0.0.33",
103
    "pypdf >= 6.5.0, == 6.*",
104
 
105
    # Robot Framework dependencies
106
    "robotframework >= 4.0.0",
107
 
108
    # Tree map graphs.
109
    "plotly",
110
    "pandas"
111
]
112
# @relation(SDOC-SRS-89, scope=range_end)
113
 
114
[project.optional-dependencies]
115
development = [
116
    # Development tasks
117
    "invoke>=1.4.1",
118
    "tox>=4.4.8",
119
]
120
nuitka = [
121
    # Nuitka:WARNING: Using very slow fallback for ordered sets, please install
122
    # 'ordered-set' PyPI package for best Python compile time performance.
123
    "nuitka",
124
    "ordered-set",
125
]
126
 
127
[project.scripts]
128
strictdoc = "strictdoc.cli.main:main"
129
 
130
[project.urls]
131
Changelog = "https://github.com/strictdoc-project/strictdoc/blob/main/CHANGELOG.md"
132
Homepage = "https://strictdoc.readthedocs.io/en/stable/"
133
Source = "https://github.com/strictdoc-project/strictdoc"
134
 
135
[tool.pytest.ini_options]
136
addopts = "--import-mode=importlib"
137
pythonpath = [
138
  "."
139
]
140
 
141
[tool.fixit]
142
enable = [
143
    ".developer.fixit.check_comments",
144
    ".developer.fixit.check_docstrings",
145
]
146
 
147
# FIXME: Remove disable.
148
disable = [
149
    "fixit.rules"
150
]