# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

[build-system]
requires = ["setuptools>=82.0.1", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "ultralytics-llm"
dynamic = ["version"]
description = "Ultralytics LLM toolkit for Python and JavaScript"
readme = "README.md"
requires-python = ">=3.9"
license = { file = "LICENSE" }
keywords = ["Ultralytics", "LLM", "AI", "Chat", "Assistant"]
authors = [
    { name = "Glenn Jocher", email = "glenn.jocher@ultralytics.com" }
]
maintainers = [
    { name = "Glenn Jocher", email = "glenn.jocher@ultralytics.com" }
]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Intended Audience :: Education",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Topic :: Software Development",
    "Topic :: Scientific/Engineering",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Operating System :: POSIX :: Linux",
    "Operating System :: MacOS",
    "Operating System :: Microsoft :: Windows",
]

dependencies = []

[project.optional-dependencies]
dev = [
    "pytest",
    "pytest-cov",
    "ruff",
]

[project.urls]
"Homepage" = "https://ultralytics.com"
"Source" = "https://github.com/ultralytics/llm"
"Documentation" = "https://docs.ultralytics.com"
"Bug Reports" = "https://github.com/ultralytics/llm/issues"

[tool.setuptools]
packages = { find = { where = ["."], include = ["ultralytics_llm", "ultralytics_llm.*"] } }

[tool.setuptools.dynamic]
version = { attr = "ultralytics_llm.__version__" }

[tool.pytest.ini_options]
addopts = "--doctest-modules --durations=30 --color=yes"
norecursedirs = [".git", "dist", "build"]

[tool.ruff]
line-length = 120
target-version = "py310"

[tool.ruff.lint]
select = ["UP"]  # enables Python-upgrade rules

[tool.ruff.format]
docstring-code-format = true

[tool.ruff.lint.pydocstyle]
convention = "google"
