-
Notifications
You must be signed in to change notification settings - Fork 2
/
pyproject.toml
102 lines (90 loc) · 3.05 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
[build-system]
requires = ["setuptools>=75", "setuptools-scm>=8"]
build-backend = "setuptools.build_meta"
[project]
name = "pass-commander"
requires-python = ">=3.10"
license = {text = "GPL-3.0"}
dynamic = ["version"]
dependencies = [
"APScheduler >= 3.9.1",
"jeepney >= 0.8.0",
"pyephem >= 9.99",
"requests >= 2.32.0",
"ephem >= 4.1.4",
"tomlkit >= 0.13.2",
]
[project.optional-dependencies]
dev = [
"build >= 1.2.2",
"mypy >= 0.942",
"pytest >= 8.3.3",
"types-requests >= 2.25",
"ruff >= 0.8.0",
]
[project.scripts]
pass-commander = "pass_commander.main:main"
[tool.mypy]
ignore_missing_imports = true
[tool.ruff]
line-length = 100
[tool.ruff.format]
quote-style = "preserve"
[tool.ruff.lint]
select = ["ALL"]
ignore = [
# See https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules
"Q000", # bad-quotes-multiline-string
"Q002", # bad-quotes-docstringa
"D300", # triple-single-quotes
"COM812", # prohibited-trailing-comma
"ISC001", # single-line-implicit-string-concatenation
# FIXME: These should be turned back on but :effort:
"D100", # undocumented-public-module
"D101", # undocumented-public-class
"D102", # undocumented-public-method
# D203, and D213 conflict with D211 and D212, prefer the latter which
# follow PEP257
"D203", # one-blank-line-before-class
"D213", # multi-line-summary-second-line
# Allow FIXMEs etc, but don't be too rigid about formatting. Consider not
# ignoring FIX here so local runs point them out but ignoring them in CI
# runs so they don't block commits.
"FIX", # flake8-fixme
"TD001", # invalid-todo-tag
"TD002", # missing-todo-author
"TD003", # missing-todo-link
"TD004", # missing-todo-colon
# These are the opposite of what I want, more info in exceptions is better
"EM101", # raw-string-in-exception
"EM102", # f-string-in-exception
# Blank line at the end of docstrings? nothanks
"D413", # blank-line-after-last-section
# This might be good to turn on later, right now I'm on the fence about it
"TRY003", # raise-vanilla-args
]
[tool.ruff.lint.per-file-ignores]
# Test specific lint ignores. These files are not part of the main
# pass-commander application
"tests/**/test_*.py" = [
"S101", # assert - pytest prefers plain assert
]
"!{pass_commander/**,tests/**/test_*.py}" = [
# Small testing scripts don't need a full blown logger. Regular unit tests
# should still avoid print() though.
"T201", # print
]
[tool.ruff.lint.flake8-bugbear]
# Workaround for B008 being a bit limited. AzEl is a tuple, immutable, but this
# lint can't see it yet. See https://github.com/astral-sh/ruff/issues/12717
# Remove this line when resolved.
extend-immutable-calls = [
"pass_commander.config.AzEl", # a tuple, immutable
"ephem.degrees", # This is hashable so probably immutable
"ipaddress.IPv4Address", # hashable
]
[tool.setuptools_scm]
# This page intentionally left blank
# When PEP-725 gets accepted
# [external]
# dependencies = [ "pkg:generic/python3-hamlib" ]