content: [build-system]
  requires = ["hatchling", "hatch-requirements-txt>=0.4.1"]
  build-backend = "hatchling.build"
  
  [project]
  name = "django-mongodb-backend"
  dynamic = ["version", "dependencies"]
  description = "Django MongoDB Backend"
  readme = "README.md"
  license = {file="LICENSE"}
  requires-python = ">=3.10"
  authors = [
      { name = "The MongoDB Python Team" },
  ]
  keywords = [
      "mongo",
      "mongodb",
      "pymongo",
      "django"
  ]
  classifiers = [
      "Development Status :: 5 - Production/Stable",
      "Framework :: Django",
      "Framework :: Django :: 5.2",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: Apache Software License",
      "Operating System :: OS Independent",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3 :: Only",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
  ]
  
  [project.optional-dependencies]
  docs = [
      "sphinx>=7",
      "furo>=2025.7.19",
      "sphinx-copybutton",
  ]
  
  [project.urls]
  Homepage = "https://www.mongodb.org"
  Documentation = "https://django-mongodb-backend.readthedocs.io"
  Source = "https://github.com/mongodb/django-mongodb-backend"
  Tracker = "https://github.com/mongodb/django-mongodb-backend/issues"
  
  [tool.hatch.version]
  path = "django_mongodb_backend/__init__.py"
  validate-bump = false
  
  [tool.hatch.metadata.hooks.requirements_txt]
  files = ["requirements.txt"]
  
  [tool.mypy]
  strict = true
  show_error_codes = true
  pretty = true
  disable_error_code = ["type-arg", "no-any-return"]
  
  [[tool.mypy.overrides]]
  module = ["test.*"]
  disable_error_code = ["no-untyped-def", "no-untyped-call"]
  
  [tool.ruff]
  line-length = 100
  
  [tool.ruff.lint]
  select = [
    "E", "F", "W", # flake8
    "B",           # flake8-bugbear
    "I",           # isort
    "ARG",         # flake8-unused-arguments
    "C4",          # flake8-comprehensions
    "EM",          # flake8-errmsg
    "ICN",         # flake8-import-conventions
    "G",           # flake8-logging-format
    "PGH",         # pygrep-hooks
    "PIE",         # flake8-pie
    "PL",          # pylint
    "PTH",         # flake8-use-pathlib
    "RET",         # flake8-return
    "RUF",         # Ruff-specific
    "S",           # flake8-bandit
    "SIM",         # flake8-simplify
    "T20",         # flake8-print
    "UP",          # pyupgrade
    "YTT",         # flake8-2020
    "EXE",         # flake8-executable
  ]
  ignore = [
    "PLR",    # Design related pylint codes
    "EM101",  # Exception must not use a string literal, assign to variable first
    "EM102",  # Exception must not use an f-string literal, assign to variable first
    "ARG002", # Unused method argument:
    "S101",   # Use of `assert` detected
    "RUF012", # Mutable class attributes should be annotated with `typing.ClassVar`
    "PLW2901", # `for` loop variable `value` overwritten by assignment target
  ]
  unfixable = []
  exclude = []
  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?)|dummy.*)$"
  
  [tool.ruff.lint.per-file-ignores]
  ".github/workflows/mongodb_settings.py" = [
      "S105",  # Possible hardcoded password assigned to: "SECRET_KEY"
  ]
  
  [tool.coverage.report]
  exclude_lines = [
      "if (.*and +)*_use_c( and.*)*:",
      "def has_c",
      "def get_version_string",
      "^except AttributeError:",
      "except ImportError:",
      "raise NotImplementedError",
      "return NotImplemented",
      "_use_c = true",
      "if __name__ == '__main__':",
      "if TYPE_CHECKING:"
      ]
  partial_branches = ["if (.*and +)*not _use_c( and.*)*:"]
  
  [tool.coverage.html]
  directory = "htmlcov"
  
  [tool.rstcheck]
  report_level = "WARNING"
  