commit:     d3ae7152829432dc1304b8153a4709d3b50c53f4
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue May  6 16:27:04 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May  6 16:27:21 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3ae7152

media-video/subliminal: add 2.3.0

Bug: https://bugs.gentoo.org/955197
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-video/subliminal/Manifest                    |  1 +
 .../files/subliminal-2.3.0-win32-tests.patch       | 52 ++++++++++++++++++++++
 ...liminal-9999.ebuild => subliminal-2.3.0.ebuild} | 32 ++++++++++---
 media-video/subliminal/subliminal-9999.ebuild      | 32 ++++++++++---
 4 files changed, 103 insertions(+), 14 deletions(-)

diff --git a/media-video/subliminal/Manifest b/media-video/subliminal/Manifest
index 610eecca1835..4b6790883fb5 100644
--- a/media-video/subliminal/Manifest
+++ b/media-video/subliminal/Manifest
@@ -1,3 +1,4 @@
 DIST matroska_test_w1_1.zip 184550509 BLAKE2B 
f111725aa08267661942072c2d4ac019d3d322c4e933aad10afb3aa6f69bb3469114c4400d161e53d8a7618b818b22465177460003804a7ac3e69fa4f4db000d
 SHA512 
f170a8e83dab15228f992b3692330163da2402b8e436c7fa195ac1ecc06cf1eaf1a48d8c99a85c031122c158c2d4006023aae75d5b7805385ba25a6d601cb78f
 DIST subliminal-2.1.0.tar.gz 5480458 BLAKE2B 
249bdd027d99dfb0b81d939af2dc08f62b52dca2c8618f1006ca76eee41c2443b450076eddc1aa533997beca8cdf9016b884d7eceeebbf4e48ced91dae1a2361
 SHA512 
9b26ae594895470830547eed604aa5b28b75f590e5be12c2d5a478c5daf798d405f209639bd54dce0565b0e27d1b0daa5bef87dfa8590af61f2ab1e287c41060
 DIST subliminal-2.2.1.gh.tar.gz 3165965 BLAKE2B 
9b69547540773d1434117a0e81bebcb3da49f97c145285a2bb2349ff8d6a4cb35f42f8fa8c306d2afedaf0ccff275908526a0f6d6c7ba7846aea6acd2b154b92
 SHA512 
4e59ccfe42419bb33df395aad6c2255ad03cfe7311fc754ea591be7c9e33ef5cc3e980a1da2839afe79e3b22024b3e7b458b03b4e6270ea8bcadc0337d7e37bf
+DIST subliminal-2.3.0.gh.tar.gz 3531908 BLAKE2B 
cdc2df8fb9cff915c9eb7cd6cf490ad460457ebb197e7f79a12acef8eb58bec552e12fd3ead5efb2f95edb0b79d4d4ef42fa64aa18fe516868d0c49c648c2050
 SHA512 
400a57265d4086776d613256e09d900f554c59e225019d4f1efa733fb6dbf7139be37de906603e7569977f974d3e618217993839f8c006f57ca533afa48f17df

