content: [build-system]
  requires = ["setuptools>=61.0", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "aiogram-bot-template"
  version = "0.1.0"
  description = "Template for creating scalable bots with aiogram"
  readme = "README.md"
  requires-python = ">=3.11"
  license = { text = "MIT" }
  authors = [
      { name = "MrConsole", email = "mrconsoleka.work@gmail.com" },
  ]
  
  maintainers = [
      { name = "MrConsole", email = "mrconsoleka.work@gmail.com" },
  ]
  
  classifiers = [
      "Development Status :: 3 - Alpha",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: MIT License",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
      "Operating System :: OS Independent",
      "Topic :: Communications :: Chat",
      "Topic :: Software Development :: Libraries :: Application Frameworks",
  ]
  
  dependencies = [
      "aiogram>=3.22.0",
      "aiogram-dialog>=2.4.0",
      "asyncpg>=0.30.0",
      "cachetools>=5.5.2",
      "dishka>=1.6.0",
      "fastapi>=0.116.1",
      "fluent-compiler>=1.1",
      "fluentogram>=1.2.1",
      "inflect>=7.5.0",
      "loguru>=0.7.3",
      "pydantic>=2.11.7",
      "pydantic-settings>=2.10.1",
      "redis>=6.4.0",
      "sqlalchemy>=2.0.43",
      "uvicorn>=0.35.0",
  ]
  
  [project.optional-dependencies]
  dev = [
      "aiosqlite>=0.21.0",
      "alembic>=1.16.5",
      "black>=25.1.0",
      "isort>=6.0.1",
      "mypy>=1.15.0",
      "pre-commit>=4.2.0",
      "ruff>=0.11.7",
      "sqlalchemy[mypy]>=2.0.43",
  ]
  
  [project.urls]
  Homepage = "https://github.com/MrConsoleka/aiogram-bot-template"
  Repository = "https://github.com/MrConsoleka/aiogram-bot-template"
  Documentation = "https://github.com/MrConsoleka/aiogram-bot-template#README"
  
  [tool.black]
  line-length = 88
  target-version = ['py311']
  
  [tool.isort]
  line_length = 88
  force_single_line = true
  order_by_type = true
  sections = ["PUBLIC", "LOCAL", "LOCALFOLDER"]
  default_section = "PUBLIC"
  known_public = []
  known_local = ["source", "migrations"]
  known_localfolder = ["source", "migrations"]
  
  [tool.mypy]
  python_version = "3.11"
  plugins = ["sqlalchemy.ext.mypy.plugin"]
  disallow_untyped_defs = true
  exclude = ["aiogram_template_bot.egg-info", "source/data"]
  
  [tool.ruff]
  line-length = 88
  target-version = "py311"
  src = ["source"]
  
  [tool.ruff.format]
  preview = true
  quote-style = "double"
  indent-style = "space"
  skip-magic-trailing-comma = false
  line-ending = "lf"
  
  [tool.ruff.lint]
  select = ["ALL"]
  
  ignore = [
      "E501",
      "ANN401",
      "RET504",
      "PLC0414",
      "SIM108",
      "D",
      "I",
      "CPY001",
      "F401",
      "F811",
      "BLE001",
  ]
  
  unfixable = ["B"]
  
  [tool.ruff.lint.isort]
  
  [tool.setuptools.packages.find]
  include = ["source*"]
  exclude = ["migrations*"]
  