[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\\d+)\\.(?P\\d+)\\.(?P\\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