-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathpyproject.toml
More file actions
121 lines (109 loc) · 2.89 KB
/
pyproject.toml
File metadata and controls
121 lines (109 loc) · 2.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
[project]
name = "python-omnilogic-local"
version = "0.25.2"
description = "A library for local control of Hayward OmniHub/OmniLogic pool controllers using their local API"
readme = "README.md"
requires-python = ">=3.14.2"
authors = [
{name = "Chris Jowett",email = "421501+cryptk@users.noreply.github.com"},
{name = "djtimca"},
{name = "garionphx"}
]
license-files = ["LICENSE"]
dependencies = [
"pydantic >=2.0.0,<3.0.0",
"xmltodict >=1.0.1,<2.0.0",
]
[project.scripts]
omnilogic = "pyomnilogic_local.cli.cli:entrypoint"
[project.optional-dependencies]
cli = [
"scapy>=2.6.1,<3.0.0",
"click >=8.0.0,<9.0.0",
]
build = [
"uv ~= 0.11.6"
]
[build-system]
requires = ["uv_build>=0.11.6,<0.12.0"]
build-backend = "uv_build"
[dependency-groups]
dev = [
"mypy>=1.18.2,<2.0.0",
"types-xmltodict >=1.0.1,<2.0.0",
"pytest>=9.0.0,<10.0.0",
"pytest-cov>=7.0.0,<8.0.0",
"pytest-asyncio>=1.2.0,<2.0.0",
"prek>=0.3.9",
]
[tool.mypy]
python_version = "3.14"
plugins = [
"pydantic.mypy"
]
# follow_imports = "silent"
strict = true
ignore_missing_imports = true
disallow_subclassing_any = false
warn_return_any = false
[tool.ruff]
line-length = 140
[tool.ruff.lint]
select = [
"ERA", # eradicate commented code
"ASYNC", # flake8-async
"B", # flake8-bugbear
"A", # flake8-builtins
"EM", # flake8-errmsg
"FIX", # flake8-fixme
"ISC", # flake8-implicit-str-concat
"LOG", # flake8-logging
"G", # flake8-logging-format
"INP", # flake8-no-pep420
"PIE", # flake8-pie
"T20", # flake8-print
"Q", # flake8-quotes
"RSE", # flake8-raise
"RET", # flake8-return
"SIM", # flake8-simplify
"PTH", # flake8-use-pathlib
"TID252", # flake8-tidy-imports
"TD", # flake8-todos
"TC", # flake8-type-checking
"ARG", # flake8-unused-arguments
"I", # isort
"N", # pep8-naming
"PERF", # perflint
"E", # pycodestyle errors
"W", # pycodestyle warnings
# "DOC", # pydoclint, only available with ruff preview mode enabled
"D", # pydocstyle
"F", # pyflakes
"UP", # pyupgrade
"RUF", # ruff-specific rules
"TRY",
]
ignore = [
"D100", # Disabled until we get everything documented.
"D101", # Disabled until we get everything documented.
"D102", # Disabled until we get everything documented.
"D107", # Disabled until we get everything documented.
]
future-annotations = true
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.semantic_release]
branch = "main"
version_toml = ["pyproject.toml:project.version"]
allow_zero_version = true
build_command = """
python -m pip install -e '.[build]'
uv lock --upgrade-package "$PACKAGE_NAME"
git add uv.lock
uv build
"""
[tool.uv]
package = true
[tool.uv.build-backend]
module-name = "pyomnilogic_local"
module-root = ""