content: [build-system]
  requires = ["setuptools>=75.2"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "django-tomselect"
  version = "2025.9.1"
  description = "Django autocomplete widgets and views using Tom Select"
  authors = [{ name = "Jack Linke", email = "jacklinke@gmail.com" }]
  license = "MIT"
  readme = "README.md"
  classifiers = [
      "Environment :: Web Environment",
      "Framework :: Django",
      "Framework :: Django :: 4.2",
      "Framework :: Django :: 5.0",
      "Framework :: Django :: 5.1",
      "Framework :: Django :: 5.2",
      "Development Status :: 5 - Production/Stable",
      "Intended Audience :: Developers",
      "Operating System :: OS Independent",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
      "Topic :: Software Development :: User Interfaces",
      "Topic :: Software Development :: Widget Sets",
  ]
  requires-python = ">=3.11,<4.0"
  
  dependencies = ["django>=4.2.21"]
  keywords = [
      "django",
      "autocomplete",
      "tomselect",
      "widget",
      "forms",
      "views",
      "select",
      "multiselect",
  ]
  
  [project.urls]
  Source = "https://github.com/OmenApps/django-tomselect"
  Documentation = "https://django-tomselect.readthedocs.io/en/latest/"
  Issues = "https://github.com/OmenApps/django-tomselect/issues"
  Changelog = "https://github.com/OmenApps/django-tomselect/releases"
  
  [tool.uv]
  dev-dependencies = [
      "bandit==1.8.3",
      "coverage[toml]==7.8.2",
      "darglint==1.8.1",
      "django-extensions==4.1",
      "django-htmx==1.23.0",
      "flake8-bugbear==24.12.12",
      "flake8-docstrings==1.7.0",
      "flake8-rst-docstrings==0.3.1",
      "flake8==7.2.0",
      "furo==2024.8.6",
      "linkify-it-py==2.0.3",
      "myst-parser==4.0.1",
      "nox==2025.5.1",
      "pep8-naming==0.15.1",
      "pre-commit-hooks==5.0.0",
      "pre-commit==4.2.0",
      "Pygments==2.19.1",
      "pytest-asyncio==0.26.0",
      "pytest-cov==6.1.1",
      "pytest-django==4.11.1",
      "pytest==8.3.5",
      "python-environ==0.4.54",
      "pyupgrade==3.19.1",
      "ruff==0.11.11",
      "safety==3.5.1",
      "sphinx-autobuild==2024.10.3",
      "sphinx-click==6.0.0",
      "sphinx==8.2.3",
      "Werkzeug==3.1.3",
      "xdoctest[colors]==1.2.0",
  ]
  
  [tool.setuptools.packages.find]
  where = ["src"]
  
  [tool.setuptools.package-data]
  django_tomselect = [
      "templates/**/*.html",
      "static/**/*.js",
      "static/**/*.css",
      "static/**/*.map",
      "locale/**/*.mo",
      "locale/**/*.po",
  ]
  
  [tool.coverage.paths]
  source = ["src", "*/site-packages"]
  tests = ["example_project", "*/example_project"]
  
  [tool.coverage.run]
  branch = true
  source = ["src", "example_project"]
  
  [tool.coverage.report]
  show_missing = true
  fail_under = 50
  omit = [".nox/*", "example_project/*", "**/migrations/*", "**/__init__.py"]
  
  [tool.pytest.ini_options]
  log_cli_level = "INFO"
  DJANGO_SETTINGS_MODULE = "example_project.settings"
  python_files = ["*test_*.py", "*_test.py", "example_project/*.py"]
  log_cli = true
  
  [tool.ruff]
  src = ["src"]
  target-version = "py311"
  line-length = 120
  select = [
      "D", # pydocstyle
      "E",
      "W", # pycodestyle
      "F", # flake8
      "I", # isort
  ]
  ignore = [
      "D1",   # D1: Missing docstring error codes (because not every function and class has a docstring)
      "D203", # D203: 1 blank line required before class docstring (conflicts with D211 and should be disabled, see https://github.com/PyCQA/pydocstyle/pull/91)
      "D205", # D205: 1 blank line required between summary line and description
      "D212", # D212: Multi-line docstring summary should start at the first line
  ]
  
  [tool.ruff.pydocstyle]
  convention = "google"
  
  [tool.ruff.pycodestyle]
  max-doc-length = 120
  