gentoo/dev-python/ffmpeg-python/files/ffmpeg-python-0.2.0-no-future-795.patch
Maciej Barć 52384c2920
dev-python/ffmpeg-python: bump to 0.2.0_p20220711
Closes: https://bugs.gentoo.org/888275
Signed-off-by: Maciej Barć <xgqt@gentoo.org>
2024-01-10 17:30:59 +01:00

190 lines
5.9 KiB
Diff

From 6abf0354bced3fc5f3a592870723c7446ae8747d Mon Sep 17 00:00:00 2001
From: Lumir Balhar <lbalhar@redhat.com>
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