code: def parse(version):
      # type: (Union[str, unicode]) -> list
      
      chunks = []
      for chunk in re.findall(r"(\d+|[A-Za-z]\w*)", version):
          try:
              chunk = int(chunk)
          except ValueError:
              pass
          chunks.append(chunk)
      return chunks
docs: Transform version string into comparable list
      :param version: version string, e.g. 0.11.23rc1
      :return: list of version chunks, e.g. [0, 11, 23, 'rc1']
  
      >>> parse("1")
      [1]
      >>> parse("0.0.1")
      [0, 0, 1]
      >>> parse("0.11.23rc1")
      [0, 11, 23, 'rc1']