from __future__ import annotations

from typing import Any

try:
    from . import pov_policy
except ImportError:  # Allows local smoke tests with top-level imports.
    import pov_policy


def pov_labels_from_value(value: Any) -> list[str]:
    return pov_policy.pov_labels_from_value(value)


def merge_labels(*groups: list[str]) -> list[str]:
    return pov_policy.merge_labels(*groups)


def filter_pov_labeled_clauses(text: Any, pov_labels: list[str]) -> str:
    return pov_policy.filter_pov_labeled_clauses(text, pov_labels)


def pov_camera_phrase(pov_labels: list[str], softcore: bool = False) -> str:
    if not pov_labels:
        return ""
    if softcore:
        return (
            "Camera is the male participant's first-person creator view in one continuous frame, with him implied by perspective and foreground cues"
        )
    return (
        "Camera is the male participant's first-person view in one continuous frame, with foreground body cues anchoring the lower frame"
    )


def pov_composition_text(composition: Any, pov_labels: list[str]) -> str:
    return pov_policy.pov_composition_formatter_text(composition, pov_labels)
