'Initialize dependencies and calculate first round of flows.
Returns:
set of artifact names with no dependencies that should be collected first.'

def GetFirstFlowsForCollection(self):

    artifact_set = set(self.args.artifact_list)
    deps = artifact_registry.REGISTRY.SearchDependencies(self.state.knowledge_base.os, artifact_set)
    (name_deps, self.state.all_deps) = deps
    check_deps = name_deps.union(artifact_set)
    no_deps_names = artifact_registry.REGISTRY.GetArtifactNames(os_name=self.state.knowledge_base.os, name_list=check_deps, exclude_dependents=True)
    if (no_deps_names == artifact_set):
        return []
    self.state.awaiting_deps_artifacts = list(((name_deps - no_deps_names) - artifact_set))
    return no_deps_names
