-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
128 lines (110 loc) · 2.88 KB
/
pyproject.toml
File metadata and controls
128 lines (110 loc) · 2.88 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
118
119
120
121
122
123
124
125
126
127
[build-system]
requires = ["setuptools~=69.0", "wheel~=0.42.0"]
build-backend = "setuptools.build_meta"
[project]
name = "itsUP"
version = "2.1.1"
license = { text = "GPL-3.0-only" }
authors = [{ name = "Maurice Faber", email = "morriz@idiotz.nl" }]
description = "Lean, automated, poor man's infra for lightweight services running in docker."
readme = "README.md"
classifiers = [
"Framework :: FastAPI",
"Intended Audience :: System Administrators",
"Programming Language :: Python :: 3.11",
"Typing :: Typed",
"Topic :: Software Development :: Build Tools",
]
keywords = ["github", "webhooks", "fastapi"]
dynamic = ["dependencies", "optional-dependencies"]
requires-python = ">=3.11"
[project.urls]
homepage = "https://github.com/morriz/github-webhooks"
"Source Code" = "https://github.com/morriz/github-webhooks"
"Bug Tracker" = "https://github.com/morriz/github-webhooks/issues"
[tool.black]
line-length = 120
preview = true
target-version = ["py311"]
[tool.isort]
profile = "black"
[tool.mypy]
check_untyped_defs = true
disable_error_code = ["import-untyped"]
disallow_any_generics = true
disallow_untyped_defs = true
exclude = ["^.venv/"]
files = ["**/*.py"]
follow_imports = "skip"
plugins = "pydantic.mypy"
python_version = "3.11"
strict_optional = false
warn_redundant_casts = true
warn_unused_ignores = true
[tool.pydantic-mypy]
init_forbid_extra = true
warn_untyped_fields = true
[tool.pylint.'MESSAGES CONTROL']
# CRITICAL: import-outside-toplevel is enforced via --fail-on flag in bin/lint.sh
# ALL imports MUST be at the top of the file (see CLAUDE.md)
disable = [
"invalid-name",
"logging-fstring-interpolation",
"missing-docstring",
"missing-module-docstring",
"missing-timeout",
"no-name-in-module",
"redefined-builtin",
"too-few-public-methods",
"too-many-arguments",
"unused-argument",
"wrong-import-position",
]
[tool.pylint.'FORMAT']
max-line-length = 120
[tool.pylint.'MASTER']
extension-pkg-allow-list = ["netifaces"]
[tool.pyproject-fmt]
indent = 4
keep_full_version = false
max_supported_python = "3.13"
[tool.setuptools.dynamic]
dependencies = { file = ["requirements-prod.txt"] }
optional-dependencies = { test = { file = ["requirements-test.txt"] } }
[tool.pytest.ini_options]
testpaths = ["commands", "lib", "tests"]
norecursedirs = [
"upstream",
".venv",
".git",
"*.egg",
"build",
"dist",
"dns",
"proxy",
"projects",
"secrets",
]
python_files = ["*_test.py", "test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = "--strict-markers --tb=short"
[tool.coverage.run]
source = ["commands", "lib", "bin"]
omit = [
"*_test.py",
"*/tests/*",
"*/.venv/*",
"*/upstream/*",
]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise AssertionError",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
"class .*\\bProtocol\\):",
"@(abc\\.)?abstractmethod",
]