commit:     52384c2920c1c36366698b128116bd84abef5392
Author:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 10 15:35:53 2024 +0000
Commit:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Wed Jan 10 16:30:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=52384c29

dev-python/ffmpeg-python: bump to 0.2.0_p20220711

Closes: https://bugs.gentoo.org/888275
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>

 dev-python/ffmpeg-python/Manifest                  |   1 +
 .../ffmpeg-python-0.2.0_p20220711.ebuild           |  56 ++++++
 .../files/ffmpeg-python-0.2.0-no-future-795.patch  | 189 +++++++++++++++++++++
 3 files changed, 246 insertions(+)

diff --git a/dev-python/ffmpeg-python/Manifest 
b/dev-python/ffmpeg-python/Manifest
index c1f30ed46ffd..de0664fc0583 100644
--- a/dev-python/ffmpeg-python/Manifest
+++ b/dev-python/ffmpeg-python/Manifest
@@ -1 +1,2 @@
 DIST ffmpeg-python-0.2.0.tar.gz 3267771 BLAKE2B 
8bca4a24434b6c7a542e3c178cb7bf1e5650f9763636d5378f9652cdd07ef19b0e96007d6bb71fdf1664efb6e33d597844c7d6a44dc8dcb1c083e21f53649469
 SHA512 
933ed958d61536bbbc0e0b08e19521c4b1f7df1cfe97de0b3d149a2748c5bd74915a3134861e8ecb1f92d5860315228b76aefcd087fcf07e188a56c651f5e301
+DIST ffmpeg-python-0.2.0_p20220711.gh.tar.gz 3286678 BLAKE2B 
f2dd4445f43ebf2a867d528e24e80b137ddc099770069e1fdf081b640f8ea192ee0b17c26d9ee3d8a69a9c7bbd61d0b75cc3468aa5da4fdd809e50126dff4e06
 SHA512 
81f20e5cad819500b941d9ac579fe01efb4292f61e6279c6d560d70c11143d7c04146a8ccf9ae8ab6985cf04e6b7cc05849ec67df646caa75764f3a2c5761cde

diff --git a/dev-python/ffmpeg-python/ffmpeg-python-0.2.0_p20220711.ebuild 
b/dev-python/ffmpeg-python/ffmpeg-python-0.2.0_p20220711.ebuild
new file mode 100644
index 000000000000..ad656ad67636
--- /dev/null
+++ b/dev-python/ffmpeg-python/ffmpeg-python-0.2.0_p20220711.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+[[ "${PV}" == *_p20220711 ]] && COMMIT=df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for FFmpeg with complex filtering support"
+HOMEPAGE="https://github.com/kkroening/ffmpeg-python/";
+
+if [[ "${PV}" == *9999* ]] ; then
+       inherit git-r3
+
+       EGIT_REPO_URI="https://github.com/kkroening/${PN}.git";
+else
+       SRC_URI="https://github.com/kkroening/${PN}/archive/${COMMIT}.tar.gz
+               -> ${P}.gh.tar.gz"
+       S="${WORKDIR}/${PN}-${COMMIT}"
+
+       KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+RDEPEND="
+       dev-python/numpy[${PYTHON_USEDEP}]
+       media-video/ffmpeg
+"
+BDEPEND="
+       test? (
+               dev-python/pytest-mock[${PYTHON_USEDEP}]
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-0.2.0-no-future-795.patch"
+)
+
+EPYTEST_DESELECT=(
+       ffmpeg/tests/test_ffmpeg.py::test__get_filter_complex_input
+       ffmpeg/tests/test_ffmpeg.py::test__input__start_time
+       ffmpeg/tests/test_ffmpeg.py::test__multi_output_edge_label_order
+       ffmpeg/tests/test_ffmpeg.py::test__probe
+       ffmpeg/tests/test_ffmpeg.py::test__probe__extra_args
+       ffmpeg/tests/test_ffmpeg.py::test_fluent_complex_filter
+       ffmpeg/tests/test_ffmpeg.py::test_pipe
+       ffmpeg/tests/test_ffmpeg.py::test_repeated_args
+)
+
+distutils_enable_tests pytest
+distutils_enable_sphinx doc/src