diff --git a/media-video/subliminal/files/subliminal-2.3.0-win32-tests.patch 
b/media-video/subliminal/files/subliminal-2.3.0-win32-tests.patch
new file mode 100644
index 000000000000..377b518c1ad5
--- /dev/null
+++ b/media-video/subliminal/files/subliminal-2.3.0-win32-tests.patch
@@ -0,0 +1,52 @@
+https://github.com/Diaoul/subliminal/commit/8f410a261a490cea5f10b60afe281490859b0977
+
+From 8f410a261a490cea5f10b60afe281490859b0977 Mon Sep 17 00:00:00 2001
+From: getzze <[email protected]>
+Date: Mon, 5 May 2025 23:10:49 +0100
+Subject: [PATCH] Make win32-setctime an optional tests dependency, only for
+ win32 platform (#1278)
+
+---
+ pyproject.toml      | 2 +-
+ tests/test_video.py | 7 ++++++-
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index bbe8f7c99..52054d5ec 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -73,7 +73,7 @@ tests = [
+     "sympy",
+     "colorama",  # used in scripts/
+     "vcrpy>=5",  # keep synchronized with docs dependencies
+-    "win32-setctime",
++    "win32-setctime; sys_platform=='win32'",
+     "importlib_metadata>=4.6; python_version<'3.10'",
+ ]
+ types = [
+diff --git a/tests/test_video.py b/tests/test_video.py
+index c8625b5d3..06c737596 100644
+--- a/tests/test_video.py
++++ b/tests/test_video.py
+@@ -7,7 +7,6 @@
+ from unittest.mock import Mock
+ 
+ import pytest
+-from win32_setctime import SUPPORTED, setctime
+ 
+ from subliminal.utils import sanitize, timestamp
+ from subliminal.video import Episode, Movie, Video
+@@ -40,6 +39,12 @@ def test_video_exists_age_no_use_ctime(
+ 
+ 
+ def test_video_exists_age(movies: dict[str, Movie], tmp_path: Path, 
monkeypatch: pytest.MonkeyPatch) -> None:
++    try:
++        from win32_setctime import SUPPORTED, setctime
++    except (ImportError, ModuleNotFoundError):
++        SUPPORTED = False
++        setctime = None
++
+     monkeypatch.chdir(tmp_path)
+     video = movies['man_of_steel']
+     video_path = tmp_path / video.name
+

diff --git a/media-video/subliminal/subliminal-9999.ebuild 
b/media-video/subliminal/subliminal-2.3.0.ebuild
similarity index 67%
copy from media-video/subliminal/subliminal-9999.ebuild
copy to media-video/subliminal/subliminal-2.3.0.ebuild
index e725e00788da..fcca62900667 100644
--- a/media-video/subliminal/subliminal-9999.ebuild
+++ b/media-video/subliminal/subliminal-2.3.0.ebuild
@@ -3,11 +3,11 @@
 
 EAPI=8
 
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..13} )
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{11..13} )
 PYTHON_REQ_USE='xml(+)'
 
-inherit distutils-r1
+inherit distutils-r1 optfeature
 
 DESCRIPTION="Python library to search and download subtitles"
 HOMEPAGE="https://github.com/Diaoul/subliminal 
https://pypi.org/project/subliminal/";
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]] ; then
        EGIT_BRANCH="develop"
 else
        SRC_URI="https://github.com/Diaoul/${PN}/archive/${PV}.tar.gz -> 
${P}.gh.tar.gz"
-       KEYWORDS="~amd64 ~arm64 ~x86"
+       KEYWORDS="~amd64"
 fi
 
 SRC_URI+=" test? ( 
https://downloads.sourceforge.net/matroska/test_files/matroska_test_w1_1.zip )"
@@ -40,16 +40,16 @@ RDEPEND="
        >=dev-python/click-8.0[${PYTHON_USEDEP}]
        >=dev-python/click-option-group-0.5.6[${PYTHON_USEDEP}]
        dev-python/decorator[${PYTHON_USEDEP}]
+       >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
        >=dev-python/dogpile-cache-1.0[${PYTHON_USEDEP}]
-       >=dev-python/enzyme-0.5.0[${PYTHON_USEDEP}]
        >=dev-python/guessit-2.0.1[${PYTHON_USEDEP}]
+       >=dev-python/knowit-0.5.5[${PYTHON_USEDEP}]
        >=dev-python/platformdirs-4.2[${PYTHON_USEDEP}]
        >=dev-python/pysubs2-1.7[${PYTHON_USEDEP}]
-       >=dev-python/rarfile-2.7[compressed,${PYTHON_USEDEP}]
        >=dev-python/requests-2.0[${PYTHON_USEDEP}]
        >=dev-python/srt-3.5[${PYTHON_USEDEP}]
        >=dev-python/stevedore-3.0[${PYTHON_USEDEP}]
