def _setversion(self, version): """sets the self.appversion and self.version""" checkVersion = hasattr(self, '_version') #could be reconstructing if checkVersion: checkVersion = self._getappversion() if IDroneModelAppVersion.providedBy(version): self._version = IDroneModelAppVersion(version) else: self._version = IDroneModelAppVersion( AppVersion.makeAppVersion(self.app.name, version)) if checkVersion: data = { 'instance': self, 'version': self._version, 'previous': checkVersion } if checkVersion < self._version: if checkVersion.major < self._version.major: Event('new-major-release').fire(**data) else: Event('new-release-version').fire(**data) return #done Event('release-change').fire(**data)
def __cmp__(self, other): """overrode for easy comparison of AppVersion to AppVersion and Version to AppVersion. @raise IncomparableVersions: when the package names of the versions differ. @param other L{twisted.python.versions.Version}, L{IDroneModelAppVersion}, or object @return C{int} of value -1, 0, or 1 """ try: if IDroneModelAppVersion.providedBy(other): return self.version.__cmp__(other.version) except IncomparableVersions: raise except: pass if isinstance(other, Version): return self.version.__cmp__(other) return object.__cmp__(self, other)
def _setversion(self, version): """sets the self.appversion and self.version""" checkVersion = hasattr(self, '_version') #could be reconstructing if checkVersion: checkVersion = self._getappversion() if IDroneModelAppVersion.providedBy(version): self._version = IDroneModelAppVersion(version) else: self._version = IDroneModelAppVersion( AppVersion.makeAppVersion(self.app.name, version) ) if checkVersion: data = { 'instance': self, 'version': self._version, 'previous': checkVersion } if checkVersion < self._version: if checkVersion.major < self._version.major: Event('new-major-release').fire(**data) else: Event('new-release-version').fire(**data) return #done Event('release-change').fire(**data)
def _getappversion(self): if not hasattr(self, '_version'): self._version = AppVersion.makeAppVersion(self.app.name, None) return IDroneModelAppVersion(self._version)