MCPcopy Create free account
hub / github.com/modelscope/modelscope / PipelineClassAnalyzer

Class PipelineClassAnalyzer

modelscope/utils/input_output.py:321–368  ·  view source on GitHub ↗

Analysis pipeline class define get inputs and parameters.

Source from the content-addressed store, hash-verified

319
320
321class PipelineClassAnalyzer(ast.NodeVisitor):
322 """Analysis pipeline class define get inputs and parameters.
323 """
324
325 def __init__(self) -> None:
326 super().__init__()
327 self.parameters = []
328 self.has_call = False
329 self.preprocess_parameters = []
330 self.has_preprocess = False
331 self.has_postprocess = False
332 self.has_forward = False
333 self.forward_parameters = []
334 self.postprocess_parameters = []
335 self.lineno = 0
336 self.end_lineno = 0
337
338 def visit_FunctionDef(self, node: ast.FunctionDef) -> Any:
339 if node.name == '__call__':
340 self.parameters = process_args(node.args)
341 self.has_call = True
342 if node.name == 'preprocess':
343 self.preprocess_parameters = process_args(node.args)
344 self.has_preprocess = True
345 elif node.name == 'postprocess':
346 self.postprocess_parameters = process_args(node.args)
347 self.has_postprocess = True
348 elif node.name == 'forward':
349 self.forward_parameters = process_args(node.args)
350 self.has_forward = True
351
352 def get_input_parameters(self):
353 if self.has_call:
354 # custom define __call__ inputs and parameter are control by the
355 # custom __call__, all parameter is input.
356 return self.parameters, None
357 parameters = []
358 if self.has_preprocess:
359 parameters.extend(self.preprocess_parameters[1:])
360 if self.has_forward:
361 parameters.extend(self.forward_parameters[1:])
362 if self.has_postprocess:
363 parameters.extend(self.postprocess_parameters[1:])
364
365 if len(parameters) > 0:
366 return None, parameters
367 else:
368 return None, []
369
370
371class AnalysisSourceFileRegisterModules(ast.NodeVisitor):

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…