-       >=dev-python/tomli-2[${PYTHON_USEDEP}]
+       >=dev-python/tomlkit-0.13.2[${PYTHON_USEDEP}]
 "
 
 EPYTEST_DESELECT=(
@@ -58,11 +58,25 @@ EPYTEST_DESELECT=(
        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
+       tests/test_archives.py::test_is_supported_archive
+       tests/test_archives.py::test_scan_archive_with_one_video
+       tests/test_archives.py::test_scan_archive_with_multiple_videos
+       tests/test_archives.py::test_scan_archive_with_no_video
+       tests/test_archives.py::test_scan_password_protected_archive
+       tests/test_archives.py::test_scan_archive_error
+       tests/test_archives.py::test_scan_videos_error
+       'tests/test_cli.py::test_cli_download_use_absolute_path[never]'
+       'tests/test_cli.py::test_cli_download_use_absolute_path[always]'
+       'tests/test_cli.py::test_cli_download_use_absolute_path[fallback]'
 
        # TODO
        tests/test_core.py::test_refine_video_metadata
 )
 
+PATCHES=(
+       "${FILESDIR}"/${P}-win32-tests.patch
+)
+
 distutils_enable_tests pytest
 
 src_unpack() {
@@ -82,3 +96,7 @@ python_prepare_all() {
 
        distutils-r1_python_prepare_all
 }
+
+pkg_postinst() {
+       optfeature "RAR file support" dev-python/rarfile[compressed]
+}

diff --git a/media-video/subliminal/subliminal-9999.ebuild 
b/media-video/subliminal/subliminal-9999.ebuild
index e725e00788da..fcca62900667 100644
--- a/media-video/subliminal/subliminal-9999.ebuild
+++ b/media-video/subliminal/subliminal-9999.ebuild
@@ -3,11 +3,11 @@
 
 EAPI=8
 
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..13} )
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{11..13} )
 PYTHON_REQ_USE='xml(+)'
 
-inherit distutils-r1
+inherit distutils-r1 optfeature
 
 DESCRIPTION="Python library to search and download subtitles"
 HOMEPAGE="https://github.com/Diaoul/subliminal 
https://pypi.org/project/subliminal/";
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]] ; then
        EGIT_BRANCH="develop"
 else
        SRC_URI="https://github.com/Diaoul/${PN}/archive/${PV}.tar.gz -> 
${P}.gh.tar.gz"
-       KEYWORDS="~amd64 ~arm64 ~x86"
+       KEYWORDS="~amd64"
 fi
 
 SRC_URI+=" test? ( 
https://downloads.sourceforge.net/matroska/test_files/matroska_test_w1_1.zip )"
@@ -40,16 +40,16 @@ RDEPEND="
        >=dev-python/click-8.0[${PYTHON_USEDEP}]
        >=dev-python/click-option-group-0.5.6[${PYTHON_USEDEP}]
        dev-python/decorator[${PYTHON_USEDEP}]
+       >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
        >=dev-python/dogpile-cache-1.0[${PYTHON_USEDEP}]
-       >=dev-python/enzyme-0.5.0[${PYTHON_USEDEP}]
        >=dev-python/guessit-2.0.1[${PYTHON_USEDEP}]
+       >=dev-python/knowit-0.5.5[${PYTHON_USEDEP}]
        >=dev-python/platformdirs-4.2[${PYTHON_USEDEP}]
        >=dev-python/pysubs2-1.7[${PYTHON_USEDEP}]
-       >=dev-python/rarfile-2.7[compressed,${PYTHON_USEDEP}]
        >=dev-python/requests-2.0[${PYTHON_USEDEP}]
        >=dev-python/srt-3.5[${PYTHON_USEDEP}]
        >=dev-python/stevedore-3.0[${PYTHON_USEDEP}]
-       >=dev-python/tomli-2[${PYTHON_USEDEP}]
+       >=dev-python/tomlkit-0.13.2[${PYTHON_USEDEP}]
 "
 
 EPYTEST_DESELECT=(
@@ -58,11 +58,25 @@ EPYTEST_DESELECT=(
        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
+       tests/test_archives.py::test_is_supported_archive
+       tests/test_archives.py::test_scan_archive_with_one_video
+       tests/test_archives.py::test_scan_archive_with_multiple_videos
+       tests/test_archives.py::test_scan_archive_with_no_video
+       tests/test_archives.py::test_scan_password_protected_archive
+       tests/test_archives.py::test_scan_archive_error
+       tests/test_archives.py::test_scan_videos_error
+       'tests/test_cli.py::test_cli_download_use_absolute_path[never]'
+       'tests/test_cli.py::test_cli_download_use_absolute_path[always]'
+       'tests/test_cli.py::test_cli_download_use_absolute_path[fallback]'
 
        # TODO
        tests/test_core.py::test_refine_video_metadata
 )
 
+PATCHES=(
+       "${FILESDIR}"/${P}-win32-tests.patch
+)
+
 distutils_enable_tests pytest
 
 src_unpack() {
@@ -82,3 +96,7 @@ python_prepare_all() {
 
        distutils-r1_python_prepare_all
 }
+
+pkg_postinst() {
+       optfeature "RAR file support" dev-python/rarfile[compressed]
+}

Reply via email to