https://github.com/byceps/byceps
Revision e6de5c6813f0f20a555b19347f248f29add50079 authored by Jochen Kupperschmidt on 08 February 2025, 23:20:01 UTC, committed by Jochen Kupperschmidt on 11 February 2025, 09:38:17 UTC
1 parent 3905390
Tip revision: e6de5c6813f0f20a555b19347f248f29add50079 authored by Jochen Kupperschmidt on 08 February 2025, 23:20:01 UTC
Fail early
Fail early
Tip revision: e6de5c6
pyproject.toml
[project]
name = "BYCEPS"
version = "0.0"
requires-python = ">=3.11"
authors = [
{ name = "Jochen Kupperschmidt", email = "homework@nwsnet.de" },
]
description = "LAN party web platform"
readme = "README.rst"
license = { text = "Revised BSD License" }
keywords = [ "lanparty" ]
classifiers = [
"Environment :: Web Environment",
"Framework :: Flask",
"Intended Audience :: Developers",
"Intended Audience :: Other Audience",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Natural Language :: German",
"Programming Language :: JavaScript",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Topic :: Communications",
"Topic :: Games/Entertainment",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Message Boards",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content :: News/Diary",
]
dependencies = [
"babel>=2.17.0",
"bbcode==1.1.0",
"blinker>=1.9.0",
"bpython>=0.25",
"click>=8.1.8",
"flask-babel==4.0.0",
"flask-sqlalchemy==3.1.1",
"flask>=3.1.0",
"hiredis>=3.1.0",
"httpx[http2]>=0.28.1",
"itsdangerous==2.2.0",
"jinja2>=3.1.5",
"markupsafe==3.0.2",
"mistletoe==1.4.0",
"paypal-checkout-serversdk==1.0.3",
"paypalhttp==1.0.1",
"pillow>=11.1.0",
"psycopg[binary]>=3.2.4",
"py-moneyed==3.0",
"pydantic>=2.10.6",
"qrcode==8.0",
"redis>=5.2.1",
"rq-dashboard>=0.8.2.2",
"rq>=2.1.0",
"rtoml==0.12.0",
"schwifty>=2025.1.0",
"sentry-sdk[flask,httpx,rq,sqlalchemy]>=2.20.0",
"sqlalchemy>=2.0.38",
"stripe==5.4.0",
"structlog>=25.1.0",
"tenacity==9.0.0",
"uuid6==2024.7.10",
"werkzeug>=3.1.3",
"wtforms==3.2.1",
"python-dotenv>=1.0.1",
]
[dependency-groups]
dev = [
"flask-debugtoolbar==0.16.0",
"mypy>=1.14.1",
"ruff>=0.9.1",
"types-freezegun==1.1.10",
"types-redis==4.6.0.20241004",
]
docs = [
"furo==2024.8.6",
"sphinx==8.1.3",
]
test = [
"coverage>=7.6.11",
"freezegun==1.5.1",
"pytest>=8.3.4",
"respx>=0.22.0",
]
[project.optional-dependencies]
wsgiserver = [
"uwsgi>=2.0.28",
]
[project.scripts]
byceps = "byceps.cli.cli:cli"
[project.urls]
Homepage = "https://byceps.nwsnet.de/"
Documentation = "https://byceps.readthedocs.io/"
Repository = "https://github.com/byceps/byceps"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.mypy]
python_version = "3.11"
plugins = "sqlalchemy.ext.mypy.plugin"
ignore_missing_imports = true
no_implicit_optional = true
[tool.pytest.ini_options]
addopts = "-vv -ra"
testpaths = [ "tests/unit", "tests/integration" ]
[tool.ruff]
line-length = 80
[tool.ruff.format]
quote-style = "single"
line-ending = "lf"
[tool.ruff.lint]
select = [
"B",
"E",
"EXE",
"F",
"G",
"ICN",
"ISC",
"PLE",
"PLW",
"PTH",
"PYI",
"Q",
"RSE",
"S",
"TID",
"UP",
"W",
"YTT",
]
ignore = [
"E501", # Line too long
"ISC001", # Conflict with Ruff's formatter
"Q001", # Conflict with Ruff's formatter
"W291", # Trailing whitespace (because of email signature, `-- `)
]
[tool.ruff.lint.flake8-quotes]
inline-quotes = "single"
multiline-quotes = "single"
[tool.ruff.lint.isort]
combine-as-imports = true
force-sort-within-sections = true
forced-separate = [ "tests" ]
lines-after-imports = 2
order-by-type = false
[tool.ruff.lint.per-file-ignores]
"tests/**/*.py" = [ "S101", "S105", "S106", "S107" ]
[tool.uv]
default-groups = []
required-version = ">=0.5.20"

Computing file changes ...