'Parses a requirements string.
:param text: The string containing quality requirements.'

def parse_requirements(self, text):

    text = text.lower()
    if self.text:
        self.text += u'    '
    self.text += text
    if (self.text == u'any'):
        for component in self.components:
            component.reset()
            return
    text = text.replace(u',', u'    ')
    parts = text.split()
    try:
        for part in parts:
            if (u'-' in part):
                found = _registry[part.split(u'-')[0]]
            elif (u'|' in part):
                found = _registry[part.split(u'|')[0]]
            else:
                found = _registry[part.strip(u'!<>=+')]
            for component in self.components:
                if (found.type == component.type):
                    component.add_requirement(part)
    except KeyError as e:
        raise ValueError((u'%s    is    not    a    valid    quality    component.' % e.args[0]))
