8000 Merge pull request #213 from kkroening/black · Powercoder64/ffmpeg-python@ab42ab4 · GitHub
[go: up one dir, main page]

Skip to content

Commit ab42ab4

Browse files
authored
Merge pull request kkroening#213 from kkroening/black
Use Black formatter
2 parents 1b26342 + fff79e6 commit ab42ab4

File tree

11 files changed

+435
-249
lines changed

11 files changed

+435
-249
lines changed

ffmpeg/_ffmpeg.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,4 @@ def output(*streams_and_filename, **kwargs):
9494
return OutputNode(streams, output.__name__, kwargs=kwargs).stream()
9595

9696

97-
__all__ = [
98-
'input',
99-
'merge_outputs',
100-
'output',
101-
'overwrite_output',
102-
]
97+
__all__ = ['input', 'merge_outputs', 'output', 'overwrite_output']

ffmpeg/_filters.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ def filter_multi_output(stream_spec, filter_name, *args, **kwargs):
2121
ffmpeg.concat(split0, split1).output('out.mp4').run()
2222
```
2323
"""
24-
return FilterNode(stream_spec, filter_name, args=args, kwargs=kwargs, max_inputs=None)
24+
return FilterNode(
25+
stream_spec, filter_name, args=args, kwargs=kwargs, max_inputs=None
26+
)
2527

2628

2729
@filter_operator()
@@ -144,7 +146,12 @@ def overlay(main_parent_node, overlay_parent_node, eof_action='repeat', **kwargs
144146
Official documentation: `overlay <https://ffmpeg.org/ffmpeg-filters.html#overlay-1>`__
145147
"""
146148
kwargs['eof_action'] = eof_action
147-
return FilterNode([main_parent_node, overlay_parent_node], overlay.__name__, kwargs=kwargs, max_inputs=2).stream()
149+
return FilterNode(
150+
[main_parent_node, overlay_parent_node],
151+
overlay.__name__,
152+
kwargs=kwargs,
153+
max_inputs=2,
154+
).stream()
148155

149156

150157
@filter_operator()
@@ -180,10 +187,7 @@ def crop(stream, x, y, width, height, **kwargs):
180187
Official documentation: `crop <https://ffmpeg.org/ffmpeg-filters.html#crop>`__
181188
"""
182189
return FilterNode(
183-
stream,
184-
crop.__name__,
185-
args=[width, height, x, y],
186-
kwargs=kwargs
190+
stream, crop.__name__, args=[width, height, x, y], kwargs=kwargs
187191
).stream()
188192

189193

