dev-python/django: New package

Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Alarig Le Lay <alarig@swordarmor.fr
This commit is contained in:
Alarig Le Lay 2021-09-16 16:34:12 +02:00
parent 808acb29a5
commit 246c20e536
Signed by: alarig
GPG Key ID: 7AFE62C6DF8BCDEC
5 changed files with 226 additions and 0 deletions

View File

@ -0,0 +1,2 @@
DIST Django-3.2.7.checksum.txt 2548 BLAKE2B a5ec208e268bc4e9c2fb5899dcd784840f7a1cd310deb83756f658fca5b946ae4d0f54ff3fa2dbe87562f7a646c5eb8e85174e417b45cc10d2ea3795283c5760 SHA512 a8917ba75d38dc4d8ac1a02dd970bc91f419fc1a2251513591c9932415b8108c8d32fab83c4c7f402eab90489662f0e1081eb0aec606a2241d4a0f7a2c021ed2
DIST Django-3.2.7.tar.gz 9808777 BLAKE2B f088f9f234d53909754e320df0a00e5f3c9b13626054f4f12065386e55ecc4eaca7e58fdb03feca0704b864e3dc9e7ea9363469e2703ab1284e281200ea33a94 SHA512 6dc497fdeee24dbca85654999ae98cb776cf32b7c38e4431eeed66befb7d663e3880bf5dec0a9573e64678938c443282c3e5b9be9d25b6863481c5208a1ed98c

View File

