2323from typing import List
2424
2525from robot .utils import XmlWriter
26+ from robot .libdocpkg .robotbuilder import LibraryDoc
2627
2728
2829class ElementTypes (enum .Enum ):
@@ -66,9 +67,9 @@ def __init__(self, pk_generator: PKGenerator, element, parent_element=None):
6667 self .element = element
6768 self .pk = pk_generator .get_pk ()
6869 self .parent = parent_element
69-
70- if element . doc :
71- self .html_desc = f"<html>{ element . doc } </html>"
70+
71+ if element [ " doc" ] :
72+ self .html_desc = f"<html>{ element [ ' doc' ] } </html>"
7273
7374 self ._set_name_and_register_in_all_elements ()
7475
@@ -78,7 +79,7 @@ def _set_name_and_register_in_all_elements(self):
7879 if self .parent :
7980 self .name = self .parent .name + '.' + self .element .name
8081 else :
81- self .name = self .element . name
82+ self .name = self .element [ ' name' ]
8283
8384 # Register element for later access to element's unique pk
8485 Element .all_elements [self .name ] = self .pk
@@ -97,14 +98,14 @@ class DataType(Element):
9798
9899 def __init__ (self , pk_generator : PKGenerator , data_type , parent_element = None ):
99100 super ().__init__ (pk_generator , data_type )
100- self .type = data_type . type
101+ self .type = data_type [ ' type' ]
101102
102103 # Holds all enum values, typed_dics are considered to be
103104 # generic for imbus TestBench purposes.
104105 self .representatives = {}
105106
106107 if self .type == 'Enum' :
107- self .members = data_type . members
108+ self .members = data_type [ ' members' ]
108109 for member in self .members :
109110 key = f"{ self .name } .{ member ['name' ]} "
110111 value = f"{ self .name } .{ member ['value' ]} "
@@ -362,10 +363,11 @@ def _write_interactions(self, libdoc, writer, attachment=False):
362363 writer .end ('parameters' )
363364 writer .end ('element' ) # close interaction tag
364365
365- def _write_data_types (self , libdoc , writer ):
366+ def _write_data_types (self , libdoc : LibraryDoc , writer ):
366367 datatypes = []
367- if libdoc .data_types .enums :
368- for data_type in libdoc .data_types .enums :
368+ libdoc_dic = libdoc .to_dictionary ()
369+ if libdoc_dic ["dataTypes" ]["enums" ]:
370+ for data_type in libdoc_dic ["dataTypes" ]["enums" ]:
369371 datatypes .append (DataType (self .pk_generator , data_type ))
370372
371373 writer .start ('element' , {'type' : ElementTypes .subdivision .value })
0 commit comments