diff --git 
a/dev-python/ffmpeg-python/files/ffmpeg-python-0.2.0-no-future-795.patch 
b/dev-python/ffmpeg-python/files/ffmpeg-python-0.2.0-no-future-795.patch
new file mode 100644
index 000000000000..8bbc29ab8b21
--- /dev/null
+++ b/dev-python/ffmpeg-python/files/ffmpeg-python-0.2.0-no-future-795.patch
@@ -0,0 +1,189 @@
+From 6abf0354bced3fc5f3a592870723c7446ae8747d Mon Sep 17 00:00:00 2001
+From: Lumir Balhar <[email protected]>
+Date: Wed, 20 Sep 2023 14:18:16 +0200
+Subject: [PATCH] Remove dependency on `future`
+
+---
+ ffmpeg/_ffmpeg.py |  5 +----
+ ffmpeg/_run.py    |  6 +++---
+ ffmpeg/_utils.py  | 36 +-----------------------------------
+ ffmpeg/nodes.py   |  3 +--
+ requirements.txt  |  1 -
+ setup.py          |  3 +--
+ tox.ini           |  1 -
+ 7 files changed, 7 insertions(+), 48 deletions(-)
+
+diff --git a/ffmpeg/_ffmpeg.py b/ffmpeg/_ffmpeg.py
+index 007624bb..57dc0c96 100644
+--- a/ffmpeg/_ffmpeg.py
++++ b/ffmpeg/_ffmpeg.py
+@@ -1,8 +1,5 @@
+ from __future__ import unicode_literals
+ 
+-from past.builtins import basestring
+-from ._utils import basestring
+-
+ from .nodes import (
+     filter_operator,
+     GlobalNode,
+@@ -79,7 +76,7 @@ def output(*streams_and_filename, **kwargs):
+     """
+     streams_and_filename = list(streams_and_filename)
+     if 'filename' not in kwargs:
+-        if not isinstance(streams_and_filename[-1], basestring):
++        if not isinstance(streams_and_filename[-1], str):
+             raise ValueError('A filename must be provided')
+         kwargs['filename'] = streams_and_filename.pop(-1)
+     streams = streams_and_filename
+diff --git a/ffmpeg/_run.py b/ffmpeg/_run.py
+index f42d1d73..7a8b3937 100644
+--- a/ffmpeg/_run.py
++++ b/ffmpeg/_run.py
+@@ -1,6 +1,6 @@
+ from __future__ import unicode_literals
+ from .dag import get_outgoing_edges, topo_sort
+-from ._utils import basestring, convert_kwargs_to_cmd_line_args
++from ._utils import convert_kwargs_to_cmd_line_args
+ from builtins import str
+ from functools import reduce
+ import copy
+@@ -140,7 +140,7 @@ def _get_output_args(node, stream_name_map):
+         args += ['-b:a', str(kwargs.pop('audio_bitrate'))]
+     if 'video_size' in kwargs:
+         video_size = kwargs.pop('video_size')
+-        if not isinstance(video_size, basestring) and isinstance(video_size, 
Iterable):
++        if not isinstance(video_size, str) and isinstance(video_size, 
Iterable):
+             video_size = '{}x{}'.format(video_size[0], video_size[1])
+         args += ['-video_size', video_size]
+     args += convert_kwargs_to_cmd_line_args(kwargs)
+@@ -185,7 +185,7 @@ def compile(stream_spec, cmd='ffmpeg', 
overwrite_output=False):
+     This is the same as calling :meth:`get_args` except that it also
+     includes the ``ffmpeg`` command as the first argument.
+     """
+-    if isinstance(cmd, basestring):
++    if isinstance(cmd, str):
+         cmd = [cmd]
+     elif type(cmd) != list:
+         cmd = list(cmd)
+diff --git a/ffmpeg/_utils.py b/ffmpeg/_utils.py
+index 9baa2c78..21f612ea 100644
+--- a/ffmpeg/_utils.py
++++ b/ffmpeg/_utils.py
+@@ -1,31 +1,9 @@
+ from __future__ import unicode_literals
+ from builtins import str
+-from past.builtins import basestring
+ import hashlib
+ import sys
+ 
+ 
+-if sys.version_info.major == 2:
+-    # noinspection PyUnresolvedReferences,PyShadowingBuiltins
+-    str = str
+-
+-try:
+-    from collections.abc import Iterable
+-except ImportError:
+-    from collections import Iterable
+-
+-
+-# `past.builtins.basestring` module can't be imported on Python3 in some 
environments (Ubuntu).
+-# This code is copy-pasted from it to avoid crashes.
+-class BaseBaseString(type):
+-    def __instancecheck__(cls, instance):
+-        return isinstance(instance, (bytes, str))
+-
+-    def __subclasshook__(cls, thing):
+-        # TODO: What should go here?
+-        raise NotImplemented
+-
+-
+ def with_metaclass(meta, *bases):
+     class metaclass(meta):
+         __call__ = type.__call__
+@@ -39,25 +17,13 @@ def __new__(cls, name, this_bases, d):
+     return metaclass('temporary_class', None, {})
+ 
+ 
+-if sys.version_info.major >= 3:
+-
+-    class basestring(with_metaclass(BaseBaseString)):
+-        pass
+-
+-else:
+-    # noinspection PyUnresolvedReferences,PyCompatibility
+-    from builtins import basestring
+-
+-
+ def _recursive_repr(item):
+     """Hack around python `repr` to deterministically represent dictionaries.
+ 
+     This is able to represent more things than json.dumps, since it does not 
require
+     things to be JSON serializable (e.g. datetimes).
+     """
+-    if isinstance(item, basestring):
+-        result = str(item)
+-    elif isinstance(item, list):
++    if isinstance(item, list):
+         result = '[{}]'.format(', '.join([_recursive_repr(x) for x in item]))
+     elif isinstance(item, dict):
+         kv_pairs = [
+diff --git a/ffmpeg/nodes.py b/ffmpeg/nodes.py
+index e8b28385..cc219c72 100644
+--- a/ffmpeg/nodes.py
++++ b/ffmpeg/nodes.py
+@@ -1,6 +1,5 @@
+ from __future__ import unicode_literals
+ 
+-from past.builtins import basestring
+ from .dag import KwargReprNode
+ from ._utils import escape_chars, get_hash_int
+ from builtins import object
+@@ -68,7 +67,7 @@ def __getitem__(self, index):
+         """
+         if self.selector is not None:
+             raise ValueError('Stream already has a selector: {}'.format(self))
+-        elif not isinstance(index, basestring):
++        elif not isinstance(index, str):
+             raise TypeError("Expected string index (e.g. 'a'); got 
{!r}".format(index))
+         return self.node.stream(label=self.label, selector=index)
+ 
+diff --git a/requirements.txt b/requirements.txt
+index f8b347e9..b4bc370e 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -6,7 +6,6 @@ certifi==2019.3.9
+ chardet==3.0.4
+ docutils==0.14
+ filelock==3.0.12
+-future==0.17.1
+ idna==2.8
+ imagesize==1.1.0
+ importlib-metadata==0.17
+diff --git a/setup.py b/setup.py
+index 72f381cb..2fbf9a3d 100644
+--- a/setup.py
++++ b/setup.py
+@@ -68,10 +68,9 @@
+     download_url=download_url,
+     keywords=keywords,
+     long_description=long_description,
+-    install_requires=['future'],
++    install_requires=[],
+     extras_require={
+         'dev': [
+-            'future==0.17.1',
+             'numpy==1.16.4',
+             'pytest-mock==1.10.4',
+             'pytest==4.6.1',
+diff --git a/tox.ini b/tox.ini
+index 98814078..eb8c6622 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -19,6 +19,5 @@ python =
+ [testenv]
+ commands = py.test -vv
+ deps =
+-    future
+     pytest
+     pytest-mock

Reply via email to