22 from .datatypes
import EnumMember, TypedDictItem, TypeDoc
23 from .model
import LibraryDoc, KeywordDoc
35 version=spec[
'version'],
38 doc_format=spec[
'docFormat'],
39 source=spec[
'source'],
40 lineno=int(spec.get(
'lineno', -1)))
41 libdoc.inits = [self.
_create_keyword_create_keyword(kw)
for kw
in spec[
'inits']]
42 libdoc.keywords = [self.
_create_keyword_create_keyword(kw)
for kw
in spec[
'keywords']]
44 if 'typedocs' in spec:
46 elif 'dataTypes' in spec:
51 if not os.path.isfile(path):
52 raise DataError(f
"Spec file '{path}' does not exist.")
53 with open(path)
as json_source:
54 libdoc_dict = json.load(json_source)
60 shortdoc=data[
'shortdoc'],
62 private=data.get(
'private',
False),
63 deprecated=data.get(
'deprecated',
False),
64 source=data[
'source'],
65 lineno=int(data.get(
'lineno', -1)))
72 ArgInfo.POSITIONAL_ONLY: spec.positional_only.append,
73 ArgInfo.POSITIONAL_ONLY_MARKER:
lambda value:
None,
74 ArgInfo.POSITIONAL_OR_NAMED: spec.positional_or_named.append,
75 ArgInfo.VAR_POSITIONAL:
lambda value: setattr(spec,
'var_positional', value),
76 ArgInfo.NAMED_ONLY_MARKER:
lambda value:
None,
77 ArgInfo.NAMED_ONLY: spec.named_only.append,
78 ArgInfo.VAR_NAMED:
lambda value: setattr(spec,
'var_named', value),
82 setters[arg[
'kind']](name)
83 default = arg.get(
'defaultValue')
84 if default
is not None:
85 spec.defaults[name] = default
86 arg_types = arg[
'types']
89 spec.types[name] = tuple(arg_types)
90 kw.type_docs[name] = arg.get(
'typedocs', {})
93 for data
in type_docs:
94 doc =
TypeDoc(data[
'type'], data[
'name'], data[
'doc'], data[
'accepts'],
96 if doc.type == TypeDoc.ENUM:
97 doc.members = [
EnumMember(d[
'name'], d[
'value'])
98 for d
in data[
'members']]
99 if doc.type == TypeDoc.TYPED_DICT:
100 doc.items = [
TypedDictItem(d[
'key'], d[
'type'], d[
'required'])
101 for d
in data[
'items']]
107 for obj
in data_types[
'enums']:
109 for obj
in data_types[
'typedDicts']:
113 return TypeDoc(TypeDoc.ENUM, data[
'name'], data[
'doc'],
114 members=[
EnumMember(member[
'name'], member[
'value'])
115 for member
in data[
'members']])
118 return TypeDoc(TypeDoc.TYPED_DICT, data[
'name'], data[
'doc'],
119 items=[
TypedDictItem(item[
'key'], item[
'type'], item[
'required'])
120 for item
in data[
'items']])
def _create_enum_doc(self, data)
def _parse_spec_json(self, path)
def _parse_data_types(self, data_types)
def _create_keyword(self, data)
def build_from_dict(self, spec)
def _create_typed_dict_doc(self, data)
def _parse_type_docs(self, type_docs)
def _create_arguments(self, arguments, KeywordDoc kw)
Documentation for a single keyword or an initializer.
Documentation for a library, a resource file or a suite file.