def determine_version_to_install()

in daisy_workflows/linux_common/utils/apt.py [0:0]


  def determine_version_to_install(current_version: str,
                                   available_versions: typing.Set[str],
                                   blocked_versions: typing.Set[str]) -> str:
    non_blocked_versions = set()
    for v in available_versions:
      blocked = False
      for b in blocked_versions:
        if v.startswith(b):
          blocked = True
          break
      if not blocked:
        non_blocked_versions.add(v)
    candidate = ''
    for v in non_blocked_versions:
      if v > current_version and v > candidate:
        candidate = v
    logging.debug({
      'available_versions': available_versions,
      'non_blocked_versions': non_blocked_versions,
      'blocked_versions': blocked_versions,
      'candidate': candidate,
    })
    return candidate