[build-system]
build-backend = "hatchling.build"
requires = [
  "hatchling",
]

[project]
name = "django-js-asset"
description = "script tag with additional attributes for django.forms.Media"
readme = "README.rst"
license = { text = "BSD-3-Clause" }
authors = [
  { name = "Matthias Kestenholz", email = "mk@feinheit.ch" },
]
requires-python = ">=3.10"
classifiers = [
  "Environment :: Web Environment",
  "Framework :: Django",
  "Intended Audience :: Developers",
  "License :: OSI Approved :: BSD License",
  "Operating System :: OS Independent",
  "Programming Language :: Python",
  "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",
  "Programming Language :: Python :: 3.14",
  "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
  "Topic :: Software Development",
  "Topic :: Software Development :: Libraries :: Application Frameworks",
]
dynamic = [
  "version",
]
dependencies = [
  "django>=4.2",
]
optional-dependencies.tests = [
  "coverage",
]
urls.Homepage = "https://github.com/feincms/django-js-asset/"

[tool.hatch]
version.path = "js_asset/__init__.py"
build.targets.wheel.packages = [
  "js_asset",
]

[tool.ruff]
target-version = "py38"
fix = true
show-fixes = true
lint.extend-select = [
  # flake8-bugbear
  "B",
  # flake8-comprehensions
  "C4",
  # mmcabe
  "C90",
  # flake8-django
  "DJ",
  "E",
  # pyflakes, pycodestyle
  "F",
  # flake8-boolean-trap
  "FBT",
  # flake8-logging-format
  "G",
  # isort
  "I",
  # flake8-gettext
  "INT",
  # pep8-naming
  "N",
  # pygrep-hooks
  "PGH",
  # flake8-pie
  "PIE",
  # pylint
  "PL",
  # unused noqa
  "RUF100",
  # flake8-simplify
  "SIM",
  # flake8-tidy-imports
  "TID",
  # pyupgrade
  "UP",
  "W",
  # flake8-2020
  "YTT",
]
lint.extend-ignore = [
  # Allow zip() without strict=
  "B905",
  # No line length errors
  "E501",
]
lint.per-file-ignores."*/migrat*/*" = [
  # Allow using PascalCase model names in migrations
  "N806",
  # Ignore the fact that migration files are invalid module names
  "N999",
]
lint.isort.combine-as-imports = true
lint.isort.lines-after-imports = 2
lint.mccabe.max-complexity = 15
