summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-02-18 01:53:18 +0000
committerSam James <sam@gentoo.org>2023-02-18 02:09:17 +0000
commitf2a9993afbc4a4ced0c2a03a57e52515e2d4e4cf (patch)
tree50b1f4b7e94ef754b37791306ca16b7101919e20
parentapp-i18n/ibus-typing-booster: new upstream release (diff)
downloadgentoo-f2a9993afbc4a4ced0c2a03a57e52515e2d4e4cf.tar.gz
gentoo-f2a9993afbc4a4ced0c2a03a57e52515e2d4e4cf.tar.bz2
gentoo-f2a9993afbc4a4ced0c2a03a57e52515e2d4e4cf.zip
media-video/subliminal: enable py3.11, use PEP517, fix runtime w/ rarfile
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--media-video/subliminal/files/subliminal-2.1.0-rarfile-4.0-compat.patch25
-rw-r--r--media-video/subliminal/subliminal-2.1.0-r2.ebuild95
-rw-r--r--media-video/subliminal/subliminal-9999.ebuild20
3 files changed, 130 insertions, 10 deletions
diff --git a/media-video/subliminal/files/subliminal-2.1.0-rarfile-4.0-compat.patch b/media-video/subliminal/files/subliminal-2.1.0-rarfile-4.0-compat.patch
new file mode 100644
index 000000000000..55b8b9484808
--- /dev/null
+++ b/media-video/subliminal/files/subliminal-2.1.0-rarfile-4.0-compat.patch
@@ -0,0 +1,25 @@
+https://github.com/Diaoul/subliminal/pull/1045
+
+From e9ed47e61a63ad0e0cdb036375ffa5a144953f1e Mon Sep 17 00:00:00 2001
+From: Eduardo Soares <eduardosoares.pt@gmail.com>
+Date: Fri, 24 Dec 2021 17:08:04 +0000
+Subject: [PATCH] Fix removal of custom check from rarfile dependency
+
+---
+ subliminal/providers/legendastv.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/subliminal/providers/legendastv.py b/subliminal/providers/legendastv.py
+index 9d696ca24..bf57a22dc 100644
+--- a/subliminal/providers/legendastv.py
++++ b/subliminal/providers/legendastv.py
+@@ -161,7 +161,7 @@ def __init__(self, username=None, password=None):
+
+ # Provider needs UNRAR installed. If not available raise ConfigurationError
+ try:
+- rarfile.custom_check([rarfile.UNRAR_TOOL], True)
++ rarfile.tool_setup(True, False, False, True)
+ except rarfile.RarExecError:
+ raise ConfigurationError('UNRAR tool not available')
+
+
diff --git a/media-video/subliminal/subliminal-2.1.0-r2.ebuild b/media-video/subliminal/subliminal-2.1.0-r2.ebuild
new file mode 100644
index 000000000000..a3c58afc2d5e
--- /dev/null
+++ b/media-video/subliminal/subliminal-2.1.0-r2.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_REQ_USE='xml(+)'
+
+inherit distutils-r1
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Diaoul/${PN}.git"
+ EGIT_BRANCH="develop"
+else
+ SRC_URI="https://github.com/Diaoul/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+fi
+
+DESCRIPTION="Python library to search and download subtitles"
+HOMEPAGE="https://github.com/Diaoul/subliminal https://pypi.org/project/subliminal/"
+SRC_URI+=" test? ( mirror://sourceforge/matroska/test_files/matroska_test_w1_1.zip )"
+
+LICENSE="MIT"
+SLOT="0"
+
+BDEPEND="
+ test? (
+ app-arch/unzip
+ dev-python/sympy[${PYTHON_USEDEP}]
+ >=dev-python/vcrpy-1.6.1[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ >=dev-python/appdirs-1.3[${PYTHON_USEDEP}]
+ >=dev-python/babelfish-0.5.2[${PYTHON_USEDEP}]
+ >=dev-python/beautifulsoup4-4.4.0[${PYTHON_USEDEP}]
+ >=dev-python/chardet-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/click-4.0[${PYTHON_USEDEP}]
+ dev-python/decorator[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-cache-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/enzyme-0.4.1[${PYTHON_USEDEP}]
+ >=dev-python/guessit-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pysrt-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2012c[${PYTHON_USEDEP}]
+ >=dev-python/rarfile-2.7[compressed,${PYTHON_USEDEP}]
+ >=dev-python/requests-2.0[${PYTHON_USEDEP}]
+ >=dev-python/six-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.0.0[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-pytest-warning.patch
+ "${FILESDIR}"/${PN}-2.1.0-rarfile-4.0-compat.patch
+)
+
+distutils_enable_tests pytest
+
+src_unpack() {
+ # Needed to unpack the test data
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+python_prepare_all() {
+ # Disable code checkers as they require unavailable dependencies.
+ sed -i -e 's/--\(pep8\|flakes\)//g' pytest.ini || die
+
+ # Disable unconditional dependency on dev-python/pytest-runner.
+ sed -i -e "s|'pytest-runner'||g" setup.py || die
+
+ if use test ; then
+ mkdir -p tests/data/mkv || die
+ ln -s "${WORKDIR}"/test*.mkv tests/data/mkv/ || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ EPYTEST_DESELECT=(
+ tests/test_core.py::test_scan_archive_with_one_video
+ tests/test_core.py::test_scan_archive_with_multiple_videos
+ tests/test_core.py::test_scan_archive_with_no_video
+ tests/test_core.py::test_scan_password_protected_archive
+ # NotImplementedError
+ tests/test_core.py::test_save_subtitles
+ )
+
+ epytest
+}
diff --git a/media-video/subliminal/subliminal-9999.ebuild b/media-video/subliminal/subliminal-9999.ebuild
index 792931859484..a3c58afc2d5e 100644
--- a/media-video/subliminal/subliminal-9999.ebuild
+++ b/media-video/subliminal/subliminal-9999.ebuild
@@ -1,11 +1,11 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{9..10} )
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..11} )
PYTHON_REQ_USE='xml(+)'
-DISTUTILS_USE_SETUPTOOLS=rdepend
inherit distutils-r1
@@ -15,6 +15,7 @@ if [[ ${PV} == 9999 ]] ; then
EGIT_BRANCH="develop"
else
SRC_URI="https://github.com/Diaoul/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~x86"
fi
DESCRIPTION="Python library to search and download subtitles"
@@ -50,7 +51,8 @@ RDEPEND="
"
PATCHES=(
- "${FILESDIR}/${PN}-2.1.0-fix-pytest-warning.patch"
+ "${FILESDIR}"/${P}-fix-pytest-warning.patch
+ "${FILESDIR}"/${PN}-2.1.0-rarfile-4.0-compat.patch
)
distutils_enable_tests pytest
@@ -80,16 +82,14 @@ python_prepare_all() {
}
python_test() {
- local skipped_tests=(
+ EPYTEST_DESELECT=(
tests/test_core.py::test_scan_archive_with_one_video
tests/test_core.py::test_scan_archive_with_multiple_videos
tests/test_core.py::test_scan_archive_with_no_video
tests/test_core.py::test_scan_password_protected_archive
+ # NotImplementedError
+ tests/test_core.py::test_save_subtitles
)
- # Two tests that list providers rely on entry points
- # so they need the package to be installed
- distutils_install_for_testing
- pytest -vv --ignore ${PN}/test/test_core.py ${skipped_tests[@]/#/--deselect } \
- || die "Tests fail with ${EPYTHON}"
+ epytest
}