Skip to content

Commit

Permalink
Introduce major, minor and micro aliases to Version (#225)
Browse files Browse the repository at this point in the history
  • Loading branch information
pradyunsg committed Nov 4, 2019
2 parents a59f318 + f1b2b22 commit bb80ca7
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
15 changes: 15 additions & 0 deletions packaging/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,21 @@ def is_devrelease(self):
# type: () -> bool
return self.dev is not None

@property
def major(self):
# type: () -> int
return self.release[0] if len(self.release) >= 1 else 0

@property
def minor(self):
# type: () -> int
return self.release[1] if len(self.release) >= 2 else 0

@property
def micro(self):
# type: () -> int
return self.release[2] if len(self.release) >= 3 else 0


def _parse_letter_version(
letter, # type: str
Expand Down
12 changes: 12 additions & 0 deletions tests/test_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -758,6 +758,18 @@ def test_compare_legacyversion_version(self):
result = sorted([Version("0"), LegacyVersion("1")])
assert result == [LegacyVersion("1"), Version("0")]

def test_major_version(self):
assert Version("2.1.0").major == 2

def test_minor_version(self):
assert Version("2.1.0").minor == 1
assert Version("2").minor == 0

def test_micro_version(self):
assert Version("2.1.3").micro == 3
assert Version("2.1").micro == 0
assert Version("2").micro == 0


LEGACY_VERSIONS = ["foobar", "a cat is fine too", "lolwut", "1-0", "2.0-a1"]

Expand Down

0 comments on commit bb80ca7

Please sign in to comment.