[project]
name = "fastoai"
version = "1.0.3"
description = "Start an API server as OpenAI's"
authors = [
    { name = "Tang Ziya", email = "tcztzy@gmail.Com" }
]
dependencies = [
    "aiosqlite>=0.21.0",
    "anthropic>=0.45.2",
    "asyncpg>=0.30.0",
    "asyncstdlib>=3.13.0",
    "bcrypt>=4.2.1",
    "fastapi[standard]>=0.115.8",
    "fsspec[full]>=2025.2.0",
    "loguru>=0.7.3",
    "openai>=1.61.1",
    "pydantic-settings>=2.7.1",
    "pydantic[email]>=2.10.6",
    "ruff>=0.9.5",
    "sqlalchemy[asyncio]>=2.0.38",
    "sqlmodel>=0.0.22",
    "tenacity>=9.0.0",
    "typer>=0.15.1",
    "uvicorn[standard]>=0.34.0",
    "valkey[libvalkey]>=6.0.2"
]
readme = "README.md"
requires-python = ">= 3.13"

[project.scripts]
fastoai = "fastoai.cli:app"

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

[dependency-groups]
dev = [
    "anyio[trio]>=4.8.0",
    "pre-commit>=4.1.0",
    "pytest-cov>=6.0.0",
    "pytest>=8.3.4",
]

[tool.hatch.metadata]
allow-direct-references = true

[tool.hatch.build.targets.wheel]
packages = ["src/fastoai"]
artifacts = [
    "*.yaml",
    "*.json",
]

[tool.ruff]
extend-exclude = ["generated"]

[tool.ruff.lint]
extend-select = ["I"]

[tool.pyright]
venvPath = "."
venv = ".venv"
ignore = ["**/generated/**"]
