diff options
author | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2019-08-18 17:46:28 +0200 |
---|---|---|
committer | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2019-08-24 15:13:09 +0200 |
commit | 65d76a46cb1898d9a0dc5c20baf9e014fe974fd8 (patch) | |
tree | fe19befc9849d24271348d54f2701c8da1653a89 | |
parent | a5cc0fb509b2c515ae73c85f9a4d426a3f9100e3 (diff) | |
download | semantic-version-65d76a46cb1898d9a0dc5c20baf9e014fe974fd8.tar.gz |
Use Version(major=1, ...) for next_...
Avoids generating text to be parsed immediately.
-rw-r--r-- | semantic_version/base.py | 42 |
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): |