content: [build-system]
  requires = ["setuptools", "setuptools-scm"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "fastapi-forge"
  description = "Generate FastAPI projects based on database schema."
  readme = "README.md"
  requires-python = ">=3.12"
  dynamic = ["version"]
  dependencies = [
      "click",
      "nicegui",
      "cookiecutter",
      "pytest",
      "ruff",
      "psycopg2-binary>=2.9.10",
      "inflect>=7.5.0",
      "pytest-cov>=6.1.1",
      "mypy>=1.15.0",
  ]
  authors = [{ name = "mslaursen", email = "mslaursendk@gmail.com" }]
  
  [project.urls]
  Repository = "https://github.com/mslaursen/fastapi-forge.git"
  
  [tool.setuptools_scm]
  
  [project.scripts]
  fastapi-forge = "fastapi_forge.__main__:main"
  
  [tool.ruff]
  exclude = ["template"]
  target-version = "py312"
  line-length = 88
  indent-width = 4
  
  [tool.ruff.lint]
  select = ["ALL"]
  ignore = [
      #### modules
      "ANN", #
      "COM", #
      "C90", #
      "DJ",  #
      "EXE", #
      "T10", #
      "TID", #
  
      #### specific rules
      "A002",
      "ARG002",
      "BLE001",
      "D100",
      "D101",
      "D102",
      "D103",
      "D104",
      "D105",
      "D106",
      "D107",
      "D200",
      "D203",
      "D205",
      "D212",
      "D400",
      "D401",
      "D415",
      "E402",
      "E501",
      "EM101",
      "EM102",
      "ERA001",
      "FBT001",
      "FBT002",
      "FBT003",
      "G004",
      "N805",
      "T201",
      "TRY003",
      "TRY201",
      "TRY203",
      "TD002",
      "TD003",
      "FIX002",
      "PLR0911",
      "PLR0912",
      "PLR0913",
      "PGH003",
      "S701",
  ]
  
  [tool.ruff.format]
  skip-magic-trailing-comma = false
  quote-style = "double"
  indent-style = "space"
  line-ending = "auto"
  
  [tool.ruff.lint.per-file-ignores]
  "tests/*" = ["S101", "PT006"]
  "__init__.py" = ["F401"]
  
  [tool.mypy]
  warn_return_any = false
  namespace_packages = true
  strict = true
  ignore_missing_imports = true
  pretty = true
  show_error_codes = true
  implicit_reexport = true
  disable_error_code = ["prop-decorator", "override", "import-untyped"]
  plugins = ["pydantic.mypy"]
  exclude = ["fastapi_forge/frontend", "fastapi_forge/template"]
  
  [[tool.mypy.overrides]]
  module = ["fastapi_forge/frontend.*"]
  follow_imports = "silent"
  
  [tool.pytest]
  testpaths = ["tests", "integration"]
  