[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "service_packages"
version = "4.0.10"
description = "Service laboratory packages"
readme = "README.md"

# https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires
requires-python = ">=3.12"

# https://packaging.python.org/en/latest/specifications/core-metadata/#license
license = { file = "LICENSE.txt" }
keywords = ["prototype", "setuptools", "development"]
authors = [{ name = "Alexei Rysev", email = "alexeirysev@gmail.com" }]
maintainers = [{ name = "Alexei Rysev", email = "alexeirysev@gmail.com" }]

classifiers = [
  "Development Status :: 3 - Alpha",
  "Intended Audience :: Developers",
  "Topic :: Software Development :: Build Tools",
  "License :: OSI Approved :: MIT License",
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3.13",
  "Programming Language :: Python :: 3 :: Only",
]

dependencies = [
    "litestar[standard]>=2.15.2",
    "pydantic-settings>=2.8.1",
    "pydantic>=2.11.3",
    "sqlalchemy>=2.0.40",
    "uvicorn>=0.34.1",
    "advanced-alchemy==1.4.4",
    "asyncpg>=0.30.0",
    "pytest>=8.4.2",
    "pytest-asyncio>=0.24.0",
    "pyjwt>=2.10.1",
    "bcrypt>=5.0.0",
    "pytest-cov>=7.0.0",
    "pytest-html>=4.1.1",
]

[tool.ruff]
builtins = ["_"]
line-length = 120

[tool.ruff.lint.pylint]
max-args = 10

[tool.ruff.lint.isort]
detect-same-package = true
force-sort-within-sections = true


[project.optional-dependencies]
dev = ["check-manifest"]
test = [
    "coverage",
    "pytest>=8.2.1",
    "pytest-asyncio==0.24.0",
]


[[tool.uv.index]]
name = "pypi"
url = "https://pypi.org/simple/"
publish-url = "https://pypi.org/legacy/"
explicit = true

[tool.hatch.build.targets.wheel]
packages = ["src/auth", "src/core"]
