Files
python-repositories/pyproject.toml
T
Brian Bjarke JensenandCursor 9df5032d44
Test Python Package / coverage-report (pull_request) Successful in 10s
PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 12s
Test Python Package / integration-tests (pull_request) Successful in 24s
Code Quality Pipeline / code-quality (pull_request) Successful in 51s
Add repository URL and Python 3.12 packaging metadata.
Co-authored-by: Cursor <[email protected]>
2026-07-10 19:46:21 +02:00

115 lines
3.0 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"
[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\"')",
]
[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",
]