88import  operator 
99import  subprocess 
1010
11- from  ._ffmpeg  import  (
12-     input ,
13-     output ,
14- )
11+ from  ._ffmpeg  import  input , output 
1512from  .nodes  import  (
1613    get_stream_spec_nodes ,
1714    FilterNode ,
2421
2522class  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):
6968def  _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
92100def  _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 () 
177194def  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 () 
266290def  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_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' ]
0 commit comments