content: [project]
  name = "tronbyt-server"
  dynamic = ["version"]
  description = "Manage your apps on your Tronbyt completely locally"
  authors = [
      {name = "tavdog", email = "tavdog@users.noreply.github.com"},
      {name = "ingmarstein", email = "490610+IngmarStein@users.noreply.github.com"},
  ]
  dependencies = [
      "esptool",
      "flask",
      "flask-babel",
      "flask-sock",
      "gunicorn",
      "python-dotenv",
      "requests",
      "tzlocal",
      "redis>=6.4.0",
  ]
  requires-python = ">=3.12"
  readme = "README.md"
  license = {text = "Apache-2.0"}
  
  [build-system]
  requires = ["pdm-backend", "babel>=2.17.0"]
  build-backend = "pdm.backend"
  
  [tool.pdm]
  distribution = true
  
  [tool.pdm.build]
  source-includes = [ "**/*.po", "babel.cfg" ]
  excludes = [ "**/messages.pot", "**/.DS_Store", "**/.*.swp", "**/.gitignore" ]
  
  [tool.pdm.scripts]
  pre_build = "pybabel compile -d tronbyt_server/translations"
  test = "pytest"
  extract = "pybabel extract -F babel.cfg -k _l -o messages.pot ."
  _init = "pybabel init -i messages.pot -d tronbyt_server/translations -l {args}"
  init = { composite = ["extract", "_init {args}"] }
  _update = "pybabel update -i messages.pot -d tronbyt_server/translations"
  update = { composite = ["extract", "_update"] }
  
  [tool.pdm.version]
  source = "scm"
  fallback_version = "0.0.0"
  
  [tool.mypy]
  disallow_untyped_defs = true
  disallow_incomplete_defs = true
  strict = true
  show_error_codes = true
  warn_unused_ignores = true
  ignore_missing_imports = true
  
  [dependency-groups]
  dev = [
      "pytest>=8.3.5",
      "mypy>=1.15.0",
      "ruff>=0.11.8",
      "pip>=25.1",
  ]
  