code: def multi_sort(remotes, sort):
      exploded_alpha = list()
      exploded_semver = list()
      if 'alpha' in sort:
          alpha_max_len = max(len(r['name']) for r in remotes)
          for name in (r['name'] for r in remotes):
              exploded_alpha.append([ord(i) for i in name] + [0] * (alpha_max_len - len(name)))
      if 'semver' in sort:
          exploded_semver = semvers(r['name'] for r in remotes)
      sort_mapping = dict()
      for i, remote in enumerate(remotes):
          key = list()
          for sort_by in sort:
              if sort_by == 'alpha':
                  key.extend(exploded_alpha[i])
              elif sort_by == 'time':
                  key.append(-remote['date'])
              elif sort_by == 'semver':
                  key.extend(exploded_semver[i])
          sort_mapping[id(remote)] = key
      remotes.sort(key=lambda k: sort_mapping.get(id(k)))