'DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!'

def __init__(self, project_name, specs, extras):

    (self.unsafe_name, project_name) = (project_name, safe_name(project_name))
    (self.project_name, self.key) = (project_name, project_name.lower())
    self.specifier = packaging.specifiers.SpecifierSet(','.join([''.join([x, y]) for (x, y) in specs]))
    self.specs = specs
    self.extras = tuple(map(safe_extra, extras))
    self.hashCmp = (self.key, self.specifier, frozenset(self.extras))
    self.__hash = hash(self.hashCmp)
