parameters: (self, requirement_string)
docstring: DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!
docstring_summary: DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!
docstring_tokens: DO NOT CALL THIS UNDOCUMENTED METHOD ; use Requirement . parse () !
function: def __init__(self, requirement_string):
          """DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!"""
          try:
              super(Requirement, self).__init__(requirement_string)
          except packaging.requirements.InvalidRequirement as e:
              raise RequirementParseError(str(e))
          self.unsafe_name = self.name
          project_name = safe_name(self.name)
          self.project_name, self.key = project_name, project_name.lower()
          self.specs = [
              (spec.operator, spec.version) for spec in self.specifier]
          self.extras = tuple(map(safe_extra, self.extras))
          self.hashCmp = (
              self.key,
              self.url,
              self.specifier,
              frozenset(self.extras),
              str(self.marker) if self.marker else None,
          )
          self.__hash = hash(self.hashCmp)
function_tokens: def __init__ ( self , requirement_string ) : try : super ( Requirement , self ) . __init__ ( requirement_string ) except packaging . requirements . InvalidRequirement as e : raise RequirementParseError ( str ( e ) ) self . unsafe_name = self . name project_name = safe_name ( self . name ) self . project_name , self . key = project_name , project_name . lower ( ) self . specs = [ ( spec . operator , spec . version ) for spec in self . specifier ] self . extras = tuple ( map ( safe_extra , self . extras ) ) self . hashCmp = ( self . key , self . url , self . specifier , frozenset ( self . extras ) , str ( self . marker ) if self . marker else None , ) self . __hash = hash ( self . hashCmp )