def METHOD_NAME(
    project_labels: Iterable[str], changed_paths: Iterable[str]
) -> Set[str]:
    """
    Guess labels returns a list of labels from the project labels
    that contain parts of the changed paths.
    This is the first form of guessing, which will likely be adjusted.
    """
    not_allowed_labels = MERGE_LABELS_PRIORITY + HOLD_LABELS
    ignore_tokens = ["cicd", "saas", "rds", "services"]
    apps = get_app_list()
    parent_apps = get_parents_list()
    guesses = set()
    tenants = []
    matches = []
    for path in changed_paths:
        path_dir = os.path.dirname(path)
        path_tokens = path_dir.split("/")
        if "data/services/" in path:
            tenants += [t for t in path_tokens if t not in ignore_tokens and t in apps]
        matches += [
            t for t in path_tokens if t not in ignore_tokens and t in project_labels
        ]
    for t in tenants:
        if t not in not_allowed_labels:
            guesses.add("tenant-" + t)
    for m in matches:
        if m not in not_allowed_labels:
            guesses.add(m)
    onboarding_status = guess_onboarding_status(changed_paths, apps, parent_apps)
    if onboarding_status:
        guesses.add(onboarding_status)
    return guesses