def make_managed_nodes(addresses, distribution):
    # Blow up if the list contains mixed types.
    [address_type] = set(type(address) for address in addresses)
    if address_type is list:
        # A list of 2 item lists
        return [
            ManagedNode(
                address=address,
                private_address=private_address,
                distribution=distribution
            )
            for (private_address, address) in addresses
        ]
    else:
        # A list of strings.
        return [
            ManagedNode(address=address, distribution=distribution)
            for address in addresses
        ]
Remove any empty item (None or ''), call unicode on each and
dataset/ETHPy150Open ClusterHQ/flocker/admin/acceptance.py/make_managed_nodes--crossover with--dataset/ETHPy150Open lsaffre/lino/lino/utils/__init__.py/join_words