summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphaël Barrois <raphael.barrois@polytechnique.org>2019-08-18 17:46:28 +0200
committerRaphaël Barrois <raphael.barrois@polytechnique.org>2019-08-24 15:13:09 +0200
commit65d76a46cb1898d9a0dc5c20baf9e014fe974fd8 (patch)
treefe19befc9849d24271348d54f2701c8da1653a89
parenta5cc0fb509b2c515ae73c85f9a4d426a3f9100e3 (diff)
downloadsemantic-version-65d76a46cb1898d9a0dc5c20baf9e014fe974fd8.tar.gz
Use Version(major=1, ...) for next_...
Avoids generating text to be parsed immediately.
-rw-r--r--semantic_version/base.py42
1 files 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):