content: [project]
  name = "aana"
  version = "0.2.4.post1"
  description = "Multimodal SDK"
  authors = [{name="Mobius Labs GmbH", email="dev@mobiuslabs.com"}]
  license = "Apache-2.0"
  readme = "README.md"
  keywords = ["multimodal", "ray", "serving", "video", "images", "audio", "llm", "vlm", "asr"]
  classifiers=[
      "Intended Audience :: Developers",
      "Intended Audience :: Science/Research",
      "Operating System :: OS Independent",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Topic :: Scientific/Engineering :: Artificial Intelligence",
  ]
  requires-python = ">=3.10,<3.13"
  dependencies = [
      "alembic>=1.12.1",
      "av==11.*",
      "decord>=0.6.0",
      "fastapi>=0.111.0",
      "haystack-ai>=2.1.0",
      "hf-transfer>=0.1.6",
      "huggingface-hub>=0.21.0",
      "numpy>=1.17,<2",
      "opencv-python-headless>=4.8.1.78",
      "orjson>=3.10.3", 
      "pydantic>=2.0",
      "pydantic-settings>=2.1.0",
      "python-multipart>=0.0.18",
      "ray[serve]>=2.20,<2.47",
      "rich>=13.9.4",
      "sqlalchemy[aiosqlite,asyncio,mypy,postgresql-asyncpg]>=2.0.23",
      "torch>=2.4.0",
      "yt-dlp>=2024.08.06",
  ]
  
  [project.urls]
  Homepage = "https://www.mobiuslabs.com"
  Repository = "https://github.com/mobiusml/aana_sdk"
  Documentation = "https://mobiusml.github.io/aana_sdk"
  
  [project.optional-dependencies]
  vllm = [
      "vllm>=0.9.0",
      "outlines[serve]>=0.1.11",
      "xgrammar>=0.1.8"
  ]
  
  transformers = [
      "accelerate>=0.34.2",
      "bitsandbytes>=0.42.0",
      "transformers>=4.47.0"
  ]
  
  asr = [
      "faster-whisper (>=1.1.1,<2.0.0)",
      "pyannote-audio>=3.1.1"
  ]
  
  hqq = [
      "accelerate>=0.34.2",
      "bitblas>=0.0.1.dev15",
      "bitsandbytes>=0.42.0",
      "hqq>=0.2.5",
      "transformers>=4.47.0"
  ]
  
  gemlite = [
      "accelerate>=0.34.2",
      "bitblas>=0.0.1.dev15",
      "bitsandbytes>=0.42.0",
      "hqq>=0.2.5",
      "gemlite>=0.4.5",
      "transformers>=4.47.0"
  ]
  
  api-service = [
      "lago-python-client>=1.19.0",
      "tenacity>=9.0.0",
  ]
  
  all = [
      "accelerate>=0.34.2",
      "bitblas>=0.0.1.dev15",
      "bitsandbytes>=0.42.0", 
      "faster-whisper (>=1.1.1,<2.0.0)",
      "hqq>=0.2.5",
      "gemlite>=0.4.5",
      "outlines[serve]>=0.0.46",
      "pyannote-audio>=3.1.1",
      "transformers>=4.49.0",
      "vllm>=0.9.0"
  ]
  
  [dependency-groups]
  dev = [
      "ipykernel>=6.25.2",
      "matplotlib>=3.8.2",
      "mypy>=1.6.1",
      "ruff>=0.9.0",
  ]
  
  docs = [
      "mkdocs-material>=9.5.29",
      "mkdocstrings[python]>=0.25.1",
      "mkdocs>=1.6.0",
  ]
  
  tests = [
      "pytest-asyncio>=0.26.0",
      "pytest-dotenv>=0.5.2",
      "pytest-env>=1.1.3",
      "pytest-httpserver>=1.1.1",
      "pytest-mock>=3.12.0",
      "pytest-postgresql>=6.0.0",
      "pytest-timeout>=2.2.0",
      "rapidfuzz>=3.4.0",
      "sentence-transformers>=2.6.1",
      "sqlalchemy-utils>=0.41.1",
  ]
  
  
  
  [project.scripts]
  aana = "aana.cli:cli"
  
  [tool.setuptools.packages.find]
  include = ["aana*"]
  exclude = ["notebooks*"]
  
  [build-system]
  requires = ["setuptools>=61.0", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [tool.pytest.ini_options]
  norecursedirs = "mobius-pipeline"
  timeout = 600
  env = [
      "TEST_MODE=True"
  ]
  filterwarnings = [
      # Filter out some annoying warnings that clutter test output
      "ignore:pkg_resources",
      "ignore::UserWarning",
  ]
  
  [tool.ruff]
  # Lint with `ruff check aana`, `ruff check --fix aana` 
  # Format with `ruff format aana`
  target-version = "py310"
  line-length = 88
  
  [tool.ruff.lint]
  select = [
      "F", "B", "A", "DTZ", "TCH", "ICN", "SIM", "ASYNC",  # flake8+plugins
      "PERF", "S", "C90", "I",  # performance, security, complexity, imports
      "UP", "PTH", "TRY",  # pyupgrade, pathlib, tryceratops
      "D", "NPY", "RUF"  # pydocstyle, numpy, misc Ruff
  ]
  ignore = ["D100", "D104", "D106", "A004", "A005"]  # require docstrings for modules and nested clases
  fixable = ["ALL"]
  unfixable = []
  
  [tool.ruff.lint.pydocstyle]
  convention = "google"
  
  [tool.ruff.format]
  quote-style = "double"
  