138 lines
3.0 KiB
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
|