Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
86 lines (70 loc) · 2.48 KB
/
Copy pathpyproject.toml
File metadata and controls
86 lines (70 loc) · 2.48 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
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "fallow4python"
description = "Codebase intelligence for Python: orchestrate quality tools, correlate the signals, audit changed code, one report."
readme = "README.md"
requires-python = ">=3.9"
license = { text = "MIT" }
authors = [{ name = "AW" }]
keywords = ["linting", "static-analysis", "code-quality", "ci", "sarif", "dead-code", "complexity"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development :: Quality Assurance",
]
dynamic = ["version"]
# The fallow4python package is pure standard library. These dependencies are the
# analyzers it orchestrates as subprocesses (never imported), pinned to
# compatible lower bounds so `pip install fallow4python` works out of the box.
dependencies = [
"ruff>=0.5",
"mypy>=1.8",
"vulture>=2.10",
"radon>=6.0",
"deptry>=0.16",
"xenon>=0.9",
"import-linter>=2.0",
"coverage>=7.0"
]
[project.optional-dependencies]
full = ["import-linter>=2.0", "coverage>=7.0"]
dev = ["pytest>=7.0", "coverage>=7.0"]
[project.scripts]
fallow4python = "fallow4python.cli:main"
[project.urls]
Homepage = "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/your-org/fallow4python"
Issues = "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/your-org/fallow4python/issues"
[tool.setuptools]
package-dir = { "" = "src" }
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.dynamic]
version = { attr = "fallow4python.__version__" }
[tool.setuptools.package-data]
fallow4python = ["py.typed"]
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.coverage.run]
source = ["fallow4python"]
branch = false
[tool.coverage.report]
show_missing = true
# fallow4python runs these analyzers as subprocesses; they are genuine runtime
# dependencies but are never imported, so deptry's "unused" check (DEP002) is a
# false positive for them. fallow4python is the first-party package, so its use
# inside the test suite is not a transitive dependency (DEP003).
[tool.deptry]
known_first_party = ["fallow4python"]
extend_exclude = ["tests"]
[tool.deptry.per_rule_ignores]
DEP002 = ["ruff", "mypy", "vulture", "radon", "deptry", "xenon", "import-linter", "coverage", "pytest"]
[tool.mypy]
[[tool.mypy.overrides]]
module = ["pytest", "_pytest.*"]
ignore_missing_imports = true