forked from imbus/robotframework-debuglibrary
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathrobotlib.py
More file actions
65 lines (51 loc) · 1.86 KB
/
robotlib.py
File metadata and controls
65 lines (51 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from robot.libdocpkg.model import LibraryDoc
from robot.libdocpkg.robotbuilder import (
KeywordDocBuilder,
LibraryDocBuilder,
ResourceDocBuilder,
)
from robot.libraries import STDLIBS
from robot.libraries.BuiltIn import BuiltIn
def get_builtin_libs():
"""Get robotframework builtin library names."""
return list(STDLIBS)
def get_libs():
"""Get imported robotframework library names."""
libs = get_libraries()
resources = get_resources()
libs.extend(resources)
return sorted(libs, key=lambda _: _.name)
def get_libraries():
return [
lib for lib in BuiltIn()._namespace._kw_store.libraries.values() if lib.name != "Reserved"
]
def get_resources():
return BuiltIn()._namespace._kw_store.resources._items
def match_libs(name=""):
"""Find libraries by prefix of library name, default all"""
return [lib for lib in get_libs() if lib.name.lower().startswith(name.lower())]
class ImportedResourceDocBuilder(ResourceDocBuilder):
def build(self, resource):
libdoc = LibraryDoc(
name=resource.name,
doc=self._get_doc(resource, resource.name),
type="RESOURCE",
scope="GLOBAL",
)
libdoc.keywords = KeywordDocBuilder(resource=True).build_keywords(resource)
return libdoc
class ImportedLibraryDocBuilder(LibraryDocBuilder):
def build(self, lib):
libdoc = LibraryDoc(
doc=self._get_doc(lib),
version=lib.version,
scope=str(lib.scope),
doc_format=lib.doc_format,
source=lib.source,
lineno=lib.lineno,
name=lib.name,
)
libdoc.inits = self._get_initializers(lib)
libdoc.keywords = KeywordDocBuilder().build_keywords(lib)
libdoc.type_docs = self._get_type_docs(libdoc.inits + libdoc.keywords, lib.converters)
return libdoc