MCPcopy Create free account
hub / github.com/aboutcode-org/vulnerablecode / EVR

Class EVR

vulnerabilities/rpm_utils.py:22–53  ·  view source on GitHub ↗

The RPM Epoch, Version, Release tuple.

Source from the content-addressed store, hash-verified

20
21# https://github.com/nexB/scancode-toolkit/blob/16ae20a343c5332114edac34c7b6fcf2fb6bca74/src/packagedcode/rpm.py#L91
22class EVR(namedtuple("EVR", "epoch version release")):
23 """
24 The RPM Epoch, Version, Release tuple.
25 """
26
27 def __new__(self, version, release=None, epoch=None):
28 """
29 note: the sort order of the named tuple is the sort order.
30 But for creation we put the rarely used epoch last with a default to None.
31 """
32 if not isinstance(epoch, int):
33 if epoch and epoch.strip():
34 logger.error("Invalid epoch: must be a number or empty.")
35 return None
36 if not version:
37 logger.error("Version is required: {}".format(repr(version)))
38 return None
39
40 return super().__new__(EVR, epoch, version, release)
41
42 def __str__(self, *args, **kwargs):
43 return self.to_string()
44
45 def to_string(self):
46 if self.release:
47 vr = f"{self.version}-{self.release}"
48 else:
49 vr = self.version
50
51 if self.epoch:
52 vr = ":".join([str(self.epoch), vr])
53 return vr
54
55
56# https://github.com/nexB/scancode-toolkit/blob/16ae20a343c5332114edac34c7b6fcf2fb6bca74/src/packagedcode/nevra.py#L36

Callers 1

rpm_to_purlFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected