parameters: (s)
return_statement: return result
docstring: Try to suggest a semantic form for a version for which
      suggest_normalized_version couldn't come up with anything.
docstring_summary: Try to suggest a semantic form for a version for which
      suggest_normalized_version couldn't come up with anything.
docstring_tokens: Try to suggest a semantic form for a version for which suggest_normalized_version couldn t come up with anything .
function: def suggest_semantic_version(s):
      """
      Try to suggest a semantic form for a version for which
      suggest_normalized_version couldn't come up with anything.
      """
      result = s.strip().lower()
      for pat, repl in _REPLACEMENTS:
          result = pat.sub(repl, result)
      if not result:
          result = '0.0.0'
  
      # Now look for numeric prefix, and separate it out from
      # the rest.
      #import pdb; pdb.set_trace()
      m = _NUMERIC_PREFIX.match(result)
      if not m:
          prefix = '0.0.0'
          suffix = result
      else:
          prefix = m.groups()[0].split('.')
          prefix = [int(i) for i in prefix]
          while len(prefix) < 3:
              prefix.append(0)
          if len(prefix) == 3:
              suffix = result[m.end():]
          else:
              suffix = '.'.join([str(i) for i in prefix[3:]]) + result[m.end():]
              prefix = prefix[:3]
          prefix = '.'.join([str(i) for i in prefix])
          suffix = suffix.strip()
      if suffix:
          #import pdb; pdb.set_trace()
          # massage the suffix.
          for pat, repl in _SUFFIX_REPLACEMENTS:
              suffix = pat.sub(repl, suffix)
  
      if not suffix:
          result = prefix
      else:
          sep = '-' if 'dev' in suffix else '+'
          result = prefix + sep + suffix
      if not is_semver(result):
          result = None
      return result
function_tokens: def suggest_semantic_version ( s ) : result = s . strip ( ) . lower ( ) for pat , repl in _REPLACEMENTS : result = pat . sub ( repl , result ) if not result : result = '0.0.0' # Now look for numeric prefix, and separate it out from # the rest. #import pdb; pdb.set_trace() m = _NUMERIC_PREFIX . match ( result ) if not m : prefix = '0.0.0' suffix = result else : prefix = m . groups ( ) [ 0 ] . split ( '.' ) prefix = [ int ( i ) for i in prefix ] while len ( prefix ) < 3 : prefix . append ( 0 ) if len ( prefix ) == 3 : suffix = result [ m . end ( ) : ] else : suffix = '.' . join ( [ str ( i ) for i in prefix [ 3 : ] ] ) + result [ m . end ( ) : ] prefix = prefix [ : 3 ] prefix = '.' . join ( [ str ( i ) for i in prefix ] ) suffix = suffix . strip ( ) if suffix : #import pdb; pdb.set_trace() # massage the suffix. for pat , repl in _SUFFIX_REPLACEMENTS : suffix = pat . sub ( repl , suffix ) if not suffix : result = prefix else : sep = '-' if 'dev' in suffix else '+' result = prefix + sep + suffix if not is_semver ( result ) : result = None return result