code: def resolvables_from_iterable(iterable, builder, interpreter=None):
    
  
    def translate(obj):
      if isinstance(obj, Resolvable):
        return obj
      elif isinstance(obj, Requirement):
        return ResolvableRequirement(obj, builder.build(obj.key))
      elif isinstance(obj, Package):
        return ResolvablePackage(obj, builder.build(obj.name))
      elif isinstance(obj, compatibility_string):
        return Resolvable.get(obj, builder, interpreter=interpreter)
      else:
        raise ValueError('Do not know how to resolve %s' % type(obj))
    return list(map(translate, iterable))
docs: Given an iterable of resolvable-like objects, return list of Resolvable objects.
  
    :param iterable: An iterable of :class:`Resolvable`, :class:`Requirement`, :class:`Package`,
        or `str` to map into an iterable of :class:`Resolvable` objects.
    :returns: A list of :class:`Resolvable` objects.