def parser_children(element, model, object_attr): for child_model in model.children: child_element = find(child_model.name, element, model) if hasattr(child_model.type, 'pyxml__model'): child_obj = PyXmlParser.parse_element(child_element, child_model.type.pyxml__model) else: child_obj = child_model.type(child_element.text) object_attr[child_model.name] = child_obj
def parse_lists(element, model, object_attr): for sublist in model.lists: new_list = list() if sublist.parent is None: parent = element else: parent = find(sublist.parent, element, model) for item_element in find_all(sublist.items_tag, parent, model): sublist_items_model = get_pyxml_model(sublist.items_type) if sublist_items_model is not None: sublist_item = PyXmlParser.parse_element(item_element, sublist_items_model) else: sublist_item = sublist.items_type(item_element.text) new_list.append(sublist_item) object_attr[sublist.name] = new_list