from typing import Any, Tuple


def 验证_是否等长二维元组(元组数据: Tuple[Tuple[Any, ...], ...]) -> bool:
    """验证是否为每行长度一致的二维元组。

    功能说明:
        - 这个函数用于验证是否为每行长度一致的二维元组。
        - 常用于先判断元组数据是否满足某个条件，再决定后续要不要继续处理。
        - 返回结果一般是 ``True`` 或 ``False``，适合直接写在 ``if`` 判断里使用。

    Args:
        元组数据: 待验证的数据。

    Returns:
        是等长二维元组时返回 ``True``，否则返回 ``False``。
    """
    try:
        if not isinstance(元组数据, tuple) or not 元组数据:
            return False

        第一行长度 = None
        for 项 in 元组数据:
            if not isinstance(项, tuple):
                return False
            if 第一行长度 is None:
                第一行长度 = len(项)
            elif len(项) != 第一行长度:
                return False
        return True
    except Exception:
        return False


if __name__ == "__main__":
    print("===== 示例1：标准等长二维元组 =====")
    数据 = ((1, 2, 3), (4, 5, 6))
    print("结果:", 验证_是否等长二维元组(数据))

    print("\n===== 示例2：单行二维元组 =====")
    数据 = (("张三", 18, "技术部"),)
    print("结果:", 验证_是否等长二维元组(数据))

    print("\n===== 示例3：行长度不一致 =====")
    数据 = ((1, 2), (3, 4, 5))
    print("结果:", 验证_是否等长二维元组(数据))

    print("\n===== 示例4：存在非法子项 =====")
    数据 = ((1, 2), [3, 4])
    print("结果:", 验证_是否等长二维元组(数据))

    print("\n===== 示例5：空二维元组 =====")
    数据 = ()
    print("结果:", 验证_是否等长二维元组(数据))

    print("\n===== 示例6：应用场景-预检报表是否适合转置 =====")
    报表 = (
        ("日期", "2026-03-18", "2026-03-19"),
        ("销售额", 1200, 1350),
        ("订单数", 32, 35),
    )
    print("结果:", 验证_是否等长二维元组(报表))



