Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
117 lines (105 loc) · 3.02 KB
/
Copy pathpyproject.toml
File metadata and controls
117 lines (105 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
[build-system]
requires = ["setuptools>=77", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "onot"
version = "1.2.0"
description = "Generate open source software notices from SBOM/SPDX documents"
readme = "README.md"
requires-python = ">=3.11"
license = "Apache-2.0"
license-files = ["LICENSE"]
authors = [{ name = "onot contributors" }]
maintainers = [
{ name = "Hyunmin Han" },
{ name = "Haksung Jang" },
]
keywords = [
"sbom",
"spdx",
"cyclonedx",
"oss",
"open-source",
"license",
"compliance",
"notice",
"attribution",
]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Legal Industry",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development",
"Topic :: Software Development :: Libraries :: Python Modules",
"Typing :: Typed",
]
dependencies = [
"pydantic[email]>=2.13.4",
"pydantic-settings>=2.2",
"license-expression>=30.4.4",
"httpx>=0.27",
"platformdirs>=4",
"jinja2>=3.1.6",
"pyyaml>=6",
"typer>=0.12",
"defusedxml>=0.7",
]
[project.optional-dependencies]
spdx = ["spdx-tools>=0.8"]
cyclonedx = ["cyclonedx-python-lib>=11.7.0"]
excel = ["openpyxl>=3.1"]
api = ["fastapi>=0.136.3", "uvicorn[standard]>=0.29", "python-multipart>=0.0.9"]
pdf = ["weasyprint>=61"]
dev = [
"pytest>=8",
"pytest-cov>=7.1.0",
"ruff>=0.8",
"respx>=0.21",
"mypy>=1.13",
]
all = [
"onot[spdx,cyclonedx,excel,api]",
]
[project.urls]
Homepage = "https://github.com/sktelecom/onot"
Repository = "https://github.com/sktelecom/onot"
Issues = "https://github.com/sktelecom/onot/issues"
Changelog = "https://github.com/sktelecom/onot/blob/main/CHANGELOG.md"
[project.scripts]
onot = "onot.cli.main:app"
onot-sidecar = "onot.api.serve:main"
[tool.setuptools.packages.find]
where = ["src"]
include = ["onot*"]
[tool.setuptools.package-data]
onot = ["py.typed", "license/data/**/*", "rendering/templates/**/*", "rendering/themes/**/*", "rendering/i18n/*"]
[tool.ruff]
line-length = 100
target-version = "py311"
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "C4", "SIM", "PTH"]
ignore = ["E501"] # line length handled by formatter
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["B011"]
"src/onot/cli/*" = ["B008"] # Typer's official pattern calls Option() in default values
"src/onot/api/*" = ["B008"] # FastAPI's official pattern calls File()/Form() in default values
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
addopts = "-q"
[tool.mypy]
files = ["src/onot"]
python_version = "3.11"
# Many dependencies (spdx-tools/weasyprint/license-expression, etc.) do not provide
# type stubs, so we focus on the type consistency of onot's own code.
ignore_missing_imports = true
[tool.coverage.run]
source = ["onot"]
branch = true