From 65d76a46cb1898d9a0dc5c20baf9e014fe974fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Barrois?= Date: Sun, 18 Aug 2019 17:46:28 +0200 Subject: Use Version(major=1, ...) for next_... Avoids generating text to be parsed immediately. --- semantic_version/base.py | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/semantic_version/base.py b/semantic_version/base.py index 49c3fb5..8d9098d 100644 --- a/semantic_version/base.py +++ b/semantic_version/base.py @@ -113,24 +113,52 @@ class Version(object): return int(value) def next_major(self): - if self.prerelease and self.minor == 0 and self.patch == 0: - return Version('.'.join(str(x) for x in [self.major, self.minor, self.patch])) + if self.prerelease and self.minor == self.patch == 0: + return Version( + major=self.major, + minor=0, + patch=0, + partial=self.partial, + ) else: - return Version('.'.join(str(x) for x in [self.major + 1, 0, 0])) + return Version( + major=self.major + 1, + minor=0, + patch=0, + partial=self.partial, + ) def next_minor(self): if self.prerelease and self.patch == 0: - return Version('.'.join(str(x) for x in [self.major, self.minor, self.patch])) + return Version( + major=self.major, + minor=self.minor, + patch=0, + partial=self.partial, + ) else: return Version( - '.'.join(str(x) for x in [self.major, self.minor + 1, 0])) + major=self.major, + minor=self.minor + 1, + patch=0, + partial=self.partial, + ) def next_patch(self): if self.prerelease: - return Version('.'.join(str(x) for x in [self.major, self.minor, self.patch])) + return Version( + major=self.major, + minor=self.minor, + patch=self.patch, + partial=self.partial, + ) else: return Version( - '.'.join(str(x) for x in [self.major, self.minor, self.patch + 1])) + major=self.major, + minor=self.minor, + patch=self.patch + 1, + partial=self.partial, + ) @classmethod def coerce(cls, version_string, partial=False): -- cgit v1.2.1