Exemplo n.º 1
0
    def _unparse_version_attrs(attrs):
        """Gets the package version from attributes.

        :param attrs: the relation tag attributes
        :return: the PackageVersion object
        """

        return PackageVersion(attrs.get("epoch", 0), attrs.get("ver", "0.0"),
                              attrs.get("rel"))
Exemplo n.º 2
0
    def _parse_package_relations(relations):
        """Parses yum package relations.

        :param relations: list of tuples
                          (name, flags, (epoch, version, release))
        :return: list of PackageRelation objects
        """
        return [
            PackageRelation(
                x[0],
                VersionRange(_OPERATORS_MAPPING[x[1]], x[1]
                             and PackageVersion(*x[2]))) for x in relations
        ]
Exemplo n.º 3
0
 def load_package_from_file(self, repository, filepath):
     fullpath = utils.get_path_from_url(repository.url + filepath)
     _, size, checksum = next(
         iter(
             utils.get_size_and_checksum_for_files([fullpath],
                                                   _checksum_collector)))
     pkg = createrepo.yumbased.YumLocalPackage(filename=fullpath)
     hdr = pkg.returnLocalHeader()
     return Package(
         repository=repository,
         name=hdr["name"],
         version=PackageVersion(hdr['epoch'], hdr['version'],
                                hdr['release']),
         filesize=int(hdr['size']),
         filename=filepath,
         checksum=FileChecksum(*checksum),
         mandatory=False,
         requires=self._parse_package_relations(pkg.requires),
         obsoletes=self._parse_package_relations(pkg.obsoletes),
         provides=self._get_provides_from_rpm(pkg),
         group=hdr["group"],
     )