summaryrefslogtreecommitdiff
path: root/dev-python/ffmpeg-python/files/ffmpeg-python-0.2.0-no-future-795.patch
blob: 8bbc29ab8b2170e3f06c23a10d254b477118491e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
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