예제 #1
0
파일: packagedb.py 프로젝트: Zaryob/inary
    def get_rev_deps(self, name, repo=None):
        try:
            rvdb = self.rvdb.get_item(name, repo)
        except BaseException:  # FIXME: what exception could we catch here, replace with that.
            return []

        rev_deps = []

        for pkg, dep in rvdb:
            node = xmlext.parseString(dep)
            dependency = inary.analyzer.dependency.Dependency()
            dependency.package = xmlext.getNodeText(node)

            if xmlext.getAttributeList(node):
                if xmlext.getNodeAttribute(node, "version"):
                    dependency.__dict__["version"] = xmlext.getNodeAttribute(
                        node, "version")
                elif xmlext.getNodeAttribute(node, "release"):
                    dependency.__dict__["release"] = xmlext.getNodeAttribute(
                        node, "release")
                else:
                    pass  # FIXME: ugly
            rev_deps.append((pkg, dependency))

        return rev_deps
예제 #2
0
파일: packagedb.py 프로젝트: Zaryob/inary
    def get_version_and_distro_release(self, name, repo=None):
        if not self.has_package(name, repo):
            raise Exception(_('Package \"{}\" not found.').format(name))

        pkg_doc = xmlext.parseString(self.pdb.get_item(name, repo))

        return self.__get_version(pkg_doc) + self.__get_distro_release(pkg_doc)
예제 #3
0
파일: packagedb.py 프로젝트: Zaryob/inary
    def get_last_date(self, name, repo=None):
        if not self.has_package(name, repo):
            raise Exception(_('Package \"{}\" not found.').format(name))

        pkg_doc = xmlext.parseString(self.pdb.get_item(name, repo))

        return self.__get_last_date(pkg_doc)
예제 #4
0
파일: packagedb.py 프로젝트: Zaryob/inary
    def get_replaces(self, repo=None):
        pairs = {}

        for pkg_name in self.rpdb.get_list_item():
            xml = self.pdb.get_item(pkg_name, repo)
            package = xmlext.parseString(str(xml))
            replaces_tag = xmlext.getNode(package, "Replaces")
            if replaces_tag:
                for node in xmlext.getTagByName(replaces_tag, "Package"):
                    r = inary.data.relation.Relation()
                    # XXX Is there a better way to do this?
                    r.decode(node, [])
                    if inary.data.replace.installed_package_replaced(r):
                        pairs.setdefault(r.package, []).append(pkg_name)

        return pairs
예제 #5
0
파일: installdb.py 프로젝트: paledega/inary
    def __make_dependency(depStr):

        node = xmlext.parseString(depStr)

        dependency = inary.analyzer.dependency.Dependency()
        dependency.package = xmlext.getNodeText(node)

        if xmlext.getAttributeList(node):
            if xmlext.getNodeAttribute(node, "version"):
                dependency.__dict__["version"] = xmlext.getNodeAttribute(
                    node, "version")
            elif xmlext.getNodeAttribute(node, "release"):
                dependency.__dict__["release"] = xmlext.getNodeAttribute(
                    node, "release")
            else:
                pass  #FIXME: ugly
        return dependency