content: [project]
  name = "balrog"
  version = "3.93"
  description = "Mozilla's Update Server"
  license = "MPL-2.0"
  authors = [
      { name = "Mozilla Release Engineering", email = "release+python@mozilla.com" }
  ]
  readme = "README.rst"
  requires-python = ">=3.13"
  dependencies = [
      "aiohttp",
      "arrow",
      "auth0-python>=4",
      "connexion<3",
      "deepmerge",
      "ecdsa",
      "flask",
      "flask_wtf",
      "gcloud-aio-storage",
      "google-api-core",
      "google-auth",
      "google-cloud-storage",
      "jsonschema>=4.5.0",
      "mozilla-version",
      "mysqlclient",
      "pyjwt[crypto]",
      "python-jose",
      "redis",
      "repoze.lru",
      "requests",
      "requests-hawk",
      "sentry-sdk[flask]",
      "setuptools",
      "spec-synthase",
      "sqlalchemy-migrate",
      "sqlalchemy<2",
      "statsd",
      "swagger-spec-validator",
      "uwsgi",
  ]
  
  [tool.uv.workspace]
  members = [
      "agent",
  ]
  
  [dependency-groups]
  dev = [
      "black",
      "coverage",
      "coveralls",
      "fakeredis",
      "flake8",
      "flake8-black",
      "hypothesis",
      "isort",
      "mock",
      "pytest",
      "pytest-asyncio",
      "pytest-cov",
      "pytest-responses",
      "pytest-xdist",
      "tox",
      "tox-uv",
  ]
  
  docs = [
      "sphinx",
      "sphinx_rtd_theme",
  ]
  
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/auslib"]
  
  [tool.black]
  line-length = 160
  target-version = ["py38"]
  include = '\.(wsgi|pyi?)$'
  exclude = '''
  /(
      \.eggs
    | \.git
    | \.hg
    | \.mypy_cache
    | \.tox
    | \.venv
    | \.cache
    | \.cache_py3
    | _build
    | buck-out
    | build
    | dist
    | ui
  )/
  '''
  
  [tool.isort]
  multi_line_output = 3
  include_trailing_comma = true
  force_grid_wrap = 0
  use_parentheses = true
  line_length = 160
  
  [tool.pytest.ini_options]
  asyncio_mode="auto"
  asyncio_default_fixture_loop_scope="function"
  