from typing import Any


def is_named_tuple(obj: Any) -> bool:
    """Check if object is a named tuple."""
    _type = type(obj)
    bases = _type.__bases__
    if len(bases) != 1 or bases[0] != tuple:
        return False
    fields = getattr(_type, "_fields", None)
    if not isinstance(fields, tuple):
        return False
    return all(isinstance(field, str) for field in fields)