def get_version(self, version=None, required=False): if version is None: if self.versions.exists(): return self.versions.first() return None try: return self.versions.get(identifier=version) except FileVersion.DoesNotExist: if required: raise exceptions.VersionNotFoundError(version) return None
def get_version(self, version=None, required=False): if version is None: if self.versions: return self.versions[-1] return None try: return self.versions[int(version) - 1] except (IndexError, ValueError): if required: raise exceptions.VersionNotFoundError(version) return None
def get_version(self, revision, required=False): """Find a version with identifier revision :returns: FileVersion or None :raises: VersionNotFoundError if required is True """ for version in reversed(self.versions): if version.identifier == revision: break else: if required: raise exceptions.VersionNotFoundError(revision) return None return version
def update_version_metadata(self, location, metadata): for version in reversed(self.versions): if version.location == location: version.update_metadata(metadata) return raise exceptions.VersionNotFoundError(location)