original_docstring: Parse an exposes string.
  
          Parse a @exposes tag string using the defined regular expression and add the elements
          to the internal data structure.
  
          @exposes is used to record the fact that the related code exposes the referened threat.
  
          For example:
  
              @exposes @crypto:@hash to @cwe_123_insufficient_entropy with no salt used
  
          Args:
              exposes: Exposes string to parse.
              source: PTSSource instance for the @exposes line.
  
          Returns:
              Nothing.
          
docstring: Parse an exposes string.
  Parse a @exposes tag string using the defined regular expression and add the elements
  to the internal data structure.
  
  @exposes is used to record the fact that the related code exposes the referened threat.
  
  For example.
  
  @exposes @crypto:@hash to @cwe_123_insufficient_entropy with no salt used
docstring_tokens: Parse an exposes string . Parse a @exposes tag string using the defined regular expression and add the elements to the internal data structure . @exposes is used to record the fact that the related code exposes the referened threat . For example . @exposes @crypto : @hash to @cwe_123_insufficient_entropy with no salt used
code: def _parse_exposes(self, exposes, source):
          """Parse an exposes string.
  
          Parse a @exposes tag string using the defined regular expression and add the elements
          to the internal data structure.
  
          @exposes is used to record the fact that the related code exposes the referened threat.
  
          For example:
  
              @exposes @crypto:@hash to @cwe_123_insufficient_entropy with no salt used
  
          Args:
              exposes: Exposes string to parse.
              source: PTSSource instance for the @exposes line.
  
          Returns:
              Nothing.
          """
          match = re.findall(self.parse_patterns["exposes"], exposes, re.M | re.I)
          if match:
              boundary = remove_excessive_space(match[0][0])
              component = remove_excessive_space(match[0][1])
              threat = remove_excessive_space(match[0][2])
              exposes_text = remove_excessive_space(match[0][3])
  
              boundary_id = self.add_boundary(boundary)
              component_id = self.add_component(boundary_id, component)
              threat_id = self.add_threat(threat)
              exposure_id = text_to_identifier(exposes_text)
  
              if exposure_id not in self.exposures:
                  self.exposures[exposure_id] = []
  
              exposure = PTSExposure(boundary_id, component_id, threat_id, exposes_text, [])
              exposure.source = source 
              self.exposures[exposure_id].append(exposure)
          else:
              raise ValueError("@exposes line contains an invalid pattern: {}".format(source))
code_tokens: def _parse_exposes ( self , exposes , source ) : match = re . findall ( self . parse_patterns [ "exposes" ] , exposes , re . M | re . I ) if match : boundary = remove_excessive_space ( match [ 0 ] [ 0 ] ) component = remove_excessive_space ( match [ 0 ] [ 1 ] ) threat = remove_excessive_space ( match [ 0 ] [ 2 ] ) exposes_text = remove_excessive_space ( match [ 0 ] [ 3 ] ) boundary_id = self . add_boundary ( boundary ) component_id = self . add_component ( boundary_id , component ) threat_id = self . add_threat ( threat ) exposure_id = text_to_identifier ( exposes_text ) if exposure_id not in self . exposures : self . exposures [ exposure_id ] = [ ] exposure = PTSExposure ( boundary_id , component_id , threat_id , exposes_text , [ ] ) exposure . source = source self . exposures [ exposure_id ] . append ( exposure ) else : raise ValueError ( "@exposes line contains an invalid pattern: {}" . format ( source ) )
short_docstring: Parse an exposes string.
short_docstring_tokens: Parse an exposes string .
comment: """Parse an exposes string.
  
          Parse a @exposes tag string using the defined regular expression and add the elements
          to the internal data structure.
  
          @exposes is used to record the fact that the related code exposes the referened threat.
  
          For example:
  
              @exposes @crypto:@hash to @cwe_123_insufficient_entropy with no salt used
  
          Args:
              exposes: Exposes string to parse.
              source: PTSSource instance for the @exposes line.
  
          Returns:
              Nothing.
          """