diff --git a/dev-python/drf-spectacular/Manifest b/dev-python/drf-spectacular/Manifest new file mode 100644 index 0000000000..6b47ad9ee5 --- /dev/null +++ b/dev-python/drf-spectacular/Manifest @@ -0,0 +1 @@ +DIST drf-spectacular-0.30.0.gh.tar.gz 247703 BLAKE2B 5f1e8aa5c6b55b7eccfeb667f224f892e508ce831b1f5a7d517d3ce986afc8dcf356e3d2e423af441f4d60199b7c72ca86363eca80d6cf7c1e95313eb10dff0a SHA512 0b5203a8b0795733c584b7ccce51a515d7b7666dfcb9e5ecaef8c42c0b4c28a53ef2b7ea097d9405b719e74e507c0d234502f840793bcbf0e0e2ca312bbed1f6 diff --git a/dev-python/drf-spectacular/drf-spectacular-0.30.0.ebuild b/dev-python/drf-spectacular/drf-spectacular-0.30.0.ebuild new file mode 100644 index 0000000000..194b22167e --- /dev/null +++ b/dev-python/drf-spectacular/drf-spectacular-0.30.0.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +DISTUTILS_USE_PEP517=setuptools + +inherit distutils-r1 + +DESCRIPTION="Sane and flexible OpenAPI 3 schema generation for Django REST framework" +HOMEPAGE=" + https://github.com/tfranzel/drf-spectacular + https://pypi.org/project/drf-spectacular/" +SRC_URI="https://github.com/tfranzel/drf-spectacular/archive/${PV}.tar.gz -> ${P}.gh.tar.gz" + +PATCHES=( "${FILESDIR}"/0.30.0-fix-tests.patch ) + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-python/django-2.2[${PYTHON_USEDEP}] + >=dev-python/djangorestframework-3.10.3[${PYTHON_USEDEP}] + >=dev-python/uritemplate-4.2.0[${PYTHON_USEDEP}] + >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}] + >=dev-python/jsonschema-2.6.0[${PYTHON_USEDEP}] + >=dev-python/inflection-0.3.1[${PYTHON_USEDEP}]" + +BDEPEND=" + test? ( + ${RDEPEND} + >=dev-python/uritemplate-4.2.0[${PYTHON_USEDEP}] + >=dev-python/inflection-0.5.1-r1[${PYTHON_USEDEP}] + >=dev-python/dj-database-url-2.0[${PYTHON_USEDEP}] + >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}] + >=dev-python/annotated-types-0.8.0[${PYTHON_USEDEP}] + >=dev-python/psycopg-3.3.6[${PYTHON_USEDEP}] )" + +EPYTEST_PLUGINS=( pytest-django pytest-cov ) +distutils_enable_tests pytest + +python_test() { + # django-oauth-toolkit is not packaged + # djangorestframework-recursive is not packaged + PYTHONPATH=. "${EPYTHON}" runtests.py \ + --nolint \ + --skip-missing-contrib \ + --ignore "tests/contrib/test_oauth_toolkit.py" \ + --ignore "tests/contrib/test_rest_framework_recursive.py" \ + || die "Tests failed with ${EPYTHON}" +} diff --git a/dev-python/drf-spectacular/files/0.30.0-fix-tests.patch b/dev-python/drf-spectacular/files/0.30.0-fix-tests.patch new file mode 100644 index 0000000000..ddd22408db --- /dev/null +++ b/dev-python/drf-spectacular/files/0.30.0-fix-tests.patch @@ -0,0 +1,36 @@ +diff --git a/tests/test_command.py b/tests/test_command.py +index 2d48aeb..485dd73 100644 +--- a/tests/test_command.py ++++ b/tests/test_command.py +@@ -67,6 +67,7 @@ def test_command_custom_settings(capsys, clear_generator_settings): + assert 'description: custom setting' in capsys.readouterr().out + + ++@pytest.mark.django_db + def test_command_check(capsys): + management.call_command('check', '--deploy') + stderr = capsys.readouterr().err +diff --git a/tests/test_fields.yml b/tests/test_fields.yml +index b058b13..9be1e69 100644 +--- a/tests/test_fields.yml ++++ b/tests/test_fields.yml +@@ -263,6 +263,7 @@ components: + maxLength: 200 + field_ip_generic: + type: string ++ format: ipv6 + field_decimal: + type: string + format: decimal +diff --git a/tests/test_fields_oas_3_1.yml b/tests/test_fields_oas_3_1.yml +index ec52e28..32b4b40 100644 +--- a/tests/test_fields_oas_3_1.yml ++++ b/tests/test_fields_oas_3_1.yml +@@ -264,6 +264,7 @@ components: + maxLength: 200 + field_ip_generic: + type: string ++ format: ipv6 + field_decimal: + type: string + format: decimal diff --git a/dev-python/drf-spectacular/metadata.xml b/dev-python/drf-spectacular/metadata.xml new file mode 100644 index 0000000000..2447253b8e --- /dev/null +++ b/dev-python/drf-spectacular/metadata.xml @@ -0,0 +1,12 @@ + + + + + Katalin Rebhan + kat@knifepoint.net + + + drf-spectacular + tfranzel/drf-spectacular + +