Aligned CI workflows and pyproject.toml with cross-project infrastructure conventions.
CI / Formatting (push) Successful in 4s
CI / Linting (push) Successful in 4s
CI / Tests (push) Successful in 5s
CI / Type Checking (push) Successful in 9s
CI / Spelling (push) Successful in 4s
Audit / Dependencies (push) Successful in 8s

This commit is contained in:
2026-03-14 17:45:07 -04:00
parent 51f33a8dac
commit 34ae3b3e64
5 changed files with 54 additions and 71 deletions
+20 -23
View File
@@ -2,11 +2,11 @@
name = "crabstero"
dynamic = ["version"]
description = "The simple nonversation Discord bot."
license = "Apache-2.0"
requires-python = ">=3.14"
authors = [
{ name = "Logan Fick" },
]
license = "Apache-2.0"
requires-python = ">=3.14"
dependencies = [
"discord.py>=2.6.4",
"aiosqlite>=0.22.1",
@@ -18,25 +18,25 @@ crabstero = "crabstero.__main__:main"
[project.urls]
Repository = "https://git.logal.dev/LogalDeveloper/Crabstero"
[build-system]
requires = ["hatchling>=1.28.0", "hatch-vcs>=0.5.0"]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
"codespell>=2.4.2",
"mypy>=1.19.1",
"pip-audit>=2.10.0",
"pytest>=9.0.2",
"pytest-asyncio>=1.3.0",
"pytest-cov>=7.0.0",
"mypy>=1.18.1",
"ruff>=0.15.1",
"pip-audit>=2.10.0",
"codespell>=2.4.1",
"ruff>=0.15.5",
]
[tool.uv]
extra-index-url = ["https://git.logal.dev/api/packages/LogalDeveloper/pypi/simple/"]
publish-url = "https://git.logal.dev/api/packages/LogalDeveloper/pypi"
[build-system]
requires = ["hatchling>=1.28.0", "hatch-vcs>=0.5.0"]
build-backend = "hatchling.build"
[tool.hatch.version]
source = "vcs"
@@ -52,13 +52,9 @@ strict = true
warn_unreachable = true
explicit_package_bases = true
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
[tool.ruff]
target-version = "py314"
extend-exclude = ["crabstero/_version.py"]
extend-exclude = ["crabstero/_version.py"] # auto-generated by hatch-vcs
[tool.ruff.lint]
select = [
@@ -98,7 +94,7 @@ select = [
"T20", # flake8-print
"ERA", # eradicate
"PGH", # pygrep-hooks
"TCH", # flake8-type-checking
"TC", # flake8-type-checking
# Testing
"PT", # flake8-pytest-style
@@ -111,20 +107,21 @@ ignore = [
"D213", # incompatible with D212 (summary on first line)
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
[tool.ruff.lint.per-file-ignores]
"crabstero/__init__.py" = ["E402"] # constants defined before imports intentionally
"crabstero/__main__.py" = ["T201"] # CLI entry point uses print() for user output
"tests/**" = ["S101", "S311"] # assert is standard for pytest; random is fine in tests
[tool.codespell]
skip = "crabstero/_version.py,uv.lock"
"tests/**" = ["S101"] # assert is standard for pytest
[tool.coverage.run]
source = ["crabstero"]
omit = [
"crabstero/_version.py",
]
omit = ["crabstero/_version.py"]
[tool.coverage.report]
show_missing = true
skip_empty = true
[tool.codespell]
skip = "uv.lock"