@@ -209,7 +213,9 @@ def drawbox(stream, x, y, width, height, color, thickness=None, **kwargs):
209213
"""
210214
if thickness:
211215
kwargs['t'] = thickness
212-
return FilterNode(stream, drawbox.__name__, args=[x, y, width, height, color], kwargs=kwargs).stream()
216+
return FilterNode(
217+
stream, drawbox.__name__, args=[x, y, width, height, color], kwargs=kwargs
218+
).stream()
213219

214220

215221
@filter_operator()
@@ -385,8 +391,10 @@ def concat(*streams, **kwargs):
385391
stream_count = video_stream_count + audio_stream_count
386392
if len(streams) % stream_count != 0:
387393
raise ValueError(
388-
'Expected concat input streams to have length multiple of {} (v={}, a={}); got {}'
389-
.format(stream_count, video_stream_count, audio_stream_count, len(streams)))
394+
'Expected concat input streams to have length multiple of {} (v={}, a={}); got {}'.format(
395+
stream_count, video_stream_count, audio_stream_count, len(streams)
396+
)
397+
)
390398
kwargs['n'] = int(len(streams) / stream_count)
391399
return FilterNode(streams, concat.__name__, kwargs=kwargs, max_inputs=None).stream()
392400

ffmpeg/_probe.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,4 @@ def probe(filename, cmd='ffprobe', **kwargs):
2424
return json.loads(out.decode('utf-8'))
2525

2626

27-
__all__ = [
28-
'probe',
29-
]
27+
__all__ = ['probe']

ffmpeg/_run.py

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@
88
import operator
99
import subprocess
1010

11-
from ._ffmpeg import (
12-
input,
13-
output,
14-
)
11+
from ._ffmpeg import input, output
1512
from .nodes import (
1613
get_stream_spec_nodes,
1714
FilterNode,
@@ -24,7 +21,9 @@
2421

2522
class Error(Exception):
2623
def __init__(self, cmd, stdout, stderr):
27-
super(Error, self).__init__('{} error (see stderr output for detail)'.format(cmd))
24+
super(Error, self).__init__(
25+
'{} error (see stderr output for detail)'.format(cmd)
26+
)
2827
self.stdout = stdout
2928
self.stderr = stderr
3029

@@ -69,9 +68,15 @@ def _format_output_stream_name(stream_name_map, edge):
6968
def _get_filter_spec(node, outgoing_edge_map, stream_name_map):
7069
incoming_edges = node.incoming_edges
7170
outgoing_edges = get_outgoing_edges(node, outgoing_edge_map)
72-
inputs = [_format_input_stream_name(stream_name_map, edge) for edge in incoming_edges]
73-
outputs = [_format_output_stream_name(stream_name_map, edge) for edge in outgoing_edges]
74-
filter_spec = '{}{}{}'.format(''.join(inputs), node._get_filter(outgoing_edges), ''.join(outputs))
71+
inputs = [
72+
_format_input_stream_name(stream_name_map, edge) for edge in incoming_edges
73+
]
74+
outputs = [
75+
_format_output_stream_name(stream_name_map, edge) for edge in outgoing_edges
76+
]
77+
filter_spec = '{}{}{}'.format(
78+
''.join(inputs), node._get_filter(outgoing_edges), ''.join(outputs)
79+
)
7580
return filter_spec
7681

7782

@@ -84,14 +89,20 @@ def _allocate_filter_stream_names(filter_nodes, outgoing_edge_maps, stream_name_
8489
# TODO: automatically insert `splits` ahead of time via graph transformation.
8590
raise ValueError(
8691
'Encountered {} with multiple outgoing edges with same upstream label {!r}; a '
87-
'`split` filter is probably required'.format(upstream_node, upstream_label))
92+
'`split` filter is probably required'.format(
93+
upstream_node, upstream_label
94+
)
95+
)
8896
stream_name_map[upstream_node, upstream_label] = 's{}'.format(stream_count)
8997
stream_count += 1
9098

9199

92100
def _get_filter_arg(filter_nodes, outgoing_edge_maps, stream_name_map):
93101
_allocate_filter_stream_names(filter_nodes, outgoing_edge_maps, stream_name_map)
94-
filter_specs = [_get_filter_spec(node, outgoing_edge_maps[node], stream_name_map) for node in filter_nodes]
102+
filter_specs = [
103+
_get_filter_spec(node, outgoing_edge_maps[node], stream_name_map)
104+
for node in filter_nodes
105+
]
95106
return ';'.join(filter_specs)
96107

97108

@@ -109,7 +120,9 @@ def _get_output_args(node, stream_name_map):
109120

110121
for edge in node.incoming_edges:
111122
# edge = node.incoming_edges[0]
112-
stream_name = _format_input_stream_name(stream_name_map, edge, is_final_arg=True)
123+
stream_name = _format_input_stream_name(
124+
stream_name_map, edge, is_final_arg=True
125+
)
113126
if stream_name != '0' or len(node.incoming_edges) > 1:
114127
args += ['-map', stream_name]
115128

@@ -123,7 +136,9 @@ def _get_output_args(node, stream_name_map):
123136
args += ['-b:a', str(kwargs.pop('audio_bitrate'))]
124137
if 'video_size' in kwargs:
125138
video_size = kwargs.pop('video_size')
126-
if not isinstance(video_size, basestring) and isinstance(video_size, collections.Iterable):
139+
if not isinstance(video_size, basestring) and isinstance(
140+
video_size, collections.Iterable
141+
):
127142
video_size = '{}x{}'.format(video_size[0], video_size[1])
128143
args += ['-video_size', video_size]
129144
args += convert_kwargs_to_cmd_line_args(kwargs)
@@ -147,7 +162,9 @@ def get_args(stream_spec, overwrite_output=False):
147162
args += reduce(operator.add, [_get_input_args(node) for node in input_nodes])
148163
if filter_arg:
149164
args += ['-filter_complex', filter_arg]
150-
args += reduce(operator.add, [_get_output_args(node, stream_name_map) for node in output_nodes])
165+
args += reduce(
166+
operator.add, [_get_output_args(node, stream_name_map) for node in output_nodes]
167+
)
151168
args += reduce(operator.add, [_get_global_args(node) for node in global_nodes], [])
152169
if overwrite_output:
153170
args += ['-y']
@@ -175,8 +192,14 @@ def compile(stream_spec, cmd='ffmpeg', overwrite_output=False):
175192

176193
@output_operator()
177194
def run_async(
178-
stream_spec, cmd='ffmpeg', pipe_stdin=False, pipe_stdout=False, pipe_stderr=False,
179-
quiet=False, overwrite_output=False):
195+
stream_spec,
196+
cmd='ffmpeg',
197+
pipe_stdin=False,
198+
pipe_stdout=False,
199+
pipe_stderr=False,
200+
quiet=False,
201+
overwrite_output=False,
202+
):
180203
"""Asynchronously invoke ffmpeg for the supplied node graph.
181204
182205
Args:
@@ -259,13 +282,20 @@ def run_async(
259282
stdout_stream = subprocess.PIPE if pipe_stdout or quiet else None
260283
stderr_stream = subprocess.PIPE if pipe_stderr or quiet else None
261284
return subprocess.Popen(
262-
args, stdin=stdin_stream, stdout=stdout_stream, stderr=stderr_stream)
285+
args, stdin=stdin_stream, stdout=stdout_stream, stderr=stderr_stream
286+
)
263287

