from elementtree.ElementTree import iterparse from model import * def parse(filename, pkg_model, depends_model): current_package = None for event, elem in iterparse(file(filename), events=("start", "end")): if event != "start": continue if elem.tag == "package": current_package = elem.get("name") pkg_model.set (pkg_model.append(), COL_PKG_NAME, current_package) elif elem.tag == "dependency": package = elem.get("name") depends_model.set (depends_model.append(), COL_DEP_TYPE, TYPE_DEP, COL_DEP_PARENT, current_package, COL_DEP_PACKAGE, package) elif elem.tag == "rdependency": package = elem.get("name") depends_model.set (depends_model.append(), COL_DEP_TYPE, TYPE_RDEP, COL_DEP_PARENT, current_package, COL_DEP_PACKAGE, package)