-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
131 lines (121 loc) · 3.89 KB
/
Copy pathpyproject.toml
File metadata and controls
131 lines (121 loc) · 3.89 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
128
129
130
131
[build-system]
build-backend = "hatchling.build"
requires = [ "hatch-vcs", "hatchling" ]
[project]
name = "identify-passkey"
description = "Identifies a Passkey from its a AAGUID and tells you its friendly name and icon."
readme = "README.md"
keywords = [ "database", "fido2", "passkey", "security" ]
license = "BSD-3-Clause"
authors = [ { name = "Storm B. Heg", email = "storm@stormbase.digital" } ]
requires-python = ">=3.10"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Topic :: Communications :: FIDO",
"Topic :: Security",
"Topic :: Utilities",
]
dynamic = [ "version" ]
dependencies = []
urls.Changelog = "https://github.com/Stormbase/python-identify-passkey/blob/main/CHANGELOG.md"
urls.Issues = "https://github.com/Stormbase/python-identify-passkey/issues"
urls.Source = "https://github.com/Stormbase/python-identify-passkey"
[dependency-groups]
dev = [
"defusedxml>=0.7.1",
"pillow>=12",
"pytest>=9",
"ty>=0.0.56",
]
[tool.hatch]
version.source = "vcs"
build.hooks.vcs.version-file = "src/identify_passkey/_version.py"
build.targets.wheel.artifacts = [
# Version is generated during build and gitignored, make sure to include it
"src/identify_passkey/_version.py",
]
# Manually specify what to include, otherwise it becomes a mess
build.targets.sdist.include = [
"CHANGELOG.md",
"LICENSE",
"pyproject.toml",
"README.md",
"src/identify_passkey",
"tests/",
]
build.targets.sdist.artifacts = [
# Version is generated during build and gitignored, make sure to include it
"src/identify_passkey/_version.py",
]
envs.default.dependencies = [
"identify-passkey",
]
# Do not use Hatch default configuration
envs.hatch-static-analysis.dependencies = []
envs.hatch-static-analysis.config-path = "pyproject.toml"
[tool.ruff]
target-version = "py310" # minimum target version
lint.select = [
"B", # flake8-bugbear
"BLE", # flake8-blind-except
"C4", # flake8-comprehensions
"E", # pycodestyle errors
"F", # pyflakes
"G", # flake8-logging-format
"I", # isort
"INT", # flake8-gettext
"PGH", # pygrep-hooks
"PIE", # flake8-pie
"PT", # flake8-pytest-style
"RUF100", # unused noqa
"S", # flake8-bandit
"SIM", # flake8-simplify
"T20", # flake8-print
"UP", # pyupgrade
"W", # pycodestyle warnings
"YTT", # flake8-2020
]
lint.extend-ignore = [
"E501", # no line length errors
"SIM105", # https://docs.astral.sh/ruff/rules/suppressible-exception/
]
lint.per-file-ignores."tests/*" = [
"S101", # Bandit: Use of `assert` okay in tests
"SIM117", # flake8-simply: Using multiple nested `with` statements is often clearer in the context of tests
]
lint.fixable = [ "C4", "E", "F", "I", "UP" ]
lint.isort.known-first-party = [ "identify_passkey", "tests" ]
[tool.pytest]
ini_options.testpaths = "tests/"
ini_options.pythonpath = "identify_passkey"
[tool.coverage]
run.branch = true
run.omit = [ "*/tests/*" ]
run.source_pkgs = [ "identify_passkey" ]
report.exclude_lines = [
# Don't complain about abstract methods, they aren't run:
"@(abc.)?abstractmethod",
# Don't complain about missing debug-only code:
"def __repr__",
"if __name__ == .__main__.:",
# Don't complain if non-runnable code isn't run:
"if 0:",
"if self.debug",
# Nor complain about type checking
"if TYPE_CHECKING:",
# Have to re-enable the standard pragma
"pragma: no cover",
# Don't complain if tests don't hit defensive assertion code:
"raise AssertionError",
"raise NotImplementedError",
]