### Body

Use stacklevel 2 instead of the default 1:
https://github.com/apache/airflow/blob/b5057e0e1fc6b7a47e38037a97cac862706747f0/airflow/providers/cncf/kubernetes/utils/pod_manager.py#L361-L365

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
"""
    Possible pod phases.
    See https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase.
    """
    PENDING = "Pending"
    RUNNING = "Running"
    FAILED = "Failed"
    SUCCEEDED = "Succeeded"
    terminal_states = {FAILED, SUCCEEDED}
class PodOperatorHookProtocol(Protocol):
    """
    Protocol to define methods relied upon by KubernetesPodOperator.
    Subclasses of KubernetesPodOperator, such as GKEStartPodOperator, may use
    hooks that don't extend KubernetesHook.  We use this protocol to document the
    methods used by KPO and ensure that these methods exist on such other hooks.
    """
    @property
    def core_v1_client(self) -> client.CoreV1Api:
        """Get authenticated client object."""
    @property
    def is_in_cluster(self) -> bool:
        """Expose whether the hook is configured with ``load_incluster_config`` or not."""
    def get_pod(self, name: str, namespace: str) -> V1Pod:
        """Read pod object from kubernetes API."""
    def get_namespace(self) -> str | None:
        """Returns the namespace that defined in the connection."""
    def get_xcom_sidecar_container_image(self) -> str | None:
        """Returns the xcom sidecar image that defined in the connection."""
    def get_xcom_sidecar_container_resources(self) -> str | None: