Files
worblehat/pyproject.toml
T

126 lines
2.8 KiB
TOML

[project]
name = "worblehat"
dynamic = ["version"]
description = "Worblehat is a simple library management system written specifically for Programvareverkstedet"
authors = [
{ name = "Programvareverkstedet", email = "projects@pvv.ntnu.no" }
]
license = { file = "LICENSE" }
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"alembic>=1.16",
"beautifulsoup4>=4.14",
"click>=8.2",
"flask-admin>=1.6",
"flask-sqlalchemy>=3.1",
"flask>=3.0",
"isbnlib>=3.10",
"libdib",
"psycopg2-binary>=2.9",
"requests>=2.32",
"sqlalchemy>=2.0",
]
[dependency-groups]
dev = [
"werkzeug",
"poethepoet",
]
test = [
"coverage-badge>=1.1.2",
"pytest>=9.0.3",
"pytest-cov>=7.1.0",
"pytest-html>=4.2.0",
# coverage-badge 1.1.2 imports pkg_resources, which setuptools removed in 82.0.0.
# see https://github.com/dbrgn/coverage-badge/pull/35
"setuptools<82",
"sqlparse>=0.5.5",
]
[project.scripts]
worblehat = "worblehat:main"
[build-system]
build-backend = "setuptools.build_meta"
requires = [
"setuptools",
"setuptools-scm",
]
[tool.setuptools.packages.find]
where = ["src"]
include = ["worblehat*"]
[tool.setuptools.package-dir]
"" = "src"
[tool.setuptools_scm]
version_file = "src/worblehat/_version.py"
[tool.poe.tasks]
clean = """
rm -rf
./**/__pycache__
./**/worblehat.sqlite
"""
# Migration related
genmigration = "alembic revision --autogenerate -m"
migrate = "alembic upgrade head"
downmigrate = "alembic downgrade -1"
# Be careful with cleanmigrations. If you run migrate a database and then
# delete the migration file with this, there will be no easy way of downgrading
cleanmigrations = "git clean -f src/worblehat/models/migrations/versions"
[tool.uv.sources]
libdib = { git = "https://git.pvv.ntnu.no/Projects/libdib.git" }
[tool.black]
line-length = 100
[tool.ruff]
line-length = 100
[tool.ruff.lint]
select = [
"A", # flake8-builtins
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"COM", # flake8-commas
"ANN",
# "E", # pycodestyle
# "F", # Pyflakes
"FA", # flake8-future-annotations
"I", # isort
"S", # flake8-bandit
"ICN", # flake8-import-conventions
"ISC", # flake8-implicit-str-concat
# "N", # pep8-naming
"PTH", # flake8-use-pathlib
"RET", # flake8-return
"SIM", # flake8-simplify
"TC", # flake8-type-checking
"UP", # pyupgrade
"YTT", # flake8-2020
]
ignore = [
# "E501", # line too long
"S101", # assert detected
# "S311", # non-cryptographic random generator
]
[tool.ruff.lint.flake8-annotations]
suppress-dummy-args = true
ignore-fully-untyped = true
[tool.pytest.ini_options]
addopts = [
"--cov=worblehat.queries",
"--cov-report=html",
"--cov-branch",
"--self-contained-html",
"--html=./test-report/index.html",
]