def getNewestVersion( self, category, package ): """ returns the newest version of this category/package """ if( category == None ): raise PortageException( "Empty category", category, package ) if not self.isCategory( category ): raise PortageException( "Could not find category", category, package ) if not self.isPackage( category, package ): raise PortageException( "Could not find package", category, package ) installed = InstallDB.installdb.getInstalledPackages(category, package ) newest = PortageInstance.getDefaultTarget( category, package ) for pack in installed: version = pack.getVersion() if not version or not newest: continue if utils.parse_version(newest) < utils.parse_version(version): newest = version return newest
def __init__(self, version): """Initializes the :class:`Version`. :param version: the string representation of the version. :type version: ``str``. """ self.version = version segments = parse_version(version) self.major = segments[0] self.minor = segments[1] self.patch = segments[2] self.release = segments[3] self.build = segments[4]
def clean (self, ) : (_v, _base, _vtags, ) = utils_package.parse_version(self.cleaned_data.get("version"), ) self.cleaned_data["version_base"] = _base self.cleaned_data["version_tags"] = _vtags _r = super(Release, self).clean() # update Package information if not self.cleaned_data.get("name") and self.cleaned_data.get("package") : self.data_orig["name"] = self.cleaned_data.get("package").name self._form_package = Package( self._request, self.data_orig, instance=self.cleaned_data.get("package"), ) if not self._form_package.is_valid() : raise forms.ValidationError(self._form_package.errors, ) return _r