[build-system]
requires = ["maturin>=1.13.3,<2"]
build-backend = "maturin"

[project]
name = "bibsync"
description = "Synchronize BibTeX files from citation keys in LaTeX sources"
readme = "README.md"
requires-python = ">=3.12"
license = "BSD-3-Clause"
authors = [{ name = "Isaac C. F. Wong" }]
keywords = ["bibtex", "latex", "arxiv", "ads", "inspirehep"]
classifiers = [
  "Development Status :: 4 - Beta",
  "Environment :: Console",
  "Intended Audience :: Science/Research",
  "License :: OSI Approved :: BSD License",
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3.13",
  "Programming Language :: Python :: 3.14",
  "Programming Language :: Rust",
  "Topic :: Scientific/Engineering",
  "Topic :: Text Processing :: Markup :: LaTeX",
]
dynamic = ["version"]

[dependency-groups]
dev = ["pytest>=9.0.3", "ruff>=0.15.15", "prek>=0.4.3"]
build = ["maturin>=1.13.3,<2"]

[project.urls]
Homepage = "https://github.com/isaac-cf-wong/bibsync"
Documentation = "https://isaac-cf-wong.github.io/bibsync"
Repository = "https://github.com/isaac-cf-wong/bibsync"
Issues = "https://github.com/isaac-cf-wong/bibsync/issues"

[project.scripts]
bibsync = "bibsync:main"

[tool.maturin]
features = ["python", "pyo3/extension-module"]
module-name = "bibsync._bibsync"
python-source = "python"
strip = true

[tool.ruff]
line-length = 100
target-version = "py312"
fix = true
lint.extend-select = ["E", "F", "W", "I", "UP", "B", "A", "C4", "RUF", "SIM"]
lint.ignore = ["E501"]

[tool.ruff.format]
quote-style = "double"
indent-style = "space"
docstring-code-format = true

[tool.pytest.ini_options]
testpaths = ["tests/python"]
