@@ -148,22 +148,31 @@ def __init__(self, stream_spec, name, max_inputs=1, args=[], kwargs={}):
148148 kwargs = kwargs
149149 )
150150
151- """FilterNode"""
152- def _get_filter (self , outgoing_edges ):
153- args = self .args
154- kwargs = self .kwargs
155- if self .name == 'split' :
156- args = [len (outgoing_edges )]
151+ @classmethod
152+ def _get_item_param (cls , item ):
153+ return escape_chars (item , '\\ \' =:' )
157154
158- out_args = [escape_chars (x , '\\ \' =:' ) for x in args ]
155+ @classmethod
156+ def _get_dict_params (cls , d ):
159157 out_kwargs = {}
160- for k , v in list (kwargs .items ()):
158+ for k , v in list (d .items ()):
161159 k = escape_chars (k , '\\ \' =:' )
162160 v = escape_chars (v , '\\ \' =:' )
163161 out_kwargs [k ] = v
162+ return ['{}={}' .format (k , out_kwargs [k ]) for k in sorted (out_kwargs )]
163+
164+ @classmethod
165+ def _get_list_params (cls , l ):
166+ out_args = [cls ._get_item_param (x ) for x in l ]
167+ return [escape_chars (v , '\\ \' =:' ) for v in out_args ]
168+
169+ def _get_filter (self , outgoing_edges ):
170+ args = self .args
171+ if self .name == 'split' :
172+ args = [len (outgoing_edges )]
164173
165- arg_params = [ escape_chars ( v , ' \\ \' =:' ) for v in out_args ]
166- kwarg_params = [ '{}={}' . format ( k , out_kwargs [ k ]) for k in sorted ( out_kwargs )]
174+ arg_params = self . _get_list_params ( args )
175+ kwarg_params = self . _get_dict_params ( self . kwargs )
167176 params = arg_params + kwarg_params
168177
169178 params_text = escape_chars (self .name , '\\ \' =:' )
0 commit comments