1
1
from __future__ import unicode_literals
2
2
3
+ from builtins import str
3
4
from .dag import get_outgoing_edges
4
5
from ._run import topo_sort
5
6
import os
6
7
import tempfile
7
8
8
9
from ffmpeg .nodes import (
9
10
FilterNode ,
11
+ get_stream_map ,
10
12
InputNode ,
11
13
OutputNode ,
12
14
Stream ,
@@ -30,7 +32,7 @@ def _get_node_color(node):
30
32
31
33
32
34
@stream_operator ()
33
- def view (* streams , ** kwargs ):
35
+ def view (stream_spec , ** kwargs ):
34
36
try :
35
37
import graphviz
36
38
except ImportError :
@@ -43,16 +45,17 @@ def view(*streams, **kwargs):
43
45
filename = tempfile .mktemp ()
44
46
45
47
nodes = []
46
- for stream in streams :
48
+ stream_map = get_stream_map (stream_spec )
49
+ for stream in stream_map .values ():
47
50
if not isinstance (stream , Stream ):
48
51
raise TypeError ('Expected Stream; got {}' .format (type (stream )))
49
52
nodes .append (stream .node )
50
53
51
54
sorted_nodes , outgoing_edge_maps = topo_sort (nodes )
52
55
graph = graphviz .Digraph ()
53
56
graph .attr (rankdir = 'LR' )
54
- if len (kwargs .keys ()) != 0 :
55
- raise ValueError ('Invalid kwargs key(s): {}' .format (', ' .join (kwargs .keys ())))
57
+ if len (list ( kwargs .keys () )) != 0 :
58
+ raise ValueError ('Invalid kwargs key(s): {}' .format (', ' .join (list ( kwargs .keys () ))))
56
59
57
60
for node in sorted_nodes :
58
61
name = node .name
@@ -83,6 +86,7 @@ def view(*streams, **kwargs):
83
86
84
87
graph .view (filename )
85
88
89
+ return stream_spec
86
90
87
91
88
92
__all__ = [
0 commit comments