22 from .arguments
import EmbeddedArguments, UserKeywordArgumentParser
23 from .handlerstore
import HandlerStore
24 from .userkeywordrunner
import UserKeywordRunner, EmbeddedArgumentsRunner
25 from .usererrorhandler
import UserErrorHandler
30 def __init__(self, resource, resource_file=True):
31 source = resource.source
32 basename = os.path.basename(source)
if source
else None
33 self.
namename = os.path.splitext(basename)[0]
if resource_file
else None
34 self.
docdoc = resource.doc
37 for kw
in resource.keywords:
40 except DataError
as error:
43 embedded = isinstance(handler, EmbeddedArgumentsHandler)
45 self.
handlershandlers.add(handler, embedded)
46 except DataError
as error:
52 embedded = EmbeddedArguments.from_name(kw.name)
56 raise DataError(
'Keyword cannot have both normal and embedded arguments.')
60 LOGGER.error(f
"Error in file '{self.source}' on line {handler.lineno}: "
61 f
"Creating keyword '{handler.name}' failed: {error.message}")
64 return self.
handlershandlers.get_handlers(name)
70 supports_embedded_args =
False
73 self.
namename = keyword.name
75 self.
docdoc = keyword.doc
78 self.
tagstags = keyword.tags
82 self.
bodybody = keyword.body
102 return bool(self.
tagstags
and self.
tagstags.
robot(
'private'))
109 supports_embedded_args =
True
116 return self.
embeddedembedded.match(name)
is not None
Created if creating handlers fail – running raises DataError.
def create_runner(self, name, languages=None)
def __init__(self, keyword, libname, embedded)
def __init__(self, keyword, libname)
def create_runner(self, name, languages=None)
def handlers_for(self, name)
def __init__(self, resource, resource_file=True)
def _create_handler(self, kw)
def _log_creating_failed(self, handler, error)
def getshortdoc(doc_or_item, linesep='\n')