[project]
name = "spin"
requires-python = ">=3.8"
description = "Developer tool for scientific Python libraries"
readme = "README.md"
license = {file = "LICENSE"}
maintainers = [
  {name = "Scientific Python", email = "spin@discuss.scientific-python.org"}
]
classifiers = [
  "Development Status :: 4 - Beta",
  "Programming Language :: Python",
  "Intended Audience :: Developers",
  "Intended Audience :: Science/Research",
  "License :: OSI Approved :: BSD License",
  "Operating System :: OS Independent",
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.8",
  "Programming Language :: Python :: 3.9",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3 :: Only",
]
dependencies = [
  "click",
  "tomli; python_version < '3.11'",
  "colorama; platform_system == 'Windows'",
  "importlib_metadata >= 7"
]
dynamic = ['version']

[project.scripts]
spin = "spin.__main__:main"

[project.optional-dependencies]
lint = ["pre-commit == 3.8.0"]
dev = ["changelist == 0.5"]

[project.urls]
homepage = "https://github.com/scientific-python/spin"

[tool.changelist]
ignored_user_logins = ["dependabot[bot]", "pre-commit-ci[bot]", "web-flow"]

[tool.setuptools.dynamic.version]
attr = 'spin.__version__'

[tool.setuptools.packages.find]
include = ["spin*"]

[tool.pytest.ini_options]
minversion = "8.0"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
xfail_strict = true
filterwarnings = [
  "ignore:cannot collect 'test' because it is not a function:",
]
log_cli_level = "info"

[tool.ruff.lint]
select = [
    "C",
    "E",
    "F",
    "W",
    "B",
    "I",
    "C4",
    "ISC",
    "PGH",
    "UP",
    "FURB",
    "PYI",
]
ignore = ["B006", "C901", "E501", "E722"]
