[build-system]
requires = [
    "setuptools >= 65",
]
build-backend = "setuptools.build_meta"

[project]
name = "alexwlchan-chives"
description = "Utility functions for working with my local media archives"
readme = "README.md"
authors = [
  {name = "Alex Chan", email = "alex@alexwlchan.net"},
]
maintainers = [
  {name = "Alex Chan", email="alex@alexwlchan.net"},
]
classifiers = [
  "Development Status :: 4 - Beta",
  "Programming Language :: Python :: 3.13",
]
requires-python = ">=3.13"
dependencies = []
dynamic = ["version"]
license = "MIT"

[project.optional-dependencies]
fetch = ["certifi"]
media = ["Pillow"]
static_site_tests = ["playwright", "pytest", "rapidfuzz"]
text = ["smartypants"]
urls = ["certifi"]

[project.urls]
"Homepage" = "https://github.com/alexwlchan/chives"
"Changelog" = "https://github.com/alexwlchan/chives/blob/main/CHANGELOG.md"

[tool.setuptools.dynamic]
version = {attr = "chives.__version__"}

[tool.setuptools.packages.find]
where = ["src"]

[tool.coverage.run]
branch = true
source = ["chives", "tests",]

[tool.coverage.report]
show_missing = true
skip_covered = true
fail_under = 100

[tool.pytest.ini_options]
filterwarnings = ["error"]

[tool.mypy]
mypy_path = "src"
strict = true

[tool.ruff.lint]
select = ["D", "E", "F"]
ignore = [
    "D200",  # unnecessary-multiline-docstring
    "D203",  # incorrect-blank-line-before-class
    "D205",  # missing-blank-line-after-summary
    "D211",  # blank-line-before-class
    "D212",  # multi-line-summary-first-line
]
