@classmethod
def from_iterable(cls, target_types, address_mapper, adaptor_iter):
    """Create a new DependentGraph from an iterable of TargetAdaptor subclasses."""
    inst = cls(target_types, address_mapper)
    all_valid_addresses = set()
    for target_adaptor in adaptor_iter:
        inst._inject_target(target_adaptor)
        all_valid_addresses.add(target_adaptor.address)
    inst._validate(all_valid_addresses)
    return inst
