Split Redis and MinIO container setup into backend-specific conftest modules so only the containers needed for collected tests are imported and started. Co-authored-by: Cursor <[email protected]>
119 lines
3.3 KiB
TOML
119 lines
3.3 KiB
TOML
[project]
|
|
name = "python-repositories"
|
|
version = "2.0.4"
|
|
description = "Various python repository interfaces exposed as a python package."
|
|
authors = [
|
|
{ name = "Brian Bjarke Jensen", email = "[email protected]" }
|
|
]
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
license = { text = "MIT" }
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.12",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
]
|
|
dependencies = [
|
|
"python-dotenv>=1.0.0",
|
|
"python-utils>=0.1.0",
|
|
"structlog>=25.4.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Repository = "https://gitea.lille-vemmelund.dk/LilleVemmelund/python-repositories"
|
|
Changelog = "https://gitea.lille-vemmelund.dk/LilleVemmelund/python-repositories/src/branch/main/CHANGELOG.md"
|
|
Releases = "https://gitea.lille-vemmelund.dk/LilleVemmelund/python-repositories/releases"
|
|
|
|
[project.optional-dependencies]
|
|
redis = [
|
|
"redis>=6.4.0",
|
|
]
|
|
minio = [
|
|
"minio>=7.2.16",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
pythonpath = ["."]
|
|
addopts = "--import-mode=importlib"
|
|
markers = [
|
|
"integration: tests requiring Docker containers (deselect with '-m \"not integration\"')",
|
|
"needs_redis: integration test requiring a Redis container",
|
|
"needs_minio: integration test requiring a MinIO container",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["python_repositories"]
|
|
|
|
[tool.coverage.report]
|
|
fail_under = 100
|
|
show_missing = true
|
|
precision = 2
|
|
|
|
[tool.uv.sources]
|
|
python-utils = { index = "gitea" }
|
|
|
|
[[tool.uv.index]]
|
|
name = "threadripper-proxpi-cache"
|
|
url = "https://proxpi.lille-vemmelund.dk/index/"
|
|
default = true
|
|
|
|
[[tool.uv.index]]
|
|
name = "gitea"
|
|
url = "https://gitea.lille-vemmelund.dk/api/packages/brian/pypi/simple/"
|
|
explicit = true
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
target-version = "py312"
|
|
|
|
[tool.ruff.lint]
|
|
extend-select = ["I"]
|
|
|
|
[tool.ruff.lint.isort]
|
|
known-first-party = ["python_repositories", "tests"]
|
|
combine-as-imports = true
|
|
force-sort-within-sections = true
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
warn_return_any = true # nudge to use stricter types
|
|
warn_unused_configs = true # nudge to remove unused configs
|
|
disallow_untyped_defs = true # disallow untyped function definitions
|
|
disallow_incomplete_defs = true # ensure all parts of a function has type annotation
|
|
check_untyped_defs = true # dont skip untyped functions
|
|
disallow_untyped_decorators = false # allow untyped decorators to keep code more readable
|
|
no_implicit_optional = true # disallow implicit optional types leading to None-mess
|
|
warn_redundant_casts = true # nudge to use explicit type casts
|
|
warn_unused_ignores = true # nudge to remove unused ignores
|
|
warn_no_return = true # catch missing return statements
|
|
warn_unreachable = true # catch unreachable code
|
|
show_error_codes = true # show error codes in output
|
|
explicit_package_bases = true # reduce risk of import confusion
|
|
namespace_packages = true # enable namespace packages
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "testcontainers.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "minio.*"
|
|
ignore_missing_imports = true
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"mypy>=2.1.0",
|
|
"pre-commit>=4.6.0",
|
|
"pytest>=8.4.1",
|
|
"pytest-cov>=7.0.0",
|
|
"pyupgrade>=3.21.2",
|
|
"ruff>=0.15.20",
|
|
"safety>=3.6.0",
|
|
"testcontainers>=4.13.0",
|
|
]
|