Source code for ebuildtester.atom

"""An Atom."""


[docs]class AtomException(Exception): """An exception in this class.""" pass
[docs]class Atom(object): def __init__(self, atom): # We expect an atom of the form [=]CATEGORY/PACKAGE[-VERSION]. self.category = None self.package = None self.version = None # We don't store the optional '='. temp = atom.split("=") self.atom = temp[-1] try: self.category, self.package = self.atom.split("/") except ValueError: raise AtomException( "ATOM has to be of the form [=]SECTION/PACKAGE[-VERSION]") # Split off version. try: temp = self.package.index("-") if temp > -1: self.version = self.package[temp + 1:] self.package = self.package[:temp] except ValueError: pass def __str__(self): if self.version is not None: prefix = "=" suffix = "-" + self.version else: prefix = "" suffix = "" return prefix + self.category + "/" + self.package + suffix def __eq__(self, other): result = (self.atom == other.atom) return result def __repr__(self): return "Atom(\"%s\")" % self.__str__()