264288

265289
@output_operator()
266290
def run(
267-
stream_spec, cmd='ffmpeg', capture_stdout=False, capture_stderr=False, input=None,
268-
quiet=False, overwrite_output=False):
291+
stream_spec,
292+
cmd='ffmpeg',
293+
capture_ F438 stdout=False,
294+
capture_stderr=False,
295+
input=None,
296+
quiet=False,
297+
overwrite_output=False,
298+
):
269299
"""Invoke ffmpeg for the supplied node graph.
270300
271301
Args:
@@ -296,10 +326,4 @@ def run(
296326
return out, err
297327

298328

299-
__all__ = [
300-
'compile',
301-
'Error',
302-
'get_args',
303-
'run',
304-
'run_async',
305-
]
329+
__all__ = ['compile', 'Error', 'get_args', 'run', 'run_async']

ffmpeg/_utils.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,11 @@ def __new__(cls, name, this_bases, d):
3434

3535

3636
if sys.version_info.major >= 3:
37+
3738
class basestring(with_metaclass(BaseBaseString)):
3839
pass
40+
41+
3942
else:
4043
# noinspection PyUnresolvedReferences,PyCompatibility
4144
from builtins import basestring
@@ -52,7 +55,10 @@ def _recursive_repr(item):
5255
elif isinstance(item, list):
5356
result = '[{}]'.format(', '.join([_recursive_repr(x) for x in item]))
5457
elif isinstance(item, dict):
55-
kv_pairs = ['{}: {}'.format(_recursive_repr(k), _recursive_repr(item[k])) for k in sorted(item)]
58+
kv_pairs = [
59+
'{}: {}'.format(_recursive_repr(k), _recursive_repr(item[k]))
60+
for k in sorted(item)
61+
]
5662
result = '{' + ', '.join(kv_pairs) + '}'
5763
else:
5864
result = repr(item)

ffmpeg/_view.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,10 @@ def view(stream_spec, detail=False, filename=None, pipe=False, **kwargs):
3434
try:
3535
import graphviz
3636
except ImportError:
37-
raise ImportError('failed to import graphviz; please make sure graphviz is installed (e.g. `pip install '
38-
'graphviz`)')
37+
raise ImportError(
38+
'failed to import graphviz; please make sure graphviz is installed (e.g. `pip install '
39+
'graphviz`)'
40+
)
3941

4042
show_labels = kwargs.pop('show_labels', True)
4143
if pipe and filename is not None:
@@ -49,19 +51,25 @@ def view(stream_spec, detail=False, filename=None, pipe=False, **kwargs):
4951
graph = graphviz.Digraph(format='png')
5052
graph.attr(rankdir='LR')
5153
if len(list(kwargs.keys())) != 0:
52-
raise ValueError('Invalid kwargs key(s): {}'.format(', '.join(list(kwargs.keys()))))
54+
raise ValueError(
55+
'Invalid kwargs key(s): {}'.format(', '.join(list(kwargs.keys())))
56+
)
5357

5458
for node in sorted_nodes:
5559
color = _get_node_color(node)
5660

5761
if detail:
5862
lines = [node.short_repr]
5963
lines += ['{!r}'.format(arg) for arg in node.args]
60-
lines += ['{}={!r}'.format(key, node.kwargs[key]) for key in sorted(node.kwargs)]
64+
lines += [
65+
'{}={!r}'.format(key, node.kwargs[key]) for key in sorted(node.kwargs)
66+
]
6167
node_text = '\n'.join(lines)
6268
else:
6369
node_text = node.short_repr
64-
graph.node(str(hash(node)), node_text, shape='box', style='filled', fillcolor=color)
70+
graph.node(
71+
str(hash(node)), node_text, shape='box', style='filled', fillcolor=color
72+
)
6573
outgoing_edge_map = outgoing_edge_maps.get(node, {})
6674

6775
for edge in get_outgoing_edges(node, outgoing_edge_map):
@@ -70,7 +78,11 @@ def view(stream_spec, detail=False, filename=None, pipe=False, **kwargs):
7078
down_label = edge.downstream_label
7179
up_selector = edge.upstream_selector
7280

73-
if show_labels and (up_label is not None or down_label is not None or up_selector is not None):
81+
if show_labels and (
82+
up_label is not None
83+
or down_label is not None
84+
or up_selector is not None
85+
):
7486
if up_label is None:
7587
up_label = ''
7688
if up_selector is not None:
@@ -93,6 +105,4 @@ def view(stream_spec, detail=False, filename=None, pipe=False, **kwargs):
93105
return stream_spec
94106

95107

96-
__all__ = [
97-
'view',
98-
]
108+
__all__ = ['view']

0 commit comments

Comments
 (0)
0