[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "django-polymorphic" version = "4.10.1" description = "Seamless polymorphic inheritance for Django models." readme = "README.md" license = "BSD-3-Clause" license-files = [ "LICENSE", "src/polymorphic/contrib/drf/LICENSE" ] requires-python = ">=3.10,<4.0" repository = "https://github.com/jazzband/django-polymorphic" homepage = "https://django-polymorphic.rtfd.io" authors = [ {name = "Bert Constantin", email = "bert.constantin@gmx.de"}, {name = "Diederik van der Boor", email = "vdboor@edoburu.nl"}, {name = "Christopher Glass", email = "tribaal@ubuntu.com"}, ] maintainers = [ {name = "Brian Kohan", email = "bckohan@gmail.com"} ] keywords = [ "django", "polymorphic", "polymorphism", "django-admin", "django-orm", "django-formsets", "model" ] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 4.2", "Framework :: Django :: 5.1", "Framework :: Django :: 5.2", "Framework :: Django :: 6.0", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "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", "Programming Language :: Python :: 3.14", "Topic :: Database", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Site Management", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ] dependencies = [ "Django >= 4.2", ] [project.urls] "Download" = "https://github.com/jazzband/django-polymorphic/tarball/master" "Documentation" = "https://django-polymorphic.readthedocs.io" "Homepage" = "https://github.com/jazzband/django-polymorphic" "Repository" = "https://github.com/jazzband/django-polymorphic" "Issues" = "https://github.com/jazzband/django-polymorphic/issues" "Changelog" = "https://django-polymorphic.readthedocs.io/en/stable/changelog.html" "Code_of_Conduct" = "https://jazzband.co/about/conduct" [tool.uv] package = true [tool.hatch.version] path = "src/polymorphic/__init__.py" [tool.hatch.build.targets.sdist] include = ["src/polymorphic"] exclude = ["src/polymorphic/tests"] [tool.hatch.build.targets.wheel] packages = ["src/polymorphic"] artifacts = ["*.mo"] [tool.doc8] max-line-length = 100 sphinx = true [tool.ruff] line-length = 99 exclude = [ "**/migrations/*.py", "**/migrations/**", ] [tool.ruff.lint] extend-ignore = [ "E501", ] select = [ "E", "F", "I", "W", ] [tool.ruff.lint.per-file-ignores] "example/**" = [ "F401", "F403", "F405", "F841", "I", ] "src/polymorphic/tests/**" = [ "F401", "F403", "F405", "F841", "I", ] [tool.pytest.ini_options] DJANGO_SETTINGS_MODULE = "polymorphic.tests.settings" pythonpath = ["src"] django_find_project = false testpaths = ["src/polymorphic/tests"] python_files = "test*.py" python_classes = "Test*" python_functions = "test_*" norecursedirs = "*.egg .eggs dist build docs .tox .git __pycache__" markers = [ "integration: tests under examples/integrations (opt-in)", ] addopts = [ "--strict-markers", "-m", "not integration", ] [tool.coverage.run] source = [ "src" ] omit = ["*/migrations/*", "*/tests/*", "src/polymorphic/tests/*"] branch = true relative_files = true [tool.coverage.report] show_missing = true [dependency-groups] dev = [ "coverage>=7.6.1", "dj-database-url>=2.2.0", "django-test-migrations>=1.5.0", "ipdb>=0.13.13", "ipython>=8.18.1", "mypy>=1.14.1", "pre-commit>=3.5.0", "pytest>=8.3.4", "pytest-cov>=5.0.0", "pytest-django>=4.10.0", "pytest-mock>=3.15.1", "pytest-playwright>=0.7.2", "ruff>=0.9.8", "tomlkit>=0.13.3", "tox>=4.24.1", "tox-uv>=1.13.1", ] docs = [ "django-extra-views>=0.16.0", "djangorestframework>=3.16.1", "doc8>=1.1.2", "furo>=2025.7.19", "readme-renderer[md]>=43.0", "sphinx>=7.1.2", "sphinx-autobuild>=2024.10.3", "sphinxcontrib-django>=2.5", ] psycopg2 = [ "psycopg2>=2.9.10", ] psycopg3 = [ "psycopg", ] mysql = [ "mysqlclient>=1.4.0", ] cx_oracle = [ "cx-oracle>=8.3.0", ] oracledb = [ "oracledb>=2.3.0", ] reversion = [ "django-reversion>=6.1.0", ] extra-views = [ "django-extra-views>=0.16.0", ] drf = [ "django-filter>=24.0", "djangorestframework>=3.16.1", ] guardian = [ "django-guardian>=2.4.0", ]