Files
BibAPI/pyproject.toml

138 lines
3.0 KiB
TOML

[project]
name = "bibapi"
version = "0.0.6"
description = "Add your description here"
readme = "README.md"
authors = [{ name = "WorldTeacher", email = "coding_contact@pm.me" }]
requires-python = ">=3.13"
dependencies = [
"regex>=2025.9.18",
"requests>=2.32.5",
]
[project.optional-dependencies]
# SRU API feature: for accessing library catalogs via SRU protocol
sru = ["requests>=2.32.5"]
# Catalogue feature: web scraping local library catalog
catalogue = ["requests>=2.32.5", "beautifulsoup4>=4.12.0"]
webrequest = ["bibapi[catalogue]", "ratelimit>=2.2.0"]
# Install all features
all = ["bibapi[sru,catalogue]"]
[build-system]
requires = ["uv_build >= 0.9.5, <0.10.0"]
build-backend = "uv_build"
[tool.bumpversion]
current_version = "0.0.6"
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
serialize = ["{major}.{minor}.{patch}"]
search = "{current_version}"
replace = "{new_version}"
regex = false
ignore_missing_version = false
ignore_missing_files = false
tag = true
sign_tags = false
tag_name = "v{new_version}"
tag_message = "Bump version: {current_version} → {new_version}"
allow_dirty = true
commit = true
message = "Bump version: {current_version} → {new_version}"
moveable_tags = []
commit_args = ""
setup_hooks = []
pre_commit_hooks = []
post_commit_hooks = []
[dependency-groups]
dev = [
"pylint>=4.0.3",
"pytest-mock>=3.15.1",
"types-pysocks>=1.7.1.20251001",
"types-regex>=2025.9.18.20250921",
"types-requests>=2.32.4.20250913",
"mypy>=1.18.2",
"pytest>=8.4.2",
"pytest-cov>=7.0.0",
"ratelimit>=2.2.0",
"beautifulsoup4>=4.12.0",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
markers = [
"integration: marks tests as integration tests (deselect with '-m \"not integration\"')",
]
[tool.coverage.run]
source = ["src"]
branch = true
omit = [
"*/tests/*",
"*/test_*.py",
"*/__pycache__/*",
"*/.venv/*",
"*/site-packages/*",
"test.py",
]
[tool.coverage.report]
precision = 2
show_missing = true
skip_covered = false
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise AssertionError",
"raise NotImplementedError",
"if __name__ == .__main__.",
"if TYPE_CHECKING:",
"@abstractmethod",
"@abc.abstractmethod",
]
[tool.coverage.html]
directory = "htmlcov"
[tool.mypy]
python_version = "3.13"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
disallow_incomplete_defs = false
check_untyped_defs = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
strict_equality = true
[[tool.mypy.overrides]]
module = "tests.*"
ignore_errors = true
[[tool.mypy.overrides]]
module = [
"regex.*",
"requests.*",
"bs4.*",
"ratelimit.*",
"pytest.*",
"pytest_mock.*",
"bibapi._transformers",
"bibapi.webrequest",
"bibapi.catalogue",
"bibapi.lehmanns",
"bibapi.schemas.bookdata",
"bibapi.sru",
]
ignore_missing_imports = true
ignore_errors = true