1class ReleaseChanges(object): 2 def __init__(self, version, date, entries): 3 self.version = version 4 self.date = date 5 self.entries = entries 6 7class ChangelogEntry(object): 8 def __init__(self, type, category, description, contributor): 9 self.type = type 10 self.category = category 11 self.contributor = contributor 12 self.description = description 13 14class Version(object): 15 def __init__(self, major, minor, patch, prerelease=""): 16 self.major = major 17 self.minor = minor 18 self.patch = patch 19 self.prerelease = prerelease 20 21 def __str__(self): 22 s = "%d.%d.%d" % (self.major, self.minor, self.patch) 23 if self.prerelease != "": 24 s = "%s-%s" % (s, self.prerelease) 25 return s 26 27 # TODO Remove it when we remove "preview" from the version number 28 # Returns the prerelease version number 29 # Example: Version is "preview-11", this method returns "11" as integer 30 def prerelease_version_number(self): 31 if self.prerelease != "": 32 preview_prefix_len = len("preview-") 33 prerelease_version = self.prerelease[preview_prefix_len:] 34 if prerelease_version != "": 35 return int(prerelease_version)