content: [build-system]
  requires = ["setuptools>=45", "wheel", "setuptools_scm[toml]>=6.2"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "openexcept"
  authors = [
      {name = "OpenExcept", email = "ai.observability.eng@gmail.com"},
  ]
  description = "Automatic exception grouping using AI"
  readme = "README.md"
  requires-python = ">=3.7"
  license = {text = "AGPLv3"}
  classifiers = [
      "Programming Language :: Python :: 3",
      "License :: OSI Approved :: GNU Affero General Public License v3",
      "Operating System :: OS Independent",
  ]
  dependencies = [
      "fastapi>=0.95.1",
      "openai==1.51.2",
      "qdrant-client==1.12.0",
      "requests==2.30.0",
      "sentence-transformers==3.2.0",
      "huggingface_hub>=0.20.0",
      "uvicorn==0.22.0",
      "psycopg2-binary>=2.9.9",
  ]
  dynamic = ["version"]
  
  [project.optional-dependencies]
  dev = [
      "pytest==7.3.1",
      "requests==2.30.0",
      "docker-compose==1.29.2",
  ]
  
  [tool.setuptools_scm]
  write_to = "src/openexcept/_version.py"
  
  [tool.pytest.ini_options]
  addopts = "-ra -q"
  testpaths = [
      "tests",
  ]
  
  [tool.black]
  line-length = 88
  target-version = ['py37', 'py38', 'py39', 'py310', 'py311', 'py312']
  
  [tool.isort]
  profile = "black"
  multi_line_output = 3
  include_trailing_comma = true
  force_grid_wrap = 0
  use_parentheses = true
  ensure_newline_before_comments = true
  line_length = 88
  