2121import inspect
2222import os
2323from dataclasses import dataclass
24- from typing import Any , Callable , List , Optional , get_type_hints
24+ from typing import Any , Callable , List , Optional , Union , get_type_hints
2525
2626from robot .api .deco import keyword # noqa F401
2727from robot .errors import DataError
@@ -304,11 +304,11 @@ def __init__(self, argument_specification=None, documentation=None, argument_typ
304304
305305
306306class PluginParser :
307- def __init__ (self , base_class : Optional [Any ] = None , python_object : List [ Any ] = [] ):
307+ def __init__ (self , base_class : Optional [Any ] = None , python_object = None ):
308308 self ._base_class = base_class
309- self ._python_object = python_object
309+ self ._python_object = python_object if python_object else []
310310
311- def parse_plugins (self , plugins : str ) -> List :
311+ def parse_plugins (self , plugins : Union [ str , List [ str ]] ) -> List :
312312 imported_plugins = []
313313 importer = Importer ("test library" )
314314 for parsed_plugin in self ._string_to_modules (plugins ):
@@ -327,11 +327,11 @@ def parse_plugins(self, plugins: str) -> List:
327327 def get_plugin_keywords (self , plugins : List ):
328328 return DynamicCore (plugins ).get_keyword_names ()
329329
330- def _string_to_modules (self , modules ):
330+ def _string_to_modules (self , modules : Union [ str , List [ str ]] ):
331331 parsed_modules : list = []
332332 if not modules :
333333 return parsed_modules
334- for module in modules . split ( "," ):
334+ for module in self . _modules_splitter ( modules ):
335335 module = module .strip ()
336336 module_and_args = module .split (";" )
337337 module_name = module_and_args .pop (0 )
@@ -346,3 +346,11 @@ def _string_to_modules(self, modules):
346346 module = Module (module = module_name , args = args , kw_args = kw_args )
347347 parsed_modules .append (module )
348348 return parsed_modules
349+
350+ def _modules_splitter (self , modules : Union [str , List [str ]]):
351+ if isinstance (modules , str ):
352+ for module in modules .split ("," ):
353+ yield module
354+ else :
355+ for module in modules :
356+ yield module
0 commit comments