content: [project]
  name = "template"
  version = "0.1.0"
  description = ""
  authors = [{ name = "ocbunknown" }]
  requires-python = "~=3.12"
  dependencies = [
      "litestar==2.15.2",
      "uvloop>=0.21.0,<0.22",
      "granian>=2.2.0,<3",
      "pydantic-settings>=2.8.1,<3",
      "uuid-utils>=0.10.0,<0.11",
      "redis>=5.2.1,<6",
      "types-redis>=4.6.0.20241004,<5",
      "dishka>=1.5.2,<2",
      "nats-py>=2.10.0,<3",
      "aiohttp>=3.11.15,<4",
      "pydantic>=2.11.1,<3",
      "argon2-cffi>=23.1.0,<24",
      "pyjwt>=2.10.1,<3",
      "sqlalchemy>=2.0.40,<3",
      "alembic>=1.15.2,<2",
      "asyncpg>=0.30.0,<0.31",
      "greenlet>=3.1.1",
  ]
  
  
  [dependency-groups]
  dev = [
      "mypy>=1.15.0,<2",
      "pre-commit>=4.2.0",
      "pytest>=8.3.5",
      "ruff>=0.11.2,<0.12",
      "testcontainers>=4.10.0",
  ]
  
  
  [tool.mypy]
  warn_unused_ignores = false
  follow_imports_for_stubs = true
  pretty = true
  show_absolute_path = true
  hide_error_codes = false
  show_error_context = true
  strict = true
  warn_unreachable = true
  warn_no_return = true
  
  [tool.ruff]
  lint.ignore = ["E501", "B008", "C901", "W191", "UP007", "UP006", "UP035"]
  
  lint.select = ["E", "W", "F", "I", "C", "B", "UP"]
  
  [tool.pytest.ini_options]
  pythonpath = [".", "src"]
  testpaths = ["tests"]
  asyncio_mode = "auto"
  asyncio_default_fixture_loop_scope = "function"
  addopts = ["-p no:warnings", ""]
  