-
Notifications
You must be signed in to change notification settings - Fork 12
/
pyproject.toml
134 lines (118 loc) · 4.04 KB
/
pyproject.toml
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[build-system]
requires = ["setuptools>=64", "setuptools_scm>=8"]
build-backend = "setuptools.build_meta"
[project]
name = "fromager"
authors = [
{ name = "Mark McLoughlin", email = "markmc@redhat.com" },
{ name = "Doug Hellmann", email = "dhellmann@redhat.com" },
]
description = "Wheel maker"
readme = "README.md"
dynamic = ["version", "dependencies", "optional-dependencies"]
license = { file = "LICENSE" }
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Utilities",
]
requires-python = ">=3.11"
[tool.setuptools.dynamic]
optional-dependencies.build = { file = ["requirements-build.txt"] }
optional-dependencies.mypy = { file = ["requirements-mypy.txt"] }
optional-dependencies.test = { file = ["requirements-test.txt"] }
optional-dependencies.docs = { file = ["docs/requirements.txt"] }
dependencies = { file = ["requirements.txt"] }
[project.urls]
Repository = "https://github.com/python-wheel-build/fromager"
Documentation = "https://fromager.readthedocs.io/en/latest/"
[project.scripts]
fromager = "fromager.__main__:invoke_main"
[project.entry-points."fromager.override_methods"]
# override methods and their default implementations
get_build_system_dependencies = "fromager.dependencies:default_get_build_system_dependencies"
get_build_backend_dependencies = "fromager.dependencies:default_get_build_backend_dependencies"
get_build_sdist_dependencies = "fromager.dependencies:default_get_build_sdist_dependencies"
resolver_provider = "fromager.resolver:default_resolver_provider"
download_source = "fromager.sources:default_download_source"
resolve_source = "fromager.sources:default_resolve_source"
build_sdist = "fromager.sources:default_build_sdist"
build_wheel = "fromager.wheels:default_build_wheel"
[tool.coverage.run]
branch = true
parallel = true
relative_files = true
source = ["fromager", "tests/"]
[tool.coverage.paths]
source = ["src/fromager", ".tox/**/site-packages/fromager"]
tests = ["tests/"]
[tool.coverage.report]
show_missing = true
skip_covered = true
exclude_lines = [
"pragma: no cover",
"@abc.abstractmethod",
"@typing.overload",
"if typing.TYPE_CHECKING",
]
[tool.setuptools_scm]
version_file = "src/fromager/version.py"
[tool.ruff]
target-version = "py311"
# same as black's default line length
line-length = 88
exclude = [
"src/fromager/version.py", # file is generated dynamically, out of our control
]
[tool.ruff.lint]
# Allow fix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []
select = [
"B", # flake8-bugbear
"E", # pycodestyle
"F", # pyflakes
"Q", # flake8-quotes
"I", # isort
"N", # pep8-naming
"W", # pycodestyle
"RUF", # ruff-specific rules
"UP", # pyupgrade
"TID", # flake8-tidy-imports
]
ignore = [
"E501", # Line too long
"RUF005", # Consider iterable unpacking instead of concatenation
"TID252", # Prefer absolute imports over relative imports from parent modules
"UP015", # Unnecessary open mode parameters
]
[tool.ruff.lint.isort]
known-first-party = ["fromager"]
[tool.mypy]
mypy_path = ["src"]
# TODO: tighten type checks
# check_untyped_defs = true
# disallow_incomplete_defs = true
# disallow_untyped_defs = true
# warn_return_any = true
# TODO: remove excludes and silent follow
follow_imports = "silent"
exclude = [
"^src/fromager/sources\\.py$",
"^src/fromager/sdist\\.py$",
"^src/fromager/commands/build\\.py$",
"^src/fromager/settings\\.py$",
]
[[tool.mypy.overrides]]
# packages without typing annotations and stubs
module = ["pyproject_hooks", "requests_mock", "resolver", "stevedore"]
ignore_missing_imports = true