@ -0,0 +1,103 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{8..10} )
PYTHON_REQ_USE='sqlite?,threads(+)'
inherit bash-completion-r1 distutils-r1 optfeature verify-sig
MY_P=${P^}
DESCRIPTION="High-level Python web framework"
HOMEPAGE="https://www.djangoproject.com/ https://pypi.org/project/Django/"
SRC_URI="
https://media.djangoproject.com/releases/$(ver_cut 1-2)/${MY_P}.tar.gz
verify-sig? ( https://media.djangoproject.com/pgp/${MY_P}.checksum.txt )"
S="${WORKDIR}/${MY_P}"
LICENSE="BSD"
# admin fonts: Roboto (media-fonts/roboto)
LICENSE+=" Apache-2.0"
# admin icons, jquery, xregexp.js
LICENSE+=" MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
IUSE="doc sqlite test"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-python/asgiref-3.3.4[${PYTHON_USEDEP}]
dev-python/pytz[${PYTHON_USEDEP}]
>=dev-python/sqlparse-0.2.2[${PYTHON_USEDEP}]"
BDEPEND="
test? (
$(python_gen_impl_dep sqlite)
${RDEPEND}
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/jinja[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pillow[webp,${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/selenium[${PYTHON_USEDEP}]
dev-python/tblib[${PYTHON_USEDEP}]
sys-devel/gettext
!!<dev-python/ipython-7.21.0-r1
!!=dev-python/ipython-7.22.0-r0
)
verify-sig? ( >=app-crypt/openpgp-keys-django-20201201 )
"
PATCHES=(
"${FILESDIR}"/${PN}-3.1-bashcomp.patch
# https://github.com/django/django/pull/14732
"${FILESDIR}"/${P}-argparse-py310.patch
)
distutils_enable_sphinx docs --no-autodoc
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/django.asc
src_unpack() {
if use verify-sig; then
cd "${DISTDIR}" || die
verify-sig_verify_signed_checksums \
"${MY_P}.checksum.txt" sha256 "${MY_P}.tar.gz"
cd "${WORKDIR}" || die
fi
default
}
python_prepare_all() {
# Fails because of warnings
sed -i 's/test_dumpdata_proxy_with_concrete/_&/' tests/fixtures/tests.py
distutils-r1_python_prepare_all
}
python_test() {
# Tests have non-standard assumptions about PYTHONPATH,
# and don't work with ${BUILD_DIR}/lib.
PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite -v2 ||
die "Tests fail with ${EPYTHON}"
}
python_install_all() {
newbashcomp extras/django_bash_completion ${PN}-admin
bashcomp_alias ${PN}-admin django-admin.py
distutils-r1_python_install_all
}
pkg_postinst() {
optfeature_header "Additional Backend support can be enabled via:"
optfeature "MySQL backend support" dev-python/mysqlclient
optfeature "PostgreSQL backend support" dev-python/psycopg:2
optfeature_header
optfeature "GEO Django" "sci-libs/gdal[geos]"
optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
optfeature "ImageField Support" dev-python/pillow
optfeature "Password encryption" dev-python/bcrypt
optfeature "High-level abstractions for Django forms" dev-python/django-formtools
}

View File

@ -0,0 +1,56 @@
From e0a8c0663debeb222bf78b97678f60929313b60a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Wed, 6 May 2020 07:24:05 +0200
Subject: [PATCH] Remove completions unsuitable for autoloading
The override of 'python*' completions, as well as the attempt
to './manage.py' completion are not going to work with autoloader.
Strip them.
---
extras/django_bash_completion | 33 +--------------------------------
1 file changed, 1 insertion(+), 32 deletions(-)
diff --git a/extras/django_bash_completion b/extras/django_bash_completion
index fa77d59aff..dfeb439a2e 100755
--- a/extras/django_bash_completion
+++ b/extras/django_bash_completion
@@ -37,35 +37,4 @@ _django_completion()
DJANGO_AUTO_COMPLETE=1 $1 ) )
}
# When the django-admin.py deprecation ends, remove django-admin.py.
-complete -F _django_completion -o default django-admin.py manage.py django-admin
-
-_python_django_completion()
-{
- if [[ ${COMP_CWORD} -ge 2 ]]; then
- local PYTHON_EXE=${COMP_WORDS[0]##*/}
- if echo "$PYTHON_EXE" | grep -qE "python([3-9]\.[0-9])?"; then
- local PYTHON_SCRIPT=${COMP_WORDS[1]##*/}
- if echo "$PYTHON_SCRIPT" | grep -qE "manage\.py|django-admin(\.py)?"; then
- COMPREPLY=( $( COMP_WORDS=( "${COMP_WORDS[*]:1}" )
- COMP_CWORD=$(( COMP_CWORD-1 ))
- DJANGO_AUTO_COMPLETE=1 ${COMP_WORDS[*]} ) )
- fi
- fi
- fi
-}
-
-# Support for multiple interpreters.
-unset pythons
-if command -v whereis &>/dev/null; then
- python_interpreters=$(whereis python | cut -d " " -f 2-)
- for python in $python_interpreters; do
- [[ $python != *-config ]] && pythons="${pythons} ${python##*/}"
- done
- unset python_interpreters
- pythons=$(echo "$pythons" | tr " " "\n" | sort -u | tr "\n" " ")
-else
- pythons=python
-fi
-
-complete -F _python_django_completion -o default $pythons
-unset pythons
+complete -F _django_completion -o default django-admin.py django-admin
--
2.28.0

View File

@ -0,0 +1,52 @@
From dc7d30c03ff72917584952e70b3b25c9a0c59033 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Tue, 3 Aug 2021 10:04:22 +0200
Subject: [PATCH] Refs #32074 -- Update expected argparse error in invalid
choice test
Python 3.10.0rc1 changed the error messages issued by argparse on
invalid choice to include the argument name. Update the expected test
output to account for that.
---
django/utils/version.py | 1 +
tests/user_commands/tests.py | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/django/utils/version.py b/django/utils/version.py
index 4b26586b36..54b10e89d7 100644
--- a/django/utils/version.py
+++ b/django/utils/version.py
@@ -13,6 +13,7 @@ PY36 = sys.version_info >= (3, 6)
PY37 = sys.version_info >= (3, 7)
PY38 = sys.version_info >= (3, 8)
PY39 = sys.version_info >= (3, 9)
+PY310 = sys.version_info >= (3, 10)
def get_version(version=None):
diff --git a/tests/user_commands/tests.py b/tests/user_commands/tests.py
index 9262e2717a..9da0977c38 100644
--- a/tests/user_commands/tests.py
+++ b/tests/user_commands/tests.py
@@ -17,7 +17,7 @@ from django.test import SimpleTestCase, override_settings
from django.test.utils import captured_stderr, extend_sys_path, ignore_warnings
from django.utils import translation
from django.utils.deprecation import RemovedInDjango41Warning
-from django.utils.version import PY37
+from django.utils.version import PY37, PY310
from .management.commands import dance
@@ -334,7 +334,8 @@ class CommandTests(SimpleTestCase):
self.assertIn('bar', out.getvalue())
def test_subparser_invalid_option(self):
- msg = "Error: invalid choice: 'test' (choose from 'foo')"
+ msg = "Error: %sinvalid choice: 'test' (choose from 'foo')" % (
+ 'argument {foo}: ' if PY310 else '')
with self.assertRaisesMessage(CommandError, msg):
management.call_command('subparser', 'test', 12)
if PY37:
--
2.32.0

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">Django</remote-id>
<remote-id type="github">django/django</remote-id>
</upstream>
</pkgmetadata>