import t, c
from stdint import *
import platmacro
import os._win32
import os._posix


# =============================================================================
# Workaround: TransPyC 无法正确解析 os.xxx() 包级函数调用
# (os.path.xxx() 子模块调用正常，但 os.xxx() 包级调用解析为本地模块)
# 此文件单独导入 os._win32 / os._posix 子模块，避免污染调用方的 os.rmdir() 等解析。
# =============================================================================

def os_exists(path: str) -> bool:
    """检查文件/目录是否存在（跨平台）"""
    if platmacro.IS_WINDOWS:
        return os._win32.exists(path)
    return os._posix.exists(path)


def os_remove(path: str) -> int:
    """删除文件（跨平台）。成功返回 0，失败返回 -1。"""
    if platmacro.IS_WINDOWS:
        return os._win32.remove(path)
    return os._posix.remove(path)


def os_isdir(path: str) -> bool:
    """检查路径是否为目录（跨平台）"""
    if platmacro.IS_WINDOWS:
        return os._win32.isdir(path)
    return os._posix.isdir(path)


def os_getsize(path: str) -> t.CInt64T:
    """返回文件大小（字节，跨平台）。失败返回 -1。"""
    if platmacro.IS_WINDOWS:
        return os._win32.getsize(path)
    return os._posix.getsize(path)
