diff options
author | Sam James <sam@gentoo.org> | 2023-02-18 01:53:18 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-02-18 02:09:17 +0000 |
commit | f2a9993afbc4a4ced0c2a03a57e52515e2d4e4cf (patch) | |
tree | 50b1f4b7e94ef754b37791306ca16b7101919e20 | |
parent | app-i18n/ibus-typing-booster: new upstream release (diff) | |
download | gentoo-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>
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 } |