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

Class EVR

src/packagedcode/rpm.py:94–125  ·  view source on GitHub ↗

The RPM Epoch, Version, Release tuple.

Source from the content-addressed store, hash-verified

92
93
94class EVR(namedtuple('EVR', 'epoch version release')):
95 """
96 The RPM Epoch, Version, Release tuple.
97 """
98
99 def __new__(self, version, release=None, epoch=None):
100 """
101 note: the sort order of the named tuple is the sort order.
102 But for creation we put the rarely used epoch last with a default to None.
103 """
104
105 epoch = str(epoch) if epoch else ""
106
107 if epoch and epoch.strip() and not epoch.isdigit():
108 raise ValueError('Invalid epoch: must be a number or empty.')
109 if not version:
110 raise ValueError('Version is required: {}'.format(repr(version)))
111
112 return super().__new__(EVR, epoch, version, release)
113
114 def __str__(self, *args, **kwargs):
115 return self.to_string()
116
117 def to_string(self):
118 if self.release:
119 vr = f'{self.version}-{self.release}'
120 else:
121 vr = self.version
122
123 if self.epoch:
124 vr = ':'.join([self.epoch, vr])
125 return vr
126
127
128# TODO: add dependencies!!!

Callers 1

